簡體   English   中英

ASP:ListBox獲取所選項目 - 一個班輪?

[英]ASP:ListBox Get Selected Items - One Liner?

我試圖獲取asp:ListBox控件的選定項目,並將它們放在逗號分隔的字符串中。 那么必須有一種更簡單的方法:

foreach (ListItem listItem in lbAppGroup.Items)
{
    if (listItem.Selected == true)
    {
        Trace.Warn("Selected Item", listItem.Value);
    }
}

有沒有辦法把它變成一條線? 喜歡我的偽代碼:

string values = myListBox.SelectedItems;

我正在使用ASP.NET和C#3.5。

謝謝你的幫助!!

使用LINQ:

string values = String.Join(", ", lbAppGroup.Items.Cast<ListItem>()
                                                  .Where(i => i.Selected)
                                                  .Select(i => i.Value));

我不認為有任何內置,但你可以做這樣的事情:

  <asp:ListBox runat="server" ID="listBox" SelectionMode="Multiple">
    <asp:ListItem Selected="True" Text="text1" Value="value1"></asp:ListItem>
    <asp:ListItem Selected="false" Text="text2" Value="value2"></asp:ListItem>
    <asp:ListItem Selected="True" Text="text3" Value="value3"></asp:ListItem>
    <asp:ListItem Selected="True" Text="text4" Value="value4"></asp:ListItem>
</asp:ListBox>

    IEnumerable<string> selectedValues = from item in listBox.Items.Cast<ListItem>()
                                             where item.Selected
                                             select item.Text;

        string s = string.Join(",", selectedValues);
var selectedQuery = listBox.Items.Cast<ListItem>().Where(item => item.Selected); 
string selectedItems =  String.Join(",", selectedQuery).TrimEnd();

實際上有內置的東西:

ListBox.getSelectedItems

http://msdn.microsoft.com/en-us/library/aa297606(v=vs.60).aspx

另一種方法是使用Request Form對象,其中包含已回發的所有內容。 例如:

string values = Request.Form(lbAppGroup.UniqueID);  //returns "a,b" if they were selected

默認情況下,返回所選項目的逗號分隔列表。 當我不想或不需要再次綁定數據但仍希望獲取所選值以進行處理時,我有時會使用這種方式。

暫無
暫無

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

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