开发者

How to select the listbox using querystring in c#

I am using c#.

I am trying to select the listbox values from the data coming in querystring. Below is code.

if (!string.开发者_运维问答IsNullOrEmpty(Security.GetString(Page.Request.Params["VT"])))
        {            
            string[] strCntVisit = Security.GetString(Page.Request.Params["VT"]).Split(',');

            foreach (string i in strCntVisit)
            {
                lstContriesVisited1.SelectedValue = i;

            }                
        }

my problem is that the above code is traversing perfectly, however the issue is that in my listbox my last value of (i) is selected not all the values in querystring.

Please suggest.


If your ListBox has its SelectionMode property set to Multiple, you can do:

string vtParam = Security.GetString(Page.Request.Params["VT"]);
if (!String.IsNullOrEmpty(vtParam)) {            
    string[] strCntVisit = vtParam.Split(',');
    foreach (string i in strCntVisit) {
        ListItem item = lstContriesVisited1.Items.FindByValue(i);
        if (item != null) {
            item.Selected = true;
        }
    }                
}

EDIT: The following should answer your comment:

foreach(ListItem item in lstContriesVisited1.Items) {
    lstContriesVisited2.Items.Add(item);
}
lstContriesVisited1.Items.Clear();


SelectedValue is a single item only. Assuming you're using an ASP.NET ListControl, try setting the Selected property on items that match your criteria.

List<string> validItems = new List<string>(strCntVisit);
foreach (ListItem i in lstContriesVisited1.Items) {
    if (validItems.Contains(i.Text)) {
        i.Selected = true;
    }
}


string vt = Security.GetString(Page.Request.Params["VT"]);
if (!string.IsNullOrEmpty(vt))
{
    string[] valuesToSelect = vt.Split(',');
    foreach (ListItem li in lstContriesVisited1.Items)
    {
        li.Selected = Array.Contains(valuesToSelect, li.Value);
    }
}

(If the VT parameter could potentially contain a lot of values then it might be quicker to change valuesToSelect from an array to a HashSet<T>.)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜