[英]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.