C# asp.net中的动态下拉列表

C# asp.net中的动态下拉列表,c#,asp.net,C#,Asp.net,我有一个名为“product.aspx”的页面,其中列出了所有产品,但它显示了12个项目,因此我必须创建一个包含页面数的下拉列表,问题是在这个下拉列表中,它工作得不好 我的意思是,我将值autopostback=true,并创建indexchange事件,因为我需要选择该值,但ListBxNbrPG.SelectedItem.value它总是返回数字1,这是dropdownlist中的第一项,无论我选择了什么数字,但它总是返回数字1 protected void Page_Load(obje

我有一个名为“product.aspx”的页面,其中列出了所有产品,但它显示了12个项目,因此我必须创建一个包含页面数的下拉列表,问题是在这个下拉列表中,它工作得不好

我的意思是,我将值autopostback=true,并创建indexchange事件,因为我需要选择该值,但ListBxNbrPG.SelectedItem.value它总是返回数字1,这是dropdownlist中的第一项,无论我选择了什么数字,但它总是返回数字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*/
    }
受保护的无效页面加载(对象发送方,事件参数e)
{
int nbr=(int)DB.ExecScal(“从produit中选择计数(*));
nbr=((nbr%12)==0)?(nbr/12):(int)(nbr/12)+1;//页数
ListBxNbrPG.Items.Clear();//初始化dropdownlist

对于(int i=1;i每次您从下拉列表中选择一个项目时,您都会将其发回服务器并重新加载列表。在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
     }

}
if(!Page.IsPostBack){
int nbr=(int)DB.ExecScal(“从produit中选择计数(*));
nbr=((nbr%12)==0)?(nbr/12):(int)(nbr/12)+1;//页数
ListBxNbrPG.Items.Clear();//初始化dropdownlist

对于(inti=1;i在初始get请求中填写下拉列表。然后,您可以通过在第一次请求时保留相同的数据来执行任意数量的回发

如果(!IsPostBack)

{

}

dropdownlist.databind();