ASPxListBox элементы для строки - PullRequest
0 голосов
/ 05 января 2012

Это должно быть легко, но я не могу этого сделать.У меня 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 ]

2 голосов
/ 05 января 2012

Я не знаком с ASPxListBox, но не могли бы вы просто просмотреть и затем удалить последнюю запятую, получив подстроку?

 string csvList = sb.ToString();
 TextBox1.Text = csvList.Substring(0, csvList.LastIndexOf(','));
1 голос
/ 10 января 2012

@ клавиатураP: ваше решение, на мой взгляд, довольно хорошо, поэтому + 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[] { ';' });
0 голосов
/ 10 января 2012

Я не знаком с 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(',');
...