如何将所选值带到DropDownList的顶部?

问题描述:

可能重复:
How to save in the dropdown the value choosed?如何将所选值带到DropDownList的顶部?

我有一个GridView和带DropDownList而不是TextBox列。下拉有2个值(1.No,2.Yes)。

问题是,我只能选择值“是”。后面的代码适用于“是”,我也添加了价值编号

另一件事是如果我选择一个值(例如“是”),我怎样才能将它带到DropDownList的顶部,因为它总是显示默认值(值“No”)。

+1

使用的selectedIndex = 1,以显示值是。 – Sas 2012-03-18 15:13:10

+0

我试过了,没有工作 – 2012-03-18 16:13:15

+0

是的,现在它工作了,我该如何保存价值?如果我选择更新的内容,我希望下拉列表的值为 – 2012-03-18 16:23:27

HTML

<!--Add other attributes as you need to the grid view--> 
<!--NOTE: **OnRowDataBound="GridView_RowDataBound"** --> 
<asp:GridView ID="GridView1" runat="server" 
     OnRowDataBound="GridView1_RowDataBound"> 
<Columns> 

    <asp:TemplateField HeaderText="Dropdown Column"> 
     <ItemTemplate> 
      <asp:DropDownList ID="ddlYesNo" runat="server"> 
       <asp:ListItem Value="1" Text="No"></asp:ListItem> 
       <asp:ListItem Value="2" Text="Yes"></asp:ListItem> 
      </asp:DropDownList> 
     </ItemTemplate> 
    </asp:TemplateField> 
    <!-- OTHER COLUMNS --> 
</Columns> 
<!-- REST OF THE STUFF --> 

后面的代码

protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     DropDownList ddl = (DropDownList)e.Row.FindControl("ddlYesNo"); 
     ddl.SelectedValue = 
      ((System.Data.DataRowView)e.Row.DataItem) ["dataColName"].ToString(); 

    } 
} 
+0

这是什么? ddl.SelectedValue = ((System.Data.DataRowView)e.Row.DataItem)[“dataColName”]。ToString(); 检查所选值是否为“dataColName”我需要用dataColName替换? – 2012-03-18 16:03:31

+0

这是更新数据库时保存ddl.SelectedValue的列的名称。如果您需要选择更新的值,则需要将该值分配回下拉列表控件。这就是它所做的。合理? – Kaf 2012-03-18 17:15:12

+0

好吧,更新时,我希望选择的值在单元格中可见 – 2012-03-18 17:22:39