GridView中的DropDownList选择GridView BoundField

时间:2011-01-07 04:26:56

标签: asp.net gridview drop-down-menu

在ASP.NET 4中,我有一个GridView,它在该部分中包含一个DropDownList。 DropDownList填充了我需要的第二个数据源的所有选项。但是,我希望每行中的每个DropDownList都基于GridView中已有的数据默认设置不同的SelectedIndex。

例如,这是样本数据

|  id  |     Status    |  hidden  |  First Name  |
--------------------------------------------------
|  12  |   <dropdown>  |     3    |  john  doe   |
|  13  |   <dropdown>  |     7    |  jane  ble   |

所以你会注意到第3列是隐藏的,这意味着我把它设置为:

<asp:BoundField DataField="StatusName" HeaderText="Status" Visible="false" />

但是,此列中已编辑的行包含我需要DropDownList默认显示的值()。

换句话说,我需要

<option select="selected">something</option>

根据“隐藏”字段中的数字选择正确的索引。

也许有任何想法?

1 个答案:

答案 0 :(得分:2)

您可以订阅RowDataBound事件,以便在下拉列表中选择正确的值:

protected void myGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    DropDownList lst = null;
    string hiddenStatus = string.Empty;

    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        hiddenStatus = e.Row.Cells[2].Text;
        lst = (DropDownList)e.Row.FindControl("dropDownIdentifier");

        lst.SelectedValue = hiddenStatus;
    }
}

- 帕维尔