Asp.net dropdownlist不加载链
我有一种方法,可以根据您以前的选择使用值填充dropdownlist:Asp.net dropdownlist不加载链,asp.net,webforms,Asp.net,Webforms,我有一种方法,可以根据您以前的选择使用值填充dropdownlist: private void CarregarCombos(DropDownList dropDown) { dropDown.Items.Clear(); dynamic resultados = null; switch (dropDown.ID) { case "ddlOrgaoProdutor": dropDown.Items.Add(new L
private void CarregarCombos(DropDownList dropDown)
{
dropDown.Items.Clear();
dynamic resultados = null;
switch (dropDown.ID)
{
case "ddlOrgaoProdutor":
dropDown.Items.Add(new ListItem("0000 - Todos os Órgãos", ""));
OrgaoProdutor bllOPR = new OrgaoProdutor();
resultados = new List<OrgaoProdutorInfo>();
resultados = bllOPR.ListarOrgaoProdutorPorStatus("1,2").OrderBy(n => n.Numero).ToList();
break;
case "ddlFuncao":
dropDown.Items.Add(new ListItem("Selecione", ""));
Funcao bllFuncao = new Funcao();
resultados = new List<FuncaoInfo>();
resultados = bllFuncao.ListarPorOrgaoProdutor(DataParser.ToInt(ddlOrgaoProdutor.SelectedValue), 1).OrderBy(n => n.Numero).ToList();
break;
case "ddlSubFuncao":
dropDown.Items.Add(new ListItem("Selecione", ""));
SubFuncao bllSubFuncao = new SubFuncao();
resultados = new List<SubFuncaoInfo>();
resultados = bllSubFuncao.ListarSubFuncao(DataParser.ToInt(ddlOrgaoProdutor.SelectedValue), DataParser.ToInt(ddlFuncao.SelectedValue), 1).OrderBy(n => n.Numero).ToList();
break;
case "ddlAtividade":
dropDown.Items.Add(new ListItem("Selecione", ""));
Atividade bllAtividade = new Atividade();
resultados = new List<AtividadeInfo>();
resultados = bllAtividade.ListarAtividades(DataParser.ToInt(ddlOrgaoProdutor.SelectedValue), DataParser.ToInt(ddlFuncao.SelectedValue), DataParser.ToInt(ddlSubFuncao.SelectedValue), 1).OrderBy(n => n.Numero).ToList();
break;
}
foreach (var item in resultados)
dropDown.Items.Add(new ListItem(string.Format("{0} - {1}", item.Numero.ToString(), item.Descricao), item.Codigo.ToString()));
}
前端只填写了第一个下拉列表,但在代码后面,所有的工作都很完美,因为在应用程序的其他步骤中,该方法工作正常。会有渲染问题吗?
详细信息:当我围绕可见对象进行链接时,仅启用第一个
感谢您在下面的代码中添加了一个新的
列表项,其中Text=0000-Todos osÓrgãos
和值为“”
,用于ddlOrgaoProdutor(父下拉菜单)
对于所有其他下拉列表的数据,您将根据ddlOrgaoProdutor1的SelectedValue
筛选数据,该值定义为“”
。您可能需要发送为或设置ddlOrgaoProdutor
resultados = bllFuncao.ListarPorOrgaoProdutor(DataParser.ToInt(ddlOrgaoProdutor.SelectedText), 1).OrderBy(n => n.Numero).ToList();
另外,在初始页面加载期间(if(!IsPostBack)
将填充DropDownList,当ddlOrgaoProdutor的值更改时不会触发该操作。如果在ddlOrgaoProdutor
的值更改时需要重新绑定所有drown,则需要在SelectedIndexChanged=“ddlOrgaoProdutor\u SelectedIndexChanged”AutoPostBack=“true”
上设置,并从事件调用函数为所有其他下拉列表设置CarregarCombos
protected void ddlOrgaoProdutor_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlFuncao= (DropDownList)Page.FindControl("ddlFuncao");
CarregarCombos(ddlFuncao);
// find other dropdownlists and call the function CarregarCombos
}
谢谢但问题是属性Enable=false的面板。
resultados = bllFuncao.ListarPorOrgaoProdutor(DataParser.ToInt(ddlOrgaoProdutor.SelectedText), 1).OrderBy(n => n.Numero).ToList();
protected void ddlOrgaoProdutor_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlFuncao= (DropDownList)Page.FindControl("ddlFuncao");
CarregarCombos(ddlFuncao);
// find other dropdownlists and call the function CarregarCombos
}