簡體   English   中英

asp.net中的動態下拉列表

[英]dynamic dropdownlist in asp.net

我有一個名為“product.aspx”的頁面,它列出了所有產品,但它顯示了 12 個項目,所以我必須創建一個包含頁數的下拉列表,問題是在這個下拉列表中它不能正常工作!

我的意思是,我把值 autopostback=true 並創建了 indexchange 事件,因為我需要選擇值,但是 ListBxNbrPG.SelectedItem.Value 它總是返回數字 1,這是下拉列表中的第一項,無論數字如何我已經選擇但總是返回數字 1

  protected void Page_Load(object sender, EventArgs e)
    {
         int nbr = (int)DB.ExecScal("select count(*) from produit");
        nbr = ((nbr % 12) == 0) ? (nbr / 12) : (int)(nbr / 12) + 1; // number of pages

        ListBxNbrPG.Items.Clear(); //initialisation of dropdownlist

        for (int i = 1; i <= nbr; i++)
        {
            ListBxNbrPG.Items.Add(i.ToString());
            ListBxNbrPG.Items[i - 1].Value = i.ToString();
           

        }

        
         if (Request.Params["pg"] != "" )
            {
              label.text=Request.Params["pg"].ToString(); //always it give number 1
            }
      

    }

    protected void ListBxNbrPG_SelectedIndexChanged(object sender, EventArgs e)
    {      
        Response.Redirect("product.aspx?pg="+ListBxNbrPG.SelectedItem.Value.ToString());
        
        /* ListBxNbrPG.SelectedItem.Value.ToString() it return always number 1*/
    }

每次您從下拉列表中選擇一個項目時,您都會回發到服務器並重新加載您的列表。 在 Page_Load 中,您需要將代碼包裝在!Page.IsPostBack

if (!Page.IsPostBack ) {

    int nbr = (int)DB.ExecScal("select count(*) from produit");
    nbr = ((nbr % 12) == 0) ? (nbr / 12) : (int)(nbr / 12) + 1; // number of pages

    ListBxNbrPG.Items.Clear(); //initialisation of dropdownlist

    for (int i = 1; i <= nbr; i++)
    {
        ListBxNbrPG.Items.Add(i.ToString());
        ListBxNbrPG.Items[i - 1].Value = i.ToString();


    }


     if (Request.Params["pg"] != "" )
     {
        label.text=Request.Params["pg"].ToString(); //always it give number 1
     }

}

在初始獲取請求中填寫您的下拉列表。 然后,您可以通過在第一次請求時保留相同的數據來執行任意數量的回發。

如果(!IsPostBack)

{

dropdownlist.databind();

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM