【问题标题】:Detailsview in ASP.Net cancel default editMode on client sideASP.Net 中的详细信息视图取消客户端的默认编辑模式
【发布时间】:2016-02-12 22:31:47
【问题描述】:

我有一个带有 SQL 数据源绑定的主网格和详细信息视图,在加载期间默认设置为 EditMode。我允许用户在我的主网格中选择一行以在模式弹出窗口中加载详细信息视图(为加载选定行数据的详细信息视图提供数据键),并在成功输入时将详细信息视图数据更新到数据库和由用户更新。 当用户在 detailsview 中输入意外数据时,我正在尝试使用客户端 javascript 警报消息向用户显示相应的验证,并允许用户使用模态弹出窗口 cancelCommand 选项关闭模态弹出窗口。
注意:这里我没有取消编辑模式(不知道如何在客户端执行此操作)

我面临的问题是,在详细信息视图中输入错误的数据后,用户可能会选择关闭详细信息视图并重新打开相同的数据(通过选择先前在主网格中选择的同一行)。现在,先前的错误数据被加载到详细信息中(由用户输入),而不是来自数据库/ SQL 数据源的实际/正确数据。

我尝试将 DetailsView ViewState 设置为“false”,尽管 detailsview 正在尝试加载数据,但仍会填充先前的错误值。谁能帮我解决这个问题。

【问题讨论】:

  • 我已经通过在主 Gridview onRowSelect 命令上调用 DetailsView 的数据绑定操作解决了上述问题 注意:对于 detailsview,viewstate 设置为 false,所以我们总是将数据绑定到 DetailsView。在我的场景中,由于我的 SQLDataSource 视图状态设置为 true,因此我不会参与对数据库的任何其他调用

标签: javascript c# asp.net ajax detailsview


【解决方案1】:

我通过在主 Gridview-onRowSelect 命令上调用 DetailsView 的数据绑定操作解决了上述问题
注意:对于 detailsview,viewstate 设置为“false”,以便我们始终将数据绑定到 DetailsView。在我的场景中,由于我的 SQLDataSource(绑定到 DetailsView)viewstate 设置为 true

,因此我不参与对数据库的任何额外调用
protected void MainGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{

    if (e.CommandName == "select")
    {
        //Binds DetailsView with source data, not loading wrong data from edit mode if user selects previously selected same row again
        DetailsView.DataBind();
        this.mdlPopup.Show();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 2010-11-26
    相关资源
    最近更新 更多