2009-07-30 11 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

関連する問題