Установите dropdownLists
AutoPostBack="true"
, населяют списки в page_load
, проверяя, если это не postBack
, а затем ваше событие 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 классы манипуляции и т.д. в соответствии с вашими потребностями. Я написал/протестировал этот код, он отлично работает.
Надеюсь, это поможет.
Вы пробовали выбранное измененное событие? – Webruster
Да, я новичок в кодировании. Я не получаю, как получить данные из ddlselectindex из двух выпадающих меню. Пожалуйста, помогите – Jones
напишите код, что вы пробовали, чтобы было легко, где он застрял, вот как работает SO – Webruster