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>