0

我有一个在 UI 中显示字符串值列表的 listBox。

这些字符串值显示为 -

value|1
value|2
value|3

//etc

其中整数值是存储在数据库中的字符串 ID。

我在下一页上使用了拆分函数'|'来获取字符串和 ID,当它通过其他方法时。

无论如何我可以ID在 UI 中隐藏该值,但它仍然存在于 listBox 中,以便在查询字符串中可用?

listBox 是这样填充的 -

foreach (string x in values)
{

    ListBox3.Items.Add(x); // I want to hide the '|1' value in the listBox

}

编辑 我想隐藏值的 ID,但是在下一页上发生拆分功能时,它可以在查询字符串中使用。在原始页面上有一个像这样的按钮 -

受保护的无效Button6_Click(对象发送者,EventArgs e){

        if (ListBox3.SelectedItem != null)
        {
            Response.Redirect("About.aspx?term=" + ListBox3.SelectedItem);

        }
    }

那么在下一页我将其拆分的ListBox3.SelectedItem位置在哪里。value|1所以我需要这个完整的字符串来传递查询字符串,但只希望列表框中的value部分可见。

4

4 回答 4

4

添加一个新项目,预先设置文本和值:

var split = x.Split('|');
var item = new ListItem(split[0], split[1]);
ListBox3.Items.Add(item);
于 2013-01-18T14:23:19.157 回答
2

I'd add the ID to the "Value" property of the listbox and set the actual display value to the "Text" property.

于 2013-01-18T14:24:53.843 回答
1

How about using the Dictionary instead of using list of strings?!

You can simply keep the Id as a dictionary key and display the value to the user.

于 2013-01-18T14:25:01.040 回答
0

Put a value into a value property and text to display in text property:

foreach (string x in values)
{

    ListBox3.Items.Add(new ListItem(x.Split('|')[0], x));
}

Where first parameter of ListItem is a text that should be displayed and second is a value which will be passed to your code on postback

于 2013-01-18T14:24:38.063 回答