我有这个asp DropDownList
<td>
<asp:DropDownList ID="ddlCategorySearch" runat="server" OnSelectedIndexChanged="ddlCategorySearch_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList><br />
<asp:DropDownList ID="ddlSubCategorySearch" runat="server" OnSelectedIndexChanged="ddlSubCategorySearch_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
我想用两个方法ddlCategorySearch_SelectedIndexChanged
和ddlSubCategorySearch_SelectedIndexChanged
来触发OnSelectedIndexChanged
因此,如果用户触发了OnSelectedIndexChange
,则会触发两个值方法。
但是我不能解决这个问题,我该怎么做呢?
发布于 2016-11-08 15:23:54
你的问题有点不清楚,但如果我理解正确的话,当用户更改类别值时,你想触发两个事件吗?
通过使用以下语法从主类别方法中显式调用sub方法,您将能够做到这一点
ddlSubCategorySearch_SelectedIndexChanged(sender,e)
如果我误解了您的问题,请对其进行修改,使其更清晰一些
编辑:根据您上面的注释,您不需要调用子ddl的selectedindex更改来更改它的值。
您可以从类别下拉列表selectedindexchanged方法中将数据源更改为过滤后的数据源。
我希望这是有意义的
发布于 2016-11-08 15:36:12
在ddlCategorySearch_SelectedIndexChanged
事件上填充ddlSubCategorySearch
的DataSource
,为此,您首先需要在页面加载时填充ddlCategorySearch
的DataSource
,如下所示。
protected void protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindCategorySearch();
}
}
protected void BindCategorySearch()
{
// Fill your ddlCategorySearch here. Write down your database logic to
//get a datasource for ddlCategorySearch
}
protected void ddlCategorySearch_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
BindSubCategory();
}
catch (Exception ex)
{
}
}
protected void BindSubCategory()
{
try
{
int categoryID = Convert.ToInt32(ddlCategorySearch.SelectedValue);
//Write down here your database logic to get datasource for
// ddlSubCategorySearch. For Example select * from SubCategory where
//CategoryID = categoryID
List<SubCategory> listSubcategories = new List<SubCategory>();
//Fill your listCategory on base of categoryID
ListItem li = new ListItem();
li.Text = "--Select Sub Category--";
li.Value = "0";
li.Selected = true;
ddlSubCategories.Items.Insert(0, li);
}
catch (Exception ex)
{
}
}
发布于 2016-11-08 15:39:05
如果您想根据一个下拉列表填充另一个下拉列表,您可以使用如下命令:
public void ddlCategorySearch_SelectedIndexChanged(object sender, Eventargs e){
var param = ddlCategorySearch.SelectedValue;
foreach (var item in myList)//assuming you put the elements you want inside DDL in a list
if(item.ID == param)
ddlSubCategorySearch.Items.Add(new ListItem { Text="",Value=""}); //assign DDL elements here such as item.property
}
}
https://stackoverflow.com/questions/40481090
复制相似问题