日期:2014-05-19  浏览次数:20766 次

C#.net 2005 WEB开发遇到的模板字段事件不响应的问题。有分捉虫。
我在gridview上添加一个模板字段,在该字段放了一个checkbox控件。ID为CheckBox2.该字段的header模板上放了一个checkbox控件。ID为CheckBox1。然后我为CheckBox1写了一个CheckedChanged事件。在该事件写了如下代码:
  System.Web.UI.WebControls.CheckBox   chkSelect;
                foreach   (System.Web.UI.WebControls.GridViewRow   TempRow   in   GridView1.Rows)
                {
                        chkSelect   =   ((System.Web.UI.WebControls.CheckBox)TempRow.FindControl( "CheckBox2 "));
                        if   (chkSelect.Visible)
                                chkSelect.Checked   =   ((System.Web.UI.WebControls.CheckBox)sender).Checked;
                }
程序运行后,却发现这个事件并没有执行。断点跟踪也跟踪不了。而CheckBox1.AutoPostBack已经设置为true了。
我在aspx文件中也有如下代码:
<asp:CheckBox   ID= "CheckBox1 "   runat= "server "   Text= "全选 "   Width= "56px "   AutoPostBack= "True "   OnCheckedChanged= "CheckBox1_CheckedChanged "   />
这表示checkedchanged事件已经注册了。
这到底是怎么回事情?请各位帮忙一起来捉虫。
这是我的qq:17877232     下班时间用
msn:kklzy007@hotmail.com   上班时间用
在线等待勇士们一起捉虫。

------解决方案--------------------
//复制粘贴N次的代码,请参考
<script type= "text/javascript ">
var checkFlag = true;
function ChooseAll()
{
if( checkFlag ) // 全选 
{
var inputs = document.all.tags( "INPUT ");
for (var i=0; i < inputs.length; i++) // 遍历页面上所有的 input
{
if (inputs[i].type == "checkbox " && inputs[i].value != "chkAll " ) {
inputs[i].checked = true;
}
}
checkFlag = false;
}
else// 取消全选
{
var inputs = document.all.tags( "INPUT ");
for (var i=0; i < inputs.length; i++) // 遍历页面上所有的 input
{
if (inputs[i].type == "checkbox " && inputs[i].value != "chkAll "
{
inputs[i].checked = false;
}
}
checkFlag = true;
}
}
</script>