DropDownList在GridView中选择到一个GridView BoundField

问题描述:

在ASP.NET 4中,我有一个GridView,其中包含一个DropDownList的部分。 DropDownList填充了我需要的第二个数据源的所有选项。不过,我希望每个行中的每个DropDownList都有一个不同的SelectedIndex,默认情况下基于GridView中的数据。DropDownList在GridView中选择到一个GridView BoundField

例如,这里是样本数据

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

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

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

然而,在本专栏编辑的行包含我需要DropDownList默认显示的值()。

换句话说,我需要

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

有基于“隐藏”字段中的数字中选择合适的指数。

也许有任何想法?

+0

是在下拉列表的ASP DROPDOWNLIST或者是它只是一个普通的HTML选择静态选择列表? – patmortech 2011-01-07 05:03:41

+0

对不起 2011-01-07 16:56:44

您可以订阅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; 
    } 
} 

- 帕维