当前位置:编程学习 > C#/ASP.NET >>

CheckBox问题

页面有三个控件:2个CheckBox,1个button
chk1通过js控制chk2的可用状态。
<asp:CheckBox style="Z-INDEX: 102; POSITION: absolute; TOP: 242px; LEFT: 274px" id="chk1" runat="server"          onclick="EnableGridCheckBox();"></asp:CheckBox>
<asp:CheckBox style="Z-INDEX: 103; POSITION: absolute; TOP: 247px; LEFT: 499px" id="chk2" runat="server"
       Enabled="False" Checked="True"></asp:CheckBox>
<asp:Button style="Z-INDEX: 106; POSITION: absolute; TOP: 230px; LEFT: 643px" id="Button1" runat="server"
       Text="Button"></asp:Button>


<script language="javascript">

function EnableGridCheckBox(){
if(document.getElementById("chk1").checked){
   document.getElementById("<%=chk2.ClientID %>").disabled=false;
   document.getElementById("<%=chk2.ClientID %>").parentElement.disabled=false;
}
else{
   document.getElementById("<%=chk2.ClientID %>").disabled=true;
   document.getElementById("<%=chk2.ClientID %>").parentElement.disabled=true;
}
}

</script>

页面首次打开后,chk2是不可用且打勾状态,
然后点击chk1,执行JS后,chk2是可用且打勾状态,
这时点击Button1提交页面后,chk2的状态又变成了页面首次打开的状态即:chk2不可用且打勾。
页面提交会导致chk2的状态丢失?
调试button1的CLICK事件看到chk2的状态是不可用的?
请问是为什么?怎么让页面的提交不影响到checkbox的状态?
--------------------编程问答-------------------- 是不是Button1提交页面,刷新了页面? --------------------编程问答-------------------- 提交就刷新页面了。你最好在服务器端设置是否可用 --------------------编程问答-------------------- 刷新了页面  相当于又重新初始化了一遍,那当然就回到最初状态了呀~~~希望对你有帮助 --------------------编程问答--------------------

<script language="javascript">

        window.onload = function EnableGridCheckBox() {
            if (document.getElementById("chk1").checked) {
                document.getElementById("<%=chk2.ClientID %>").disabled = false;
                document.getElementById("<%=chk2.ClientID %>").parentElement.disabled = false;
            }
            else {
                document.getElementById("<%=chk2.ClientID %>").disabled = true;
                document.getElementById("<%=chk2.ClientID %>").parentElement.disabled = true;
            }
        }

</script>
--------------------编程问答-------------------- button1提交就是为了判断chk2的状态,如果chk2是可用的话才更新,
但在button1的click事件中得到的chk2的状态不正确啊。。
孟大哥讲的服务器端设置是否可用是指通过chk1的提交来控制chk2的可用状态? --------------------编程问答-------------------- 要在服务器端控制也可以

<asp:CheckBox style="Z-INDEX: 102; POSITION: absolute; TOP: 242px; LEFT: 274px" 
            id="chk1" runat="server" AutoPostBack="true"
            oncheckedchanged="chk1_CheckedChanged"></asp:CheckBox>




protected void chk1_CheckedChanged(object sender, EventArgs e)
        {
            if (chk1.Checked)
            {
                chk2.Enabled = true;
            }
            else
            {
                chk2.Enabled = false;
            }
        }
--------------------编程问答--------------------
引用 4 楼  的回复:
HTML code

<script language="javascript">

        window.onload = function EnableGridCheckBox() {
            if (document.getElementById("chk1").checked) {
                document.getElementB……


这样你会发现button的CLICK事件单调时,chk2的状态和CHECKED的值并不是现在页面上的,而始终是保持首次打开页面的状态 --------------------编程问答-------------------- 刷新了页面,当然就回到最初状态~~~~~~~ --------------------编程问答-------------------- 刷新了页面,当然就回到最初状态~~~~~~~ --------------------编程问答-------------------- 那为什么像TextBox里面的值就可以保留?而CheckBox的就不行? --------------------编程问答--------------------
引用 8 楼  的回复:
刷新了页面,当然就回到最初状态~~~~~~~

那TextBox的值提交后就可以保留,怎么checkbox的就保留不了呢?
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,