У меня есть простая задача - изменить ссылку на ссылку на изменение состояния флажка, но я новичок в ASP.NET и имею некоторые проблемы.Состояние брандмауэра ASP.NET и PostBack
я могу сделать то же самое, используя HTMLControl и JavaScript:
<script type="text/javascript" language="javascript">
function checkbox_onChanged(checked) {
if (checked) {
document.location = '?type=request_in&show=all';
}
else {
document.location = '?type=request_in&show=unapproved';
}
}
function checkbox_onLoad(checkbox) {
checkbox.checked = true;
}
</script>
<form action="" method="get">
<input type="checkbox" name="checkbox"
onload="checkbox_onLoad(this)"
onchange="checkbox_onChanged(this.checked)" />Show all
</form>
, но я хочу, чтобы скрыть его от пользователей. Так что я делаю:
<asp:CheckBox runat="server" ID="check"
OnCheckedChanged="check_CheckedChanged"
AutoPostBack="True" Text="Show all" />
protected void check_CheckedChanged(object sender, EventArgs e)
{
Response.Redirect(String.Format("{0}?type=request_in&show={1}", Request.Path,
checkViewRequestIn.Checked ? "all" : "unapproved"));
}
protected void Page_Load(object sender, EventArgs e)
{
var show = Request["show"];
if (!String.IsNullOrEmpty(show) && String.Equals(show, "all"))
{
checkViewRequestIn.Checked = true;
}
}
Но, похоже, что регистрация изменения состояния на нагрузке снова вызывает событие и галочка всегда проверять!
Ans another question - есть ли другой способ перенаправления на ту же страницу без указания имени файла? Я имею в виду, например, в JavaScript - только для получения необходимых переменных?
Спасибо за ответ! Но я не хочу делать это на стороне клиента. Не могли бы вы рассказать мне, как выполнять задачу только на стороне сервера? Моя парадигма программного обеспечения требует минимального количества действий на стороне клиента. – abatishchev
Почему вы отправляете информацию вокруг в строке запроса? вы можете просто открыть свойство check.Checked. обратите внимание, что ASP.NET viewstate будет поддерживать состояние вашего флажка между postbacks без необходимости тестирования Request ["show"]. – russau
Спасибо вам большое! – abatishchev