asp.net 如何在服务器端的下拉列表中添加选项

mpbci0fu  于 11个月前  发布在  .NET
关注(0)|答案(1)|浏览(82)

我想通过服务器端添加options,我在ASP.NET中尝试了以下逻辑。

List<string> vendorname_list = null;
vendorname_list = (List<string>)Session["vendornamelist"];

if (vendorname_list.Count > 0)
{
    ddlvendornames.Items.Clear();
    string vnlst = "";

    for (int i = 0; i < vendorname_list.Count; i++)
    {
        if (Session["vendornameselect"] != null && Session["vendornameselect"].ToString() == vendorname_list[i])
            vnlst = "<option Selected='True' value=" + vendorname_list[i] + ">" + vendorname_list[i] + "</option>";
        else
            vnlst += "<option value=" + vendorname_list[i] + ">" + vendorname_list[i] + "</option>";
    }

    // ddlvendornames.Items.Add(vnlst);

    ddlvendornames.DataSource = vnlst; // it is not appending properly 
    ddlvendornames.DataBind();
}

字符串
Session["vendornamelist"]中,我通过循环添加了值列表。我添加到字符串变量和下拉变量(ddlvendornames)。
请让我知道是否可以从服务器端使用<option>标记添加下拉列表值。
对不起,我的英语不好。

ltqd579y

ltqd579y1#

如注解中所述,建议将选项列表与ListItem s绑定,而不是编写和添加<option>元素。

List<ListItem> vnlst = new List<ListItem>();

int? selectedIndex = null;
for (int i = 0; i < vendorname_list.Count; i++)
{
    if (Session["vendornameselect"] != null && Session["vendornameselect"].ToString() == vendorname_list[i])
    {
        selectedIndex = i;
        vnlst.Add(new ListItem(vendorname_list[i], vendorname_list[i], true));
    }
    else
    {
        vnlst.Add(new ListItem(vendorname_list[i], vendorname_list[i]));
    }
}

ddlvendornames.DataSource = vnlst;
ddlvendornames.DataTextField = "Text";
ddlvendornames.DataValueField = "Value";

if (selectedIndex.HasValue)
    ddlvendornames.SelectedIndex = selectedIndex.Value;

ddlvendornames.DataBind();

字符串

相关问题