2009-07-30 70 views
0

我定義一個GridView如下:數據網格中的下拉列表 - 如何在編輯模式下選擇默認選擇?

 <asp:GridView ID="MediaViewsGrid" DataSourceID="MediaViewsDataSource" 
    runat="server" 
    AutoGenerateColumns="False"> 
     <Columns> 
      <asp:CommandField ShowEditButton="True" ShowDeleteButton="true" /> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:Label ID="lblLanguage" runat="server" Text='<%# Eval("Language.Name") %>' /> 
       </ItemTemplate> 
       <EditItemTemplate> 
       <asp:DropDownList ID="ddlLanguages" 
            DataSourceID="LanguageDataSource" 
            DataTextField="Name" 
            DataValueField="Code" 
            OnDataBound="ddlLanguages_OnDataBound"          
            runat="server" /> 
       </EditItemTemplate> 
      </asp:TemplateField> 

我想因爲當用戶點擊「編輯」我ddlLanguages下拉列表中設置默認值。定義一個OnDataBound函數並在那裏設置選定的索引是否正確的解決方案?

如果是這樣,我該怎麼做?還是有更好的解決方案?

回答

0

你的主題是datagrid,但你的代碼說gridview。我會假設gv。

這裏有一個例子:

protected void gvOrderSummary_RowDataBound(Object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow && 
     (e.Row.RowState == DataControlRowState.Edit || 
      (e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit)))) 
    { 
     ((DropDownList)e.Row.Cells[4].Controls[1]).SelectedValue = DataBinder.Eval(e.Row.DataItem, "orderStatusId").ToString(); 
    } 
} 
+0

謝謝,就像一個魅力! – EdanB 2009-07-30 12:51:39