ASPxListBox项目为字符串

时间:2012-01-05 01:35:13

标签: c# asp.net listbox devexpress tostring

这应该很容易,但我没有这样做。我打开了带复选框选项的ASPxListBox。所以我想在一个字符串中选择项目。像这样:

  

ITEM1,ITEM4,item9

等等。

请注意,它们应除以“,”并删除最后一个逗号。

尝试过这样的事情,但是行不通:

StringBuilder sb = new StringBuilder();
for (int i = 0; i < lb1.Items.Count; i++)
    sb.Append(lb1.Items[i].Selected ? lb1.Items[i].Text + "," : "");
TextBox1.Text = sb.ToString();

(之前我问过类似的问题,但是我没有提到这是ASPxListBox,我得到的建议不会有效。

因此,这是Visual Studio 2008,Devexpress 9.3和.NET framework 3.5

感谢。

3 个答案:

答案 0 :(得分:2)

我不熟悉ASPxListBox,但是你不能通过获取子字符串来循环然后删除最后一个逗号吗?

 string csvList = sb.ToString();
 TextBox1.Text = csvList.Substring(0, csvList.LastIndexOf(','));

答案 1 :(得分:1)

@keyboardP:我的解决方案相当不错,所以+1。

此外,您可以在DevExpress代码中心找到类似的解决方案:

http://www.devexpress.com/Support/Center/e/E2625.aspx

ASPxListBox listBox = instance;

string selectedItemsAsString = string.Empty;

foreach (ListEditItem item in listBox.SelectedItems)
    selectedItemsAsString += item.Value + ";";

if (selectedItemsAsString.Length > 0)
    selectedItemsAsString = selectedItemsAsString.Trim(new char[] { ';' });

答案 2 :(得分:0)

我不熟悉aspxlistbox,但你可以写这样的东西 -

    String Finaloutput="";
    for (int i = 0; i < lb1.Items.Count; i++)
    {
       string output= lb1.Items[i].Selected ? lb1.Items[i].Text + "," : "";
       Finaloutput += output;
    }
    TextBox1.Text = Finaloutput.TrimEnd(',');