У меня очень странная проблема с моим DropDownList.
Я постараюсь подвести итог моей проблемы:
У меня есть DDL на моей странице, где хранятся станции больницы, элемент управления заполняется из базы данных через Databinding, это работает нормально.
Когда я нажимаю на одну из станций, событие OnSelectedIndexChanged должно перенаправить меня в список пациентов выбранной станции.
C # -код:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["stations"] != null)
{
var patienList = (List<string>)Session["stations"];
if (patienList.Count > 0)
if (!IsPostBack && PatientOverview.StationHeading == null) //Es wird zum ersten Mal aufgerufen
{
StationDDList.DataSource = patienList;
SelectedStation = patienList.First();
logo.ImageUrl = ConfigurationManager.AppSettings["Logo"];
StationDDList.DataBind();
}
else if (!IsPostBack && PatientOverview.StationHeading != null)
{
StationDDList.DataSource = patienList;
SelectedStation = PatientOverview.StationHeading;
StationDDList.SelectedValue = SelectedStation;
logo.ImageUrl = ConfigurationManager.AppSettings["Logo"];
StationDDList.DataBind();
}
protected void StationDDList_SelectedIndexChanged(object sender, EventArgs e)
{
SelectedStation = StationDDList.SelectedValue;
Response.Redirect("/epadoc_Framework/PatientOverview.aspx?station=" + SelectedStation);
PatientOverview.loadPatientList(StationDDList.SelectedValue);
StationDDList.DataBind();
}
Разметка ASP.NET:
<ul id="menu">
<li>
<p>Station wählen:</p>
<asp:DropDownList ID="StationDDList" OnSelectedIndexChanged="StationDDList_SelectedIndexChanged" ViewStateMode="Enabled" CssClass="btn btn-light dropdown-toggle" EnableViewState="true" runat="server" AutoPostBack="True" Width="145px">
</asp:DropDownList>
<hr />
</li>
<li>
<button type="button" class="btn btn-light" style="height: 30px; width: 138px" title="Postfach" onclick="self.location.href = '/epadoc_Framework/Messenger/Messenger.aspx'">
<span class="fa fa-envelope"> Nachrichten
<span class="badge badge-light"><% Response.Write(db.CountNewMessages((string)Session["username"])); %></span>
</span>
</button>
<hr />
</li>
Итак, как вы можете видеть, элемент управления находится внутри меню, которое я создал с помощью jQuery-плагина под названием «slicknav», который работает как задумано - кроме DDL.
Вот соответствующий jQuery-код:
$(function () {
$('#menu').slicknav({
label: "Menü",
duration: 250,
brand: "EPADOC - Die elektronische Patientenakte",
});
});
Странная проблема: как только я установил выпадающий список ВНЕШНЕЕ из меню, перенаправление работает. Если я установлю его в меню, OnSelectedIndexChanged даже не сработает (я обнаружил это во время отладки) - он просто снова загружает ту же страницу, даже не выдает мне ошибки.
Я попробовал все, установив для AutoPostBack значение true, EnableViewState и т. Д.