我有一个带有EditItemTemplate的GridView,我正在将字典绑定到它
<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>
当我单击“编辑”按钮时,将激发行编辑事件(用调试器验证),在该事件中我设置了GridView编辑索引:
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中的内容,而不是editemtemplate中的内容。
但是,如果我再次单击编辑按钮,它将显示文本框。
有什么主意如何通过第一次点击得到它吗?