asp.net使用javascript隐藏下拉列表中的特定项目

本文关键字:项目 下拉列表 net 使用 javascript 隐藏 asp | 更新日期: 2023-09-27 18:21:04

我正在使用ASP.NET,并且正在动态填充我的DropDownList。这是我的代码:

  DataTable dtList = new DataTable();
        dtList.Columns.Add("Name");
        dtList.Columns.Add("Type");
foreach (DataDefinitionResponse dr in _dr)
        {
            if (dr.Type == "Dropdown")
            {
                string[] strSplit = dr.ListValue.Split('|');
                List<string> lst = new List<string>();
                foreach (string word in strSplit)
                {
                    DataRow row = dtList.NewRow();
                    row["Name"] = word;
                    row["Type"] = dr.Name;
                    dtList.Rows.Add(row);
                }
            }
        }
ddlFieldList.DataSource = dtList;
        ddlFieldList.DataTextField = "Name";
        ddlFieldList.DataValueField = "Type";
        ddlFieldList.DataBind();

现在,我只想在选择另一个DropDownList时使用Javascript隐藏特定项目。我没有在此处使用SelectedIndexChanged。我必须使用Javascript。

请有人帮我做这件事。

Thx

asp.net使用javascript隐藏下拉列表中的特定项目

我认为你无法用JavaScript操作DropDownList并"逍遥法外",因为当页面随后被发布回服务器时,ASP.NET会检测到DropDown列表被"篡改",并引发异常。

您可以设置一些标志来停止错误,但您不太可能在代码隐藏中使用DropDownList。

通常情况下,你会用SelectedIndexChanged实现你想要做的事情(我知道你说过你不想这样做),并将控件放在UpdatePanel或类似的文件中,以避免整个页面的回发/刷新。

function Remove()
{
var DropDownList=document.getElementById('<%=DropDownList1.ClientID%>');
alert(DropDownList.value);
for(i=DropDownList.length-1; i>=0; i--) 
{
    if(DropDownList.options[i].selected)
    {
       DropDownList.remove(i);         
    }
}
}