У меня есть флажок, который настроен как показано ниже:
<asp:CheckBox ID="myCheckbox" runat="Server" OnClick="showLoadingScreen(this.checked);" AutoPostBack="true" Text="Check me for more data!" />
Функция showLoadingScreen имеет следующий вид:
function showLoadingScreen(isChecked) {
if (isChecked)
{
document.getElementById('form1').style.display='none';
document.getElementById('img_loading').style.display='block';
}
else { return false; }
}
Я добавил предложение else в надежде, что смогу заставить его отправлять сообщения только тогда, когда флажок установлен, но в любом случае он отправляет сообщения обратно.
У меня есть сетка на странице (внутри form1), в которую загружен набор данных при загрузке страницы, но для того, чтобы добавить к ней некоторые дополнительные данные, я добавил этот флажок (он дольше работает процесс, поэтому я хочу загрузить его только по требованию, а не авансом). Когда это проверено, я хочу показать gif загрузки, обратную передачу, получить данные и вернуться. Если флажок снят, я не хочу ничего делать, поскольку оставлять на странице более чем достаточно данных вполне нормально (то есть данные, отображаемые заранее, являются подмножеством данных, отображаемых при установке флажка).
Есть ли способ сделать так, чтобы флажок автоответчик возвращался при включенном, а не при выключенном?
Редактировать: Используя предложение Dark Falcon, я изменил флажок, чтобы он выглядел так:
<asp:CheckBox ID="myCheckbox" runat="Server" OnClick="return showLoadingScreen(this.checked);" AutoPostBack="true" Text="Include HQ Values" />
И JavaScript должен быть:
function showLoadingScreen(checked) {
alert(checked);
if (checked)
{
document.getElementById('form1').style.display='none';
document.getElementById('img_loading').style.display='block';
document.form1.submit(); //my own addition, to get it to post back
}
else { return false; }
}
Теперь, он отправляет обратно проверено, но флажок больше не может быть снят. Как вы можете видеть, я добавил предупреждение, чтобы показать передаваемое значение. Оно передает правильное значение, когда вы снимаете флажок (false), но затем оно как-то проверяется снова.
Это не очень большая проблема, так как на самом деле нет причин снимать флажок (поскольку, как я уже говорил, набор данных при проверке является расширенным набором данных без контроля), но я все же хотел бы знать, почему тот. Есть идеи?