2010-01-05 93 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(); 
相關問題