2009-12-03 40 views
0


当GridView的行处于编辑模式时,文本框不显示当前值

1)I注意到,如果我们不结合的GridView对象数据源控制,则当用户将GridView的进入编辑模式,我们必须处理GridView.RowEditing事件(否则我们会得到一个异常),并且在这种情况下,GridView的行会进入编辑模式。是否有理由为什么GridView不会自动将一行放入编辑模式?


2)当我们手动绑定GridView控件DataSet中的一个表和用户将一行到编辑模式,行的列将取代使用文本框字段。但由于某些原因,这些文本框并不显示当前字段值,而是根本不显示任何文本。我究竟做错了什么?


3)我也处理gridView.RowUpdated事件,所以我可以把排回非编辑模式,但没有效果。我甚至尝试通过按其他行的编辑按钮,但行仍然不会退出编辑模式。任何想法我做错了什么?

protected void gvwEmployees_RowUpdated(object sender, GridViewUpdatedEventArgs e) 
{ 
    e.KeepInEditMode = false; 
} 


感谢名单

回答

1

如果不使用DataSource控制与隐藏的复杂GridView或其他数据绑定控制的手动数据绑定必须手动处理RowEditingRowUpdating,和RowDeleting等。随着内置的数据模型和自动绑定GridView为您处理这些事件。

您还没有发布你的RowEditing代码,但我怀疑你是不是在GridView的EditIndex设置为NewEditIndex,而不是重新绑定,这可能是为什么您没有看到当前数据。

protected void gvwEmployees_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    GridView.EditIndex = e.NewEditINdex; 
    BindData(); 
} 

您的RowUpdating事件也是如此。您将不得不手动更新数据,然后将EditIndex设置为-1,这将使您的GridView回到ReadOnly模式。请注意,e.OldValuese.NewValuesGridViewUpdateEventArgs的e.Keys属性在手动绑定时未填充。这意味着您必须使用编辑行的索引e.RowIndex来亲自处理更新。

protected void gvwEmployees_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    GridView.EditIndex = -1; 
    BindData(); 
} 
+0

A)为什么当GridView改变模式回到只读模式时,你必须重新绑定?我想如果GridView启用了ViewState,那么它将能够从ViewState?恢复字段值(只读模式)! B)同样,为什么当我们将GridView放入编辑模式时,它是否必须重新绑定到数据源?难道它不能将值从只读模式并将其应用于编辑模式下的字段? “RowUpdating事件也是如此。您将不得不手动更新数据,然后将EditIndex设置为-1,这将使您的GridView重新进入ReadOnly模式。“我试过了,但没有任何反应 – carewithl 2009-12-03 19:31:27

相关问题