簡體   English   中英

列表框未獲取所有選定項

[英]ListBox not getting all selected items

我有一個列表框,它是從后面代碼中的數據庫動態填充的。 我有另一個按鈕,當我單擊按鈕時,按鈕單擊事件將獲取所有選定的列表項,並將列表項文本插入數據庫。 我在列表框屬性中將AutoPostBack設置為false,EnableViewState為true

問題是當我單擊按鈕時,即使我選擇了多個項目,它也只能看到1個選定的項目。這是代碼。 我感謝您的幫助。 我在這個問題上花了1天的時間,卻一無所獲。

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

protected void loadrdlist()
{
         ((ListBox)TestFormView.FindControl("ListBoxB")).Items.Clear();

        foreach (FailureTempRD rd in FailureTempRD.SelectFailureTempRD())
            ((ListBox)TestFormView.FindControl("ListBoxB")).Items.Add(new ListItem(rd.ReferenceDesignator, rd.ReferenceDesignator)); 
}

protected void btn_AddRD_Click(object sender, EventArgs e)
{
    foreach (ListItem rd in ((ListBox)TestFormView.FindControl("ListBoxB")).Items) //This is where it only see 1 selected item
     {
        if (rd.Selected == true) 
           //put selected item to database
        }
    }
}

這是列表框和按鈕

<asp:ListBox ID="ListBoxB" runat="server" SelectionMode="Multiple" ></asp:ListBox>
<asp:Button ID="btn_AddRD" runat="server" CausesValidation="False"  onclick= "btn_AddRD_Click" Text="Add" />

更新:我知道為什么。 當我加載listitem時,我需要添加ID作為listitem值。 因此,更改以下代碼。 我測試了幾次,它按預期工作。

 ((ListBox)TestFormView.FindControl("ListBoxB")).Items.Add(new ListItem(rd.ReferenceDesignator, rd.ReferenceDesignator)); 

 ((ListBox)TestFormView.FindControl("ListBoxB")).Items.Add(new ListItem(rd.ReferenceDesignator, rd.ID));

嘗試使用GetSelectedIndices方法。

從上面的鏈接:

使用GetSelectedIndices方法可以標識或訪問ListBox控件中的選定項目。 返回數組中的每個元素代表所選列表項的索引。 您可以使用索引值來訪問Items集合中的項目。

暫無
暫無

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

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