2010-01-05 90 views
1

我有一个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中的内容。

但是,如果再次点击编辑按钮,它会显示文本框。

任何想法如何与第一次点击?

回答

3
grid.EditIndex = e.NewEditIndex; 
grid.DataBind(); 
相关问题