下拉选择的值不会显示在我的Detailview中

时间:2014-03-07 19:56:14

标签: c# asp.net drop-down-menu

我的下拉列表没有在我的Detailview中显示previoiusly选择的值。它总是显示列表中的第一个值。如果之前选择的值是xyz,那么当Detailvies加载时,我想显示xyz。我已经研究了很多,但找不到任何我可以使用的解决方案。请帮忙 这是我的aspx代码,用于具有下拉列表的字段

<asp:TemplateField HeaderText="Name:">
  <ItemTemplate>
    <asp:Label ID="lbl_UID" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>'></asp:Label></ItemTemplate>
      <EditItemTemplate> 
       <asp:DropDownList ID="ddl_Name" Width="200px" Height="25" DataSourceID="SDS_Manager" DataTextField="FULL_NM" AutoPostBack="false"
         DataValueField="UID" runat="server" AppendDataBoundItems="false">
        <asp:ListItem Text="Select Name" Value="Select Name"></asp:ListItem>
      </asp:DropDownList>                    
      </EditItemTemplate>
 </asp:TemplateField>

这里是绑定detailview的代码

protected void Edit(object sender, EventArgs e)
    {
        using (GridViewRow row = (GridViewRow)((LinkButton)sender).Parent.Parent)
        { 
            sqlcon.Open();
            sqlcmd = new SqlCommand(@"Select PRJ_ID, WPC_CD, WPC_DESC, Name FROM myTable  where PRJ_ID = '" + myvar + "' ", sqlcon);
            da = new SqlDataAdapter(sqlcmd);
            da.Fill(dt);
            sqlcon.Close();
            DV_Edit.DataSource = dt;
            DV_Edit.DataBind();
            sqlcon.Close();

            popup.Show();
        }
    }

1 个答案:

答案 0 :(得分:0)

尝试设置AutoPostBack =“true”并确保您是否有任何逻辑来设置页面加载中下拉列表的值,该代码不会在回发时执行,如下所示。

protected void Page_Load(object sender, EventArgs e) {
    if (!IsPostBack) {
        ddlOne.DataSource = //your data here;
        ddlOne.DataBind();
    }
}
//if you don't wrap this logic in the if(!IsPostBack), the code will simply re-populate
//the drop down and set the selected index to the first item in the list with each
//post back.