在GridView中怎么也找不到控件!!
在前台部分代码是这样写的:
<asp:GridView ID="gvMachineInfo" runat="server" BackColor="LightGoldenrodYellow"
BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" ...... <Columns>
<asp:TemplateField HeaderText="选">
<HeaderTemplate>
<asp:CheckBox ID="chkSelectedAll" runat="server" ToolTip="选择所有记录" OnCheckedChanged="CheckedChangedHandler" />
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" Width="25px" />
<ItemTemplate>
<asp:CheckBox ID="chkSelected" runat="server" ToolTip="选择当前记录" />
</ItemTemplate>
</asp:TemplateField>
......
</GridView>
然后在后台的代码是:
public void CheckedChangedHandler(object sender, EventArgs e)//为什么没有调用???
{
CheckBox chkSelectedAll = (CheckBox)gvMachineInfo.FindControl("chkSelectedAll");
for (int i = 1; i < gvMachineInfo.Rows.Count; i++)
{
CheckBox chk=(CheckBox)gvMachineInfo.Rows[i].FindControl("chkSelected");
if (chkSelectedAll.Checked == true)
{
chk.Checked = true;
}
else
{
chk.Checked = false;
}
}
}
我是想通过ID为chkSelectedAl的CheckBox控件来实现全选的功能,然而它的OnCheckedChanged的委托事件并末发生,似乎在生成的页面源码中并没有这个控件。到底是为什么呢?我该怎样做才能找到这个控件呢?我弄得头焦额烂了还不行,还请各位大鸟多多指教~~~~~
在前台部分代码是这样写的:
<asp:GridView ID="gvMachineInfo" runat="server" BackColor="LightGoldenrodYellow"
BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" ...... <Columns>
<asp:TemplateField HeaderText="选">
<HeaderTemplate>
<asp:CheckBox ID="chkSelectedAll" runat="server" ToolTip="选择所有记录" OnCheckedChanged="CheckedChangedHandler" />
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" Width="25px" />
<ItemTemplate>
<asp:CheckBox ID="chkSelected" runat="server" ToolTip="选择当前记录" />
</ItemTemplate>
</asp:TemplateField>
......
</GridView>
然后在后台的代码是:
public void CheckedChangedHandler(object sender, EventArgs e)//为什么没有调用???
{
CheckBox chkSelectedAll = (CheckBox)gvMachineInfo.FindControl("chkSelectedAll");
for (int i = 1; i < gvMachineInfo.Rows.Count; i++)
{
CheckBox chk=(CheckBox)gvMachineInfo.Rows[i].FindControl("chkSelected");
if (chkSelectedAll.Checked == true)
{
chk.Checked = true;
}
else
{
chk.Checked = false;
}
}
}
我是想通过ID为chkSelectedAl的CheckBox控件来实现全选的功能,然而它的OnCheckedChanged的委托事件并末发生,似乎在生成的页面源码中并没有这个控件。到底是为什么呢?我该怎样做才能找到这个控件呢?我弄得头焦额烂了还不行,还请各位大鸟多多指教~~~~~
解决方案 »
- 提取office2007文档的纯文本呢(docx/pptx/xlsx/)
- 分批加载数据
- 网页打开很慢?
- 关于多条件判断问题!!!!!!!!!!!!!!!我该怎么做啊??????????????
- <div id="Layer25" style="position: absolute; width: 1000px; height: 1000px; z-index: 35; background-color:red
- 现在有一个软件的数据库是SQL的。我想把里面的数据和我网站的数据保持同步应该怎么做?
- 监听文件的问题。FileSystemWatcher
- 帮我看看分页存储过程出错。
- 怎么不见CSDN技术人员回复我们的问题!
- 那里可以找到在服务器端支持的比较完整的信息发布程序(有图片上传功能)
- web.config 应用程序设置的文件
- 网站有没有必要用三层结构?
判断ROW中的chkSelected是否Checked 。如果true,通过ROW的主键删除。
CheckBox chkSelectedAll = (CheckBox)gvMachineInfo.FindControl("chkSelectedAll");
这以段估计不能找到控件
换下面一个看看能不能找到控件。
CheckBox chkSelectedAll = (CheckBox)gvMachineInfo.HeaderRow.FindControl("chkSelectedAll");
CheckBox chkSelectedAll = (CheckBox)gvMachineInfo.Rows(index).FindControl("chkSelectedAll");
这个问题应该是没有找到ID号为chkSelectedAll这个的东东.
可以试一下这样行不行:
CheckBox chkSelectedAll = (CheckBox)gvMachineInfo.Rows(index).FindControl("chkSelectedAll");
http://www.cnblogs.com/zm235/archive/2006/09/23/512651.html针对你的问题: (CheckBox)gvMachineInfo.HeaderRow.FindControl("chkSelectedAll"); 这来定位控件了?
这个问题应该是没有找到ID号为chkSelectedAll这个的东东.
可以试一下这样行不行:
CheckBox chkSelectedAll = (CheckBox)gvMachineInfo.Rows(index).FindControl("chkSelectedAll");
--------------------
再仔细看看,别人的前台代码,这个checkbox放在哪里的!
(CheckBox)e.FindControl("chkSelectedAll");
(CheckBox)e.Items.FindControl("chkSelectedAll");
我手上没有.net运行环境-_-
1.给id为"chkSelected”的checkbox加个Init事件,
CheckBox chkSelect = sender as CheckBox;
ClientScript.RegisterArrayDeclaration("CheckBox_ID", String.Format("\"{0}\"", chkSelected.ClientID));
2.给GridView加个DataBound事件,
StringBuilder script = new StringBuilder();
script.AppendLine("<script type=\"text/javascript\">");
script.AppendLine("<!--");
script.AppendLine("function SelectAll(obj)");
script.AppendLine("{");
script.AppendLine(" var checked = obj.checked;");
script.AppendLine(" for(var i=0; i<CheckBox_ID.length; i++)");
script.AppendLine(" {");
script.AppendLine(" window.document.getElementById(CheckBox_ID[i]).checked = checked;");
script.AppendLine(" }");
script.AppendLine("}");
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CheckBox_ID", script.ToString());
chkSelectedAll.Attributes["onclick"] = "SelectAll(this);";