隐藏字符串的一部分

时间:2013-01-18 14:19:50

标签: c# asp.net string listbox

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

这些字符串值显示为 -

value|1
value|2
value|3

//etc

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

我在下一页'|'上使用了分割函数,以便在传递其他方法时获取字符串和ID。

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

listBox的填充方式如下 -

foreach (string x in values)
{

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

}

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

protected void Button6_Click(object sender,EventArgs e)         {

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

        }
    }

ListBox3.SelectedItem value|1的位置,然后在下一页我分裂了。所以我需要这个完整的sting来传递查询字符串,但只希望value部分在listBox中可见。

4 个答案:

答案 0 :(得分:4)

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

var split = x.Split('|');
var item = new ListItem(split[0], split[1]);
ListBox3.Items.Add(item);

答案 1 :(得分:2)

我将ID添加到列表框的“Value”属性中,并将实际显示值设置为“Text”属性。

答案 2 :(得分:1)

如何使用Dictionary而不是使用字符串列表?!

您可以简单地将Id保留为字典键,并将值显示给用户。

答案 3 :(得分:0)

将值放入值属性和文本以显示在text属性中:

foreach (string x in values)
{

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

ListItem的第一个参数是应该显示的文本,第二个是将在回发时传递给您的代码的值