数据网格中的下拉列表 - 如何在编辑模式下选择默认选择?

时间:2009-07-30 12:07:44

标签: asp.net controls

我正在定义一个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函数并在那里设置所选索引的正确解决方案吗?

如果是这样,我该怎么做?或者有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您的主题是数据网格,但您的代码是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();
    }
}