设置您的dropdownLists AutoPostBack="true",通过检查它是否不是postBack 来填充page_load 中的列表,然后您的SelectedIndexChange 事件将触发。
.aspx 代码:
<asp:DropDownList AutoPostBack="true" ID="ddlGroupName" OnSelectedIndexChanged="ddlGroupName_SelectedIndexChanged" runat="server" />
<asp:DropDownList ID="ddlStatus" AutoPostBack="true" OnSelectedIndexChanged="ddlStatus_SelectedIndexChanged" runat="server" />
<asp:DataGrid runat="server" ID="gv1" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn HeaderText="Id" DataField="Id" />
<asp:BoundColumn HeaderText="Group Name" DataField="GroupName" />
</Columns>
</asp:DataGrid>
用于填充 DropDownLists 的类:
public class Groups
{
public int Id { get; set; }
public string GroupName { get; set; }
}
public class transMedHandler
{
public static List<Groups> GetGroupNames()
{
return new List<Groups>()
{
new Groups {Id = 1, GroupName = "cardia connections" },
new Groups { Id = 2, GroupName = "citizens group" },
new Groups { Id = 3, GroupName = "testgroup etc" }
};
}
public static List<Groups> GetNames()
{
return new List<Groups>()
{
new Groups { Id = 1, GroupName = "active" },
new Groups { Id = 2, GroupName = "assigned" },
new Groups { Id = 3, GroupName = "returned" },
new Groups{ Id = 4, GroupName = "deactivated" }
};
}
}
我使用了类,以便您也可以通过数据库中的某个表来填充这些列表。
最后是用于事件处理和操作的后端代码。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//populating ddlGroupName DropDown
ddlGroupName.DataSource = transMedHandler.GetGroupNames();
ddlGroupName.DataTextField = "GroupName";
ddlGroupName.DataValueField = "Id";
ddlGroupName.DataBind();
ddlGroupName.SelectedIndex = 0;
//populating ddlStatus DropDown
ddlStatus.DataSource = transMedHandler.GetNames();
ddlStatus.DataTextField = "GroupName";
ddlStatus.DataValueField = "Id";
ddlStatus.DataBind();
ddlStatus.SelectedIndex = 0;
}
}
protected void GetGroupNames()
{
gv1.DataSource = transMedHandler.GetGroupNames();
gv1.DataBind();
}
protected void GetNames()
{
gv1.DataSource = transMedHandler.GetNames();
gv1.DataBind();
}
protected void ddlGroupName_SelectedIndexChanged(object sender, EventArgs e)
{
GetGroupNames();
}
protected void ddlStatus_SelectedIndexChanged(object sender, EventArgs e)
{
GetNames();
}
您可以根据需要对gridView、DropDown 操作类等进行更改。我已经编写/测试了这段代码,它运行良好。
希望对你有帮助。