为什么在第一次点击时不显示GridView EditItemTemplate?
问题描述:
我有一个GridView与EditItemTemplate中,对此我绑定一个字典为什么在第一次点击时不显示GridView EditItemTemplate?
<asp:GridView runat="server" ID="VariableList" ShowHeader="false" AutoGenerateColumns="false" OnRowEditing="VariableList_RowEditing">
<Columns>
<asp:BoundField ReadOnly="true" DataField="Key" />
<asp:TemplateField ItemStyle-Width="300">
<ItemTemplate>
<asp:Label runat="server" id="VName" Text='<%# Eval("Value") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="VValue" Text='<%# Eval("Value") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="true" />
</Columns>
</asp:GridView>
当我点击编辑按钮,将RowEditing事件被触发(与调试验证)中,我设置了GridView的EditIndex:
protected void VariableList_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView grid = sender as GridView;
if (grid == null)
{
return;
}
grid.EditIndex = e.NewEditIndex;
}
如果我在grid.EditIndex = e.NewEditIndex上设置断点,行,它将值设置为0,这是第一个正确的项目。
但是,asp:TextBox不显示。它显示了ItemTemplate中的内容,而不是EditItemTemplate中的内容。
但是,如果再次点击编辑按钮,它会显示文本框。
任何想法如何与第一次点击?
答
grid.EditIndex = e.NewEditIndex;
grid.DataBind();