У меня есть страница ASP.NET с флажком и парой текстовых полей.
Когда пользователь снимает флажок, мне нужно выполнить серию проверок и сообщить пользователю результат. Я делаю эти проверки на постбэке через свойство autopostback флажка:
<asp:CheckBox ID="chkDecision" runat="server" AutoPostBack="true" />
Еще одно бизнес-правило, которое я реализую, заключается в том, что когда флажок снят и пользователь начинает вводить текст в одном из текстовых полей, я должен автоматически установить флажок. Я делаю это через Javascript:
<asp:TextBox ID="txtLeft" runat="server" CssClass="textboxstandard" MaxLength="50" onkeyDown="SelectDecision(event);">
function SelectDecision(e) {
if (!checkSpecialKeys(e)) {
var chkDec = $get('<%=chkDecision.ClientID %>');
if (!chkDec.checked) {
chkDec.checked = true;
}
}
}
Все вышеперечисленное работает нормально.
У меня проблема в том, что когда пользователь начинает вводить текст в поле, флажок ставится. Если они затем вручную снимут флажок, обратная передача не сработает.
Предположительно это связано с тем, что флажок находится в том же состоянии, что и при загрузке страницы, поэтому некоторая внутренняя логика считает обратную передачу ненужной.
Как я могу выполнить проверки на стороне сервера, упомянутые в приведенном выше сценарии?
Завершение Благодаря приведенной ниже помощи я смог самостоятельно продвинуться дальше во время тестирования предоставленных ответов. Я обнаружил, что могу установить атрибут AutoPostBack
в текстовых полях:
<asp:TextBox ID="txtLeft" runat="server" CssClass="textboxstandard" MaxLength="50" onkeyDown="SelectDecision(event);" AutoPostBack="true"></asp:TextBox>
В моем сценарии, достигнув того же, что и ниже, я обнаружил, что это более удобно, поскольку обратная передача происходит после завершения редактирования. Спасибо за вашу помощь!