checkbox不执行CheckedChanged事件
我设置了AutoPostBack="True",刚开始的时候是可以执行CheckedChanged事件的。后来添加了客户端的onclick事件,是在page_load中这...
我设置了AutoPostBack="True",刚开始的时候是可以执行CheckedChanged事件的。
后来添加了客户端的onclick事件,是在page_load中这样添加的 chbAllSKU.Attributes.Add("onclick", "return chbAllSKUClick(this)");
然后就不执行后台的CheckedChanged事件了,但是客户端的chbAllSKUClick(this)事件正常
chbAllSKU.Attributes.Add("onclick", "return chbAllSKUClick(this)");
如果去掉return的话,就会执行后台事件。但是chbAllSKUClick(this)事件的作用是弹出一个确认框,要求点了确定就执行CheckedChanged,否则不执行 展开
后来添加了客户端的onclick事件,是在page_load中这样添加的 chbAllSKU.Attributes.Add("onclick", "return chbAllSKUClick(this)");
然后就不执行后台的CheckedChanged事件了,但是客户端的chbAllSKUClick(this)事件正常
chbAllSKU.Attributes.Add("onclick", "return chbAllSKUClick(this)");
如果去掉return的话,就会执行后台事件。但是chbAllSKUClick(this)事件的作用是弹出一个确认框,要求点了确定就执行CheckedChanged,否则不执行 展开
4个回答
展开全部
可能是复选框的程序代码有问题。
选定复选框控件时,这个控件就显示选定标记,可用分组的复选框控件显示几个选项,和Windows中的复选框一样,可以从中选择一个或几个选项。正常情况下,一选定复选框,就会执行CheckedChanged事件。
复选框控件的Value属性表明复选框当前处于哪种状态——选定、未选定还是处于不可用状态。
单击复选框控件,可以使它处于选定或未选定状态,然后可以检测控件的Value属性,并根据这个信息编写代码以执行某些操作。若要预先在一列复选框中选定几个复选框,可以在属性窗口中设定它的Value属性的值为Checked。
有时可能希望在满足条件之后禁用复框,可以把Value属性设置为Grayed以禁用复选框。
但是实际上,把Value设置为Grayed并不能真正地禁用复选框。要想真正禁用复选框,应该使用Enabled属性。
选定复选框控件时,这个控件就显示选定标记,可用分组的复选框控件显示几个选项,和Windows中的复选框一样,可以从中选择一个或几个选项。正常情况下,一选定复选框,就会执行CheckedChanged事件。
复选框控件的Value属性表明复选框当前处于哪种状态——选定、未选定还是处于不可用状态。
单击复选框控件,可以使它处于选定或未选定状态,然后可以检测控件的Value属性,并根据这个信息编写代码以执行某些操作。若要预先在一列复选框中选定几个复选框,可以在属性窗口中设定它的Value属性的值为Checked。
有时可能希望在满足条件之后禁用复框,可以把Value属性设置为Grayed以禁用复选框。
但是实际上,把Value设置为Grayed并不能真正地禁用复选框。要想真正禁用复选框,应该使用Enabled属性。
展开全部
教你个办法
在页面上添加一个隐藏框,HiddenField1
page_load中这样添加的 chbAllSKU.Attributes.Add("onclick", "chbAllSKUClick()");
chbAllSKUClick方法这样写
function chbAllSKUClick()
{
if(document.getElementById("chkVenStatus").checked)
{
if(confirm("您确定吗")){document.getElementById("HiddenField1").value="1"; }else{document.getElementById("HiddenField1").value="0";}
}
}
然后在CheckedChanged方法中判断隐藏框的值
protected void chbAllSKU_CheckedChanged(object sender, EventArgs e)
{
//获取赋值后的隐藏框,如果等于1,那么就是对话框被选择“是”
if (HiddenField1.Value == "1")
{
//这里写处理代码......
}
}
这样就能实现你所说的那个效果
在页面上添加一个隐藏框,HiddenField1
page_load中这样添加的 chbAllSKU.Attributes.Add("onclick", "chbAllSKUClick()");
chbAllSKUClick方法这样写
function chbAllSKUClick()
{
if(document.getElementById("chkVenStatus").checked)
{
if(confirm("您确定吗")){document.getElementById("HiddenField1").value="1"; }else{document.getElementById("HiddenField1").value="0";}
}
}
然后在CheckedChanged方法中判断隐藏框的值
protected void chbAllSKU_CheckedChanged(object sender, EventArgs e)
{
//获取赋值后的隐藏框,如果等于1,那么就是对话框被选择“是”
if (HiddenField1.Value == "1")
{
//这里写处理代码......
}
}
这样就能实现你所说的那个效果
追问
你说的这个方法看上去好像可行,就是麻烦了点
追答
放心,我经常用这种方法的。还有种方法,就是另外做个页面或者DIV。如果是这样才比较麻烦,所以我教你的这个比较简单点。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个应该是CheckedChanged事件包括了onclick事件!有一个优先级的可能!当执行了CheckedChanged事件时,onclick就不会再执行了!
追问
不是的,是onclick(事件内容为return chbAllSKUClick(this))执行了,而CheckedChanged没有执行。但是把onclick时间内容去掉return(即onclick=“chbAllSKUClick(this)”),CheckedChanged就会执行
追答
这样的话,那你只能舍弃一个事件了,但是这是我个人的看法,不能完全代表我们团队的看法!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是把 chbAllSKU.Attributes.Add("onclick", "return chbAllSKUClick(this)"); 放在 if (!IsPostBack)
{里面吗}
{里面吗}
追问
是的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询