IsPostBack всегда false, событие не запускается при отправке формы или AutoPostBack=»true»

#asp.net #.net-4.5 #asp.net-4.5 #aspxcombobox

#asp.net #.net-4.5 #asp.net-4.5 #aspxcombobox

Вопрос:

У меня есть страница aspx с выпадающим списком asp: (здесь DropDownList_AuthenticationMode). Элемент также имеет OnSelectedIndexChanged, а для атрибута AutoPostBack установлено значение true .

Когда это значение dropdownlist изменяется, запускается запрос и запускается функция Page_Load, но не функция «DropDownList_AuthenticationMode_SelectedIndexChanged».

IsPostBack также всегда false в функции Page_Load .

Я много чего перепробовал, но эта функция не сработала. Кнопка завершения с атрибутом OnClick запускает то же самое, не вызывая метод GetQrCode .

Есть ли что-то, что я мог забыть?

 <form id="Form1" runat="server">
        <div class="rowflex" id="scrollableContent">
            <div class=stepContent>
                <div>
                    <span><asp:Literal ID="Literal_GetQrcode" runat="server"/></span>
                    <br/>
                    <br/>
                    <span><asp:Literal ID="Literal_FolderId" runat="server"/></span>
                    <br/>
                    <a href="../api/oauth/logout">Logout</a>
                    <br/>
                    <br/>
                    <span><asp:Literal ID="Literal_URL" runat="server"/></span>
                    <br/>
                    <asp:TextBox ID="TextBox_URL" runat="server" style="width: 400px; max-width: 600px"/>
                    <br/>
                    <br/>
                    <span><asp:Literal ID="Literal_AuthenticationMode" runat="server"/></span>
                    <br/>
                    <asp:DropDownList   ID="DropDownList_AuthenticationMode"  runat="server" AutoPostBack="true" onselectedindexchanged="DropDownList_AuthenticationMode_SelectedIndexChanged" style="width: 400px; max-width: 600px"></asp:DropDownList>
                    <br/>
                    <br/>
                    <span><asp:Literal ID="Literal_Domain" runat="server" Visible="false"/></span>
                    <br/>
                    <asp:TextBox ID="TextBox_Domain" runat="server" Visible="false" style="width: 400px; max-width: 600px"/><br/>
                    <br/>
                    <br/>
                    <asp:Button ID="Button_GetQrCode"  runat="server" OnClick="GetQrCode" />
                    <br/>
                    <br/>
                    <asp:label ID="Label_GetQrCodeResult" runat="server"></asp:label>
                </div>
            </div>
        </div>
    </form>
 

и cs выглядит так :

 protected void DropDownList_AuthenticationMode_SelectedIndexChanged(object sender, EventArgs e)
{
     Literal_Domain.Visible = TextBox_Domain.Visible = (DropDownList_AuthenticationMode.SelectedItem.Text == AUTHENTICATIONMODE_NTLM);
}
 

У меня заканчиваются идеи по этому вопросу.

Спасибо!

Ответ №1:

Хм, как уже отмечалось, обратная отправка будет истинной в этих случаях. (но опять же, загрузка страницы всегда запускается снова — так что вам может быть все равно).

Что вас волнует, так это то, что заглушка управляющего события не работает. Я бы вставил debug.print (или консоль.строка записи — которую вы когда-либо использовали).

Если это не удается, затем вырежьте код из этой заглушки, удалите его, а затем в конструкторе веб-форм отобразите таблицу свойств и дважды щелкните по этому свойству, измененному индексом (или что бы это ни было), и вы перейдете к коду, который должен повторно подключить событиезаглушка.

например: введите описание изображения здесь

Итак, дважды щелкните в приведенном выше выпадающем списке. Он должен создать событие для вас, и затем вы перейдете в редактор кода. И затем вставьте код, который у вас был раньше.

И используйте эту строку записи консоли перед любым другим логическим кодом в этой заглушке события — вы просто хотите убедиться, что событие срабатывает, прежде чем начинать отладку кода, который, возможно, не был запущен или не запускается вообще.

Ответ №2:

Ответа не было в коде!

web.config «DefaultDocument» был проигнорирован IIS только для операций обратной отправки… это не было нацелено на aspx-файл.