#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-файл.