【问题标题】:Dropdown List Items Are Multiplying on clicking Gridview Select Button Each Time每次单击 Gridview 选择按钮时,下拉列表项都会成倍增加
【发布时间】:2013-02-16 04:59:41
【问题描述】:

这是我的页面加载代码

protected void Page_Load(object sender, EventArgs e)
    {
        string str = "SELECT BOOK.book_name,BOOK.price,BOOK.author,BOOK.publisher,BOOK.isbn,BOOK_APPROVAL.status,BOOK_APPROVAL.cat_id FROM BOOK INNER JOIN BOOK_APPROVAL ON BOOK.book_id = BOOK_APPROVAL.book_id";

        SqlDataAdapter da = new SqlDataAdapter(str, obj.connect());

        da.Fill(ds);
        GridView1.DataSource = ds;
        GridView1.DataBind();

        ds1.Clear();
        DropDownList1.Items.Clear();

        string str1 = "SELECT cat_id,cat_name from CATEGORY";
        SqlDataAdapter da1 = new SqlDataAdapter(str1, obj.connect());
        da1.Fill(ds1);

        DropDownList1.DataSource = ds1;
        DropDownList1.DataTextField = "cat_name";
        DropDownList1.DataValueField = "cat_id";
        DropDownList1.DataBind();
    }

我在同一页面上有一个下拉列表、带有选择按钮的网格视图和一个批准按钮。当我单击选择按钮时,它的值显示在一系列文本框中,然后我从下拉列表中选择一个项目。使用以下代码将其 datavalue 字段分配给变量:

 SqlCommand ddl = new SqlCommand("select cat_id from CATEGORY where cat_name='" + DropDownList1.SelectedItem + "' ", obj.connect());

catID = Convert.ToInt32(ddl.ExecuteScalar());

最后,当我单击批准按钮时,所有文本框的值都被插入到 ID= dropdownlist.datavaluefield 的表中。

我的问题是,当我每次单击 gridviews 选择按钮时,我的下拉列表值会显示多次。

所以,在页面加载中尝试了 ds1.Clear()DropDownList1.Items.Clear();,它解决了这个问题,但它会将我的 Datavaluefield 重置为“1”。所以我无法使用选定的数据值字段插入表中。

那我该如何解决呢?

【问题讨论】:

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


    【解决方案1】:

    您只需将Page_Load 中的代码包装在!Page.IsPostBack-check 中:

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            // code here that should be executed only at the first time 
            // and not on consecutive postbacks
        }
    }
    

    在 ASP.NET 中,项目默认存储在 ViewState 中。

    【讨论】:

    • 我想知道像这样的答案在 ASP.NET 标记中生成了多少代表(关于不知道将其初始化/数据绑定代码包装在 if(!Page.IsPostBack) 中的人)=)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2010-09-28
    • 2016-10-02
    • 1970-01-01
    相关资源
    最近更新 更多