界面上有三個Checkbox,ck1如果選中的話,ck2,ck3的enabled就為false,如果ck1取消選中,ck2,ck3的enabled就為true。
這裡的控制是用javascript寫的。
腳本如下:
<script language="javascript" type="text/javascript">
function CheckBox1_Click()
{
if (document.getElementById("CheckBox1").checked==true)
{
document.getElementById("CheckBox2").disabled=true;
document.getElementById("CheckBox3").disabled=true;
document.getElementById("CheckBox2").checked=false;
document.getElementById("CheckBox3").checked=false;
}
else
{
document.getElementById("CheckBox2").disabled=false;
document.getElementById("CheckBox3").disabled=false;
}
}
</script>
現在的問題是:
在Query之前,頁面的控制沒有問題。
如果在Query之前沒有選中ck1,Query後,頁面的控制也沒有問題。
但是,如果在query之前,將ck1選中的話,Query之後,取消ck1的選中,ck2,ck3的enabled無法還原為true了。
調試腳本的時候發現,“query之後,取消ck1的選中”,腳本可以執行到
document.getElementById("CheckBox2").disabled=false;這句
但是無法改變CheckBox2的enabled狀態。
另外,只有這裡有控制到ck2,ck3的狀態的代碼,其余就沒有了。
private void Page_Load(object sender, System.EventArgs e)
{
// 在這裡放置使用者程式碼以初始化網頁
if(!IsPostBack)
{
}
else
{
this.CheckBox2.Enabled=!this.CheckBox1.Checked ;
this.CheckBox3.Enabled=!this.CheckBox1.Checked ;
}
各位大俠,幫忙看下是什麼問題?????
急,多謝了!!!!!
16 个解决方案
#1
UP
#2
顶你的
#3
UP
#4
UP
#5
UP
#6
UP
#7
帮顶接分。。。
=====================================
《《《《《苦海无边 回头无岸》》》》》
=====================================
=====================================
《《《《《苦海无边 回头无岸》》》》》
=====================================
#8
这样的代码何必用js呢?
#9
this.CheckBox2.Enabled=!this.CheckBox1.Checked;
如果选中CheckBox1会导致生成类似:
<span disabled="disable"><input type="checkbox" id="CheckBox2".....
这样的代码。可以改成如下代码:
function CheckBox1_Click()
{
if (document.getElementById("CheckBox1").checked)
{
document.getElementById("span1").disabled=true;
document.getElementById("CheckBox2").checked=false;
document.getElementById("CheckBox3").checked=false;
}
else
{
document.getElementById("span1").disabled=false;
}
}
</script>
....
<asp:CheckBox id="CheckBox1" runat="server" Text="CheckBox1" OnClick="CheckBox1_Click();"></asp:CheckBox>
<span id="span1" runat="server">
<asp:CheckBox id="CheckBox2" runat="server" Text="CheckBox2"></asp:CheckBox>
<asp:CheckBox id="CheckBox3" runat="server" Text="CheckBox3"></asp:CheckBox>
</span>
.....
cs文件:
...
this.span1.Disabled=this.CheckBox1.Checked;
...
如果选中CheckBox1会导致生成类似:
<span disabled="disable"><input type="checkbox" id="CheckBox2".....
这样的代码。可以改成如下代码:
function CheckBox1_Click()
{
if (document.getElementById("CheckBox1").checked)
{
document.getElementById("span1").disabled=true;
document.getElementById("CheckBox2").checked=false;
document.getElementById("CheckBox3").checked=false;
}
else
{
document.getElementById("span1").disabled=false;
}
}
</script>
....
<asp:CheckBox id="CheckBox1" runat="server" Text="CheckBox1" OnClick="CheckBox1_Click();"></asp:CheckBox>
<span id="span1" runat="server">
<asp:CheckBox id="CheckBox2" runat="server" Text="CheckBox2"></asp:CheckBox>
<asp:CheckBox id="CheckBox3" runat="server" Text="CheckBox3"></asp:CheckBox>
</span>
.....
cs文件:
...
this.span1.Disabled=this.CheckBox1.Checked;
...
#10
这样的代码何必用js呢?
-----------------------------------
當然用JS,我知道C#的的代碼也可以控制,但是這樣會刷新頁面。
-----------------------------------
當然用JS,我知道C#的的代碼也可以控制,但是這樣會刷新頁面。
#11
webwait(webwei) ( ),多謝了,放到span中的確可以。
但是,上面只是摹擬我的問題,我的控件都是放在table中的,span不能包含tr,所以我要加上20幾個span。
再看看大家有沒有好辦法。
但是,上面只是摹擬我的問題,我的控件都是放在table中的,span不能包含tr,所以我要加上20幾個span。
再看看大家有沒有好辦法。
#12
UP
#13
UP
#14
if(!IsPostBack)
{
}
else
{
this.CheckBox2.Enabled=!this.CheckBox1.Checked ;
this.CheckBox3.Enabled=!this.CheckBox1.Checked ;
}
这里有问题。把
this.CheckBox2.Enabled=!this.CheckBox1.Checked ;
this.CheckBox3.Enabled=!this.CheckBox1.Checked ;
删除。
然后在PostBack以后去重新检查CheckBox1的Checked状态。
把这段代码放到aspx的最下面。
<script language="javascript" type="text/javascript">
//alert(window.CheckBox1_Click);
CheckBox1_Click();
</script>
{
}
else
{
this.CheckBox2.Enabled=!this.CheckBox1.Checked ;
this.CheckBox3.Enabled=!this.CheckBox1.Checked ;
}
这里有问题。把
this.CheckBox2.Enabled=!this.CheckBox1.Checked ;
this.CheckBox3.Enabled=!this.CheckBox1.Checked ;
删除。
然后在PostBack以后去重新检查CheckBox1的Checked状态。
把这段代码放到aspx的最下面。
<script language="javascript" type="text/javascript">
//alert(window.CheckBox1_Click);
CheckBox1_Click();
</script>
#15
up....
#16
按照skytear() 的方法,搞定,結貼。
#1
UP
#2
顶你的
#3
UP
#4
UP
#5
UP
#6
UP
#7
帮顶接分。。。
=====================================
《《《《《苦海无边 回头无岸》》》》》
=====================================
=====================================
《《《《《苦海无边 回头无岸》》》》》
=====================================
#8
这样的代码何必用js呢?
#9
this.CheckBox2.Enabled=!this.CheckBox1.Checked;
如果选中CheckBox1会导致生成类似:
<span disabled="disable"><input type="checkbox" id="CheckBox2".....
这样的代码。可以改成如下代码:
function CheckBox1_Click()
{
if (document.getElementById("CheckBox1").checked)
{
document.getElementById("span1").disabled=true;
document.getElementById("CheckBox2").checked=false;
document.getElementById("CheckBox3").checked=false;
}
else
{
document.getElementById("span1").disabled=false;
}
}
</script>
....
<asp:CheckBox id="CheckBox1" runat="server" Text="CheckBox1" OnClick="CheckBox1_Click();"></asp:CheckBox>
<span id="span1" runat="server">
<asp:CheckBox id="CheckBox2" runat="server" Text="CheckBox2"></asp:CheckBox>
<asp:CheckBox id="CheckBox3" runat="server" Text="CheckBox3"></asp:CheckBox>
</span>
.....
cs文件:
...
this.span1.Disabled=this.CheckBox1.Checked;
...
如果选中CheckBox1会导致生成类似:
<span disabled="disable"><input type="checkbox" id="CheckBox2".....
这样的代码。可以改成如下代码:
function CheckBox1_Click()
{
if (document.getElementById("CheckBox1").checked)
{
document.getElementById("span1").disabled=true;
document.getElementById("CheckBox2").checked=false;
document.getElementById("CheckBox3").checked=false;
}
else
{
document.getElementById("span1").disabled=false;
}
}
</script>
....
<asp:CheckBox id="CheckBox1" runat="server" Text="CheckBox1" OnClick="CheckBox1_Click();"></asp:CheckBox>
<span id="span1" runat="server">
<asp:CheckBox id="CheckBox2" runat="server" Text="CheckBox2"></asp:CheckBox>
<asp:CheckBox id="CheckBox3" runat="server" Text="CheckBox3"></asp:CheckBox>
</span>
.....
cs文件:
...
this.span1.Disabled=this.CheckBox1.Checked;
...
#10
这样的代码何必用js呢?
-----------------------------------
當然用JS,我知道C#的的代碼也可以控制,但是這樣會刷新頁面。
-----------------------------------
當然用JS,我知道C#的的代碼也可以控制,但是這樣會刷新頁面。
#11
webwait(webwei) ( ),多謝了,放到span中的確可以。
但是,上面只是摹擬我的問題,我的控件都是放在table中的,span不能包含tr,所以我要加上20幾個span。
再看看大家有沒有好辦法。
但是,上面只是摹擬我的問題,我的控件都是放在table中的,span不能包含tr,所以我要加上20幾個span。
再看看大家有沒有好辦法。
#12
UP
#13
UP
#14
if(!IsPostBack)
{
}
else
{
this.CheckBox2.Enabled=!this.CheckBox1.Checked ;
this.CheckBox3.Enabled=!this.CheckBox1.Checked ;
}
这里有问题。把
this.CheckBox2.Enabled=!this.CheckBox1.Checked ;
this.CheckBox3.Enabled=!this.CheckBox1.Checked ;
删除。
然后在PostBack以后去重新检查CheckBox1的Checked状态。
把这段代码放到aspx的最下面。
<script language="javascript" type="text/javascript">
//alert(window.CheckBox1_Click);
CheckBox1_Click();
</script>
{
}
else
{
this.CheckBox2.Enabled=!this.CheckBox1.Checked ;
this.CheckBox3.Enabled=!this.CheckBox1.Checked ;
}
这里有问题。把
this.CheckBox2.Enabled=!this.CheckBox1.Checked ;
this.CheckBox3.Enabled=!this.CheckBox1.Checked ;
删除。
然后在PostBack以后去重新检查CheckBox1的Checked状态。
把这段代码放到aspx的最下面。
<script language="javascript" type="text/javascript">
//alert(window.CheckBox1_Click);
CheckBox1_Click();
</script>
#15
up....
#16
按照skytear() 的方法,搞定,結貼。