【问题标题】:How can I refresh my FormView after an edit?编辑后如何刷新我的 FormView?
【发布时间】:2011-12-06 22:22:49
【问题描述】:

我正在使用FormView 从数据库中选择公司。此FormView 绑定到ObjectDataSource,而ObjectDataSource 绑定到DropDownList。当用户从DropDownList 中选择一家公司时,FormView 将填充与该公司有关的信息(AutoPostBackDropDownList 上启用以提供动态记录更改)。我的FormView 支持插入、更新和删除功能,这三个功能都可以工作。

我的问题如下:我在FormView中编辑一条记录后,记录成功更改,但是,它完全从屏幕上删除了。只有在我从DropDownList 中选择了新公司后,FormView 中才会重新显示记录。

有人知道这里可能存在什么问题吗?

【问题讨论】:

    标签: asp.net formview


    【解决方案1】:

    你需要重新绑定数据。

    void FormView_ItemInserted(Object sender, FormViewInsertedEventArgs e)
    {
      Gridview.Databind();
    }
    

    【讨论】:

    • +1。和我一样的方法,利用不同的事件。如果您采用这种方法,您还必须处理更新和删除事件,但它可以工作。
    • 你的权利 - OP 也需要处理更新和删除。此外,建议执行检查以确认插入/更新/删除是否成功
    【解决方案2】:

    当父控件被修改时,需要触发子控件进行数据绑定。

    我发现最可靠的做法是在父控件的 DataBound 事件中。编辑成功后调用该事件,因为控件需要重新绑定到编辑后的数据。

    这是我的一些实际代码中的一个 sn-p,我在其中做类似的事情。在其中,我有一个名为 QuestionGroupResutls 的控件,该控件在名为 QuestionResults 的控件中有子记录。

    void QuestionGroupResults_DataBound(object sender, EventArgs e)
    {
        QuestionGroupsEditingDetailsView1.DataBind();
        QuestionResults.DataBind();
    
    }
    

    我在 Page_Load 中有这个,但您可以在 asmx 中以声明方式指定它(我只是没有代码示例)。

     QuestionGroupResults.DataBound += new EventHandler(QuestionGroupResults_DataBound);
    

    我不知道你的控件的名称,但你应该可以用你的控件做同样的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      相关资源
      最近更新 更多