首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除Dropdown

清除Dropdown
EN

Stack Overflow用户
提问于 2010-11-16 00:41:42
回答 5查看 226关注 0票数 0

我有一个asp.net应用程序,其中有一个绑定到dataset的下拉列表。但是在选择一个项目之后,下拉菜单清除了所有的值,我们如何解决这个问题呢?

这是我在设计页面中的下拉列表:

代码语言:javascript
复制
<asp:DropDownList ID="ddlProduct" runat="server" CssClass="textEntry" Width="300px"
            AutoPostBack="True" OnSelectedIndexChanged="ddlProduct_SelectedIndexChanged">

        </asp:DropDownList>

绑定代码如下所示。

代码语言:javascript
复制
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            BindProductDdl();
    }

    private void BindProductDdl()
    {
        Products objProducts = new Products();
        dsProducts dsProduct = new dsProducts();
        ListItem olst = default(ListItem);
        olst = new ListItem(" Select", "0");
        dsProduct = objProducts.GetDataset("");            
        ddlProduct.DataSource = dsProduct;
        ddlProduct.DataTextField = "Product";
        ddlProduct.DataValueField = "Id";
        ddlProduct.DataBind();
        ddlProduct.Items.Insert(0, olst);
    }

 protected void ddlProduct_SelectedIndexChanged(object sender, EventArgs e)
    {
        Products objProducts = new Products();
        dsProducts dsProduct = new dsProducts();
        string criteria = "";

        if (ddlProduct.SelectedItem.Text != " Select")
        {
            string id = ddlProduct.SelectedItem.Value;
            criteria = "Id='" + id + "'";
            dsProduct = objProducts.GetDataset(criteria);
            productValue = Convert.ToDecimal(dsProduct.tblProducts.Rows[0]["Value"].ToString());
        }

    }

提前谢谢..

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-16 11:16:27

根据你的问题,如果我理解正确的话,如果填充了下拉列表,那么您不希望重新绑定它。此外,请检查您的视图状态,这应该不会发生,除非您已禁用视图状态

代码语言:javascript
复制
 protected void Page_Load(object sender, EventArgs e)
{        
  if (!IsPostBack && ddlProduct.Items.count <=0 )
        BindProductDdl();

}

票数 1
EN

Stack Overflow用户

发布于 2010-11-16 00:48:53

将下拉列表的AppendDataBoundItems属性设置为true,这将允许您混合使用数据绑定项和非数据绑定项(否则,insert语句将清除您的列表)

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx

票数 1
EN

Stack Overflow用户

发布于 2010-11-16 10:08:29

您是否在页面上禁用了视图状态?由于只在第一次加载页面时才将项加载到dropdownlist中,因此如果未启用viewstate,则回发后列表中将不会有任何内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4186663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档