【问题标题】:What rebinding a gridview has to do with edit mode?重新绑定网格视图与编辑模式有什么关系?
【发布时间】:2013-10-12 09:46:07
【问题描述】:

当我不重新绑定时,Gridview 仍处于编辑模式,为什么?但是当我重新绑定gridview它成功退出eidt模式时,为什么?

代码:

protected void gvTest_EditCancel(Object sender, GridViewCancelEditEventArgs e) 
{
    gvTest.EditIndex = -1;
  //  connectToDb();
    Response.Write("<br/>"+ "Editing cancelled");
}`

public void connectToDb() 
{
    SqlConnection sqlcon = new SqlConnection(constrng);
    String com1 = "select * from login";
    SqlCommand sqlcom = new SqlCommand(com1, sqlcon);
    SqlDataAdapter sqlda = new SqlDataAdapter(sqlcom);
    DataSet ds = new DataSet();

    try
    {
        sqlcon.Open();
        sqlda.Fill(ds);
        gvTest.DataSource = ds;
        gvTest.DataBind();
    }
    catch (Exception exc)
    {
        Response.Write(exc.ToString());
    }
    finally
    {
        sqlcon.Close();
    }
}

但是当调用 ConnectToDb() 重新绑定时,它成功退出编辑模式, 重新绑定与编辑或退出它有什么关系?

【问题讨论】:

    标签: c# asp.net web-applications gridview


    【解决方案1】:

    EditIndex 告诉gridview它处于编辑模式。

    要编辑的行的从零开始的索引。默认值为 -1,即 表示没有正在编辑任何行。

    MSDN.

    编辑gridview 时,EditIndex 设置为GridView RowIndex,它始终为0 或大于0。因此GridView 保持在编辑模式。要退出编辑模式,您需要将索引设置为 -1。当您取消编辑时,它会将此索引设置为 -1。

    在 RowCancelingEdit 中,我们可以将 editindex 设置为 -1。但在我们重新绑定该行之前,它不会将该行更改为正常模式。当我们重新绑定 gridview 时,它会重置行(OnRowDataBound)。 (但它不会重置 EditIndex,我错了)。这就是为什么每当我们进行任何行编辑或删除时,我们都需要重新绑定gridview,

    所以,

    1. 要退出编辑模式,我们必须设置 EditIndex = -1
    2. 在我们重新绑定 GridView 之前,EditIndex 更改不会反映。

    【讨论】:

    • 好的,但如果 R​​EBINDING 将其设置为 -1 意味着不再进行编辑,那么为什么要设置 gridview.editIndex= -1。那么不需要它,因为重新绑定正在做同样的工作?所以这是什么?我越来越困惑:(
    • 对不起,我在重新绑定时重置editindex是错误的。
    • 所以顺序是,当事件触发该方法时,它第一个:将 Editindex 设置为 -1,这意味着现在它应该退出编辑模式以便它存在。第二:立即调用databind函数,刷新gridview中的数据,这样我们可以查看更好的界面并清理gridview。如果:数据绑定没有完成,而不是从 viewstate 中选择 gridview,这会呈现一个混乱和不清楚的 gridview 对吗?如果必须,请纠正我。 -afzalulh
    • 没错。跟踪事件真的很难,因为它们也与页面生命周期有关。这是指向MSDN 的链接,它简要介绍了页面生命周期中的数据绑定事件。
    猜你喜欢
    • 2012-04-30
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    相关资源
    最近更新 更多