Раскрывающийся список ASP SelectedIndexChanged не срабатывает - PullRequest
0 голосов
/ 06 июня 2019

У меня очень странная проблема с моим 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 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...