我正在开发一个ASP.Net项目,并填写了一个名为类别的列表,一旦这个列表做出选择,我希望下一个列表标题为子类别,以填充可能的选择。
在页面加载期间填充第一个列表,我将列表绑定到数据表。
我编写了一个函数来绑定下一个列表并给它一个参数,但是我怎么也无法调用该函数。
<td valign="top">
<asp:Label AssociatedControlID="ddRequestCategory" enableviewstate="False" runat="server" id="lblCategories" meta:resourcekey="lblResCategories" CssClass="FormLabel" />
</td>
<td align="left" valign="top">
<ICCM:ICCMDropdownlist style="width:185px;" runat="server" ID="ddRequestCategory" CssClass="iccmdropdown" TabIndex="1" AutoPostBack="true" OnSelectedIndexChanged="ddCategorySelectChange"/>
</td>
public void ddCategorySelectChange(object sender, EventArgs e)
{
string categories;
categories = ddRequestCategory.SelectedItem.ToString();
GetSubCategories(categories );
}
选择Drop down时,代码永远不会进入ddCategorySelectChange ???
答案 0 :(得分:2)
您需要创建SelectedIndexChanged
事件处理程序,并在其中调用您的函数以将数据加载到子类别dropdownlist
:
protected void drpCategory_SelectedIndexChanged(object sender, EventArgs e)
{
LoadDrpSubCategory();
}
private void LoadDrpSubCategory()
{
List<SubCategory> list_SubCategory = new List<SubCategory>();
Guid Id_Category = Guid.Parse(drpCategory.SelectedValue);
list_SubCategory = //write code to get data;
drpSubCategory.DataValueField = "Id";
drpSubCategory.DataTextField = "TFName";
drpSubCategory.DataSource = list_SubCategory;
drpSubCategory.DataBind();
}
您的.aspx
代码如下:
<asp:DropDownList ID="drpCategory" runat="server" AutoPostBack="true" OnSelectedIndexChanged="drpCategory_SelectedIndexChanged" >
请注意,在.aspx代码中设置AutoPostBack="true"
答案 1 :(得分:0)
我希望您使用的是列表框。将以下事件添加到列表框中。从此事件中,您可以绑定第二个列表框。
<asp:ListBox ID="lst" runat="server"AutoPostBack="true" OnSelectedIndexChanged="lst_SelectedIndexChanged"></asp:ListBox>
protected void lst_SelectedIndexChanged(object sender, EventArgs e)
{
}