我有一个简单的任务 - 改变复选框状态改变页面的链接 - 但我新的ASP.NET,并有一些麻烦

我可以使用HTMLLoader对象和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;
  }
}

但似乎对载荷检查状态变化再次引发事件和复选框成为必检项目!

答另一个问题 - 是否有任何其他的方式来重定向到同一页面,而不给它的文件名?我的意思是像在JavaScript中 - 只给变量需要

有帮助吗?

解决方案

您可以调用从ASP.NET复选框,您的客户端“checkbox_onChanged”,刚刚从Page_Load中,e.g添加“平变化”:

protected void Page_Load(object sender, EventArgs e)
{
   check.Attributes["onchange"] = "checkbox_onChanged(this.checked)";
}

查看源码,你会看到什么是发生在HTML ..

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top