문제

Checkbox State Change에서 페이지 링크를 변경하는 간단한 작업이 있습니다. 그러나 ASP.NET을 처음 사용하고 문제가 있습니다.

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 또 다른 질문 - 파일 이름을주지 않고 같은 페이지로 리디렉션 할 수있는 다른 방법이 있습니까? 나는 JavaScript와 같은 것을 의미합니다. 필요한 변수 만 제공합니까?

도움이 되었습니까?

해결책

ASP.NET Checkbox에서 클라이언트 측 'CheckBox_OnChanged'를 호출 할 수 있습니다. page_load에서 'onchange'를 추가하기 만하면됩니다.

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

소스를보고 HTML에서 무슨 일이 일어나고 있는지 볼 수 있습니다 ..

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top