簡體   English   中英

處理來自Checkboxlist的所選項目

[英]Handling selected items from Checkboxlist

感謝以下建議:我有一個名為CBL_categ的復選框列表,包含20多個項目。 我從中選擇了一些項目,並按下按鈕將下面的代碼塊關聯起來。 最后的總和總是為零。 為什么?

protected void FButton_Click(object sender, EventArgs e)
        {
            int sum=0;

            for (int i = 1; i < 20; i++)
            {
                if (CBL_categ.Items[i].Selected)
                    sum = sum + 1;
            }
            statusLabel.Text += " " + sum;

        }

我不會使用您提供的代碼。 它假設該列表總是有20個項目。 這可能導致越界錯誤,而不是所有項目都被計算,等等。 我會用這樣的東西:

protected void FButton_Click(object sender, EventArgs e)
    {
        int sum=0;

        foreach(ListItem item in CBL_categ.Items)
        {
          if(item.Selected){
             sum++;
          }             
        }

        statusLabel.Text += " " + sum;

    }

聽起來是在實際使用此方法之前重新綁定ListBox。 因此,例如,如果您的Page_Load方法如下所示:

 protected void Page_Load(object sender, EventArgs e)
 {
      //This gets called before your event on postback and will erase your selected items.
      BindListBox();
 }

那有意義嗎?

編輯:

如果您的Page_Load看起來像是修改它,所以它看起來像這樣來糾正問題:

 protected void Page_Load(object sender, EventArgs e)
 {
      if(!Page.IsPostBack){
           BindListBox();
      }
 }

當你填充你的復選框列表時,請確保你還檢查頁面是否沒有回發,即在page_load上檢查if(!Page.IsPostBack){填充你的列表},否則你只會覆蓋選擇。

暫無
暫無

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

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