asp.net中,使用datagird来显示数据,如何做到点击“全选”列头就可以使整列的单选框被选中?高手进!
asp.net中,使用datagird来显示数据,如何做到点击“全选”列头就可以使整列的单选框被选中?注意!列头是全选字样,没有checkbox。要点击这个列头就可以使这一列的checkbox被全部选中?希望能详细的解答下!列头如图!先谢了!--------------------编程问答-------------------- html Gridview中
<asp:TemplateField ShowHeader="False">
<HeaderTemplate>
<asp:CheckBox ID="chAll" runat="server" Text="" AutoPostBack="True" OnCheckedChanged="chAll_CheckedChanged" />全选
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="select" runat="server" />
<br />
<asp:HiddenField ID="hdf" runat="server" Value='<%# Bind("Id") %>' />
</ItemTemplate>
</asp:TemplateField>
cs中
/// <summary>
/// 全选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void chAll_CheckedChanged(object sender, EventArgs e)
{
foreach (GridViewRow gr in GridView1.Rows)
{
CheckBox ch = (CheckBox)gr.FindControl("select");
if (ch.Checked == true)
{
ch.Checked = false;
}
else
{
ch.Checked = true;
}
}
}
--------------------编程问答-------------------- 你好!我做的是列头只有“全选”儿子旁边没有checkbox的,这样能不能实现点击“全选”使所有的checkbox被选中?你的这个是因为旁边有一个checkbox,通过这个被选中来达到使所有的 checkbox被选中,而如果没有这个checkbox,只有“全选"两个字,如何实现点击”全选“来实现呢?<HeaderTemplate>
<asp:CheckBox ID="chAll" runat="server" Text="" AutoPostBack="True" OnCheckedChanged="chAll_CheckedChanged" />全选
</HeaderTemplate>
--------------------编程问答--------------------
http://www.cnblogs.com/sijin/articles/1442674.html --------------------编程问答-------------------- 你可以把1楼上的
<asp:TemplateField ShowHeader="False">
<HeaderTemplate>
<asp:CheckBox ID="chAll" runat="server" Text="" AutoPostBack="True" OnCheckedChanged="chAll_CheckedChanged" />全选
</HeaderTemplate>
CheckBox 换成linkbutton不就可以了吗?在点击事件里面写上1楼的方法 --------------------编程问答-------------------- 4楼的,你好,你说换成linkbutton,他的onclick可以用js来实现嘛?如果可以能教下我嘛? --------------------编程问答-------------------- $("#linkButtonId").click(function(){
$("#gridViewId").child("checkBox").each(
function(this){
$(this).attr("checked",true) ;
});
});
--------------------编程问答-------------------- 用js实现的全选,你把一些id什么的都换成自己的就ok了…… --------------------编程问答-------------------- 你把全选哪里换个成button 然后产生个button事件 ,然后在这个事件里面写代码,代码同 protected void chAll_CheckedChanged(object sender, EventArgs e) 这个里面的一样 ,自己去改改 试试看啊。 --------------------编程问答-------------------- function Checked(CheckAll) {
//获取隐藏框的id
var hdRoom = document.getElementById('<%=HidUser.ClientID %>')
var items = document.getElementsByTagName("input");
//清空值
hdRoom.value = "";
for (var i = 0; i < items.length; i++) {
if (items[i].type == "checkbox") {
items[i].checked = CheckAll.checked;
if (items[i].checked) {
hdRoom.value += items[i].value + ",";
}
}
}
hdRoom.value = hdRoom.value.substring(3, hdRoom.value.length - 1);
}
<asp:HiddenField ID="HidUser" runat="server" />
<asp:TemplateField HeaderText="全选">
<HeaderTemplate>
<input id="CheckAll" type="checkbox" onclick="Checked(this)" />全选
</HeaderTemplate>
<ItemTemplate>
<input id="Checkbox" type="checkbox" value='<%#Eval("zid")%>' onclick="CheckedOne();" />
</ItemTemplate>
<ItemStyle Width="5%" />
</asp:TemplateField>
楼主试试,我的就是这么实现的 --------------------编程问答-------------------- 6楼的我试了,但提示“ $(this).attr("checked",true) ;缺少标示符”不知道什么原因?帮忙看下,这是我写的:<script type="text/javascript" src="js/jquery-1.5.js"></script>
<script type="text/javascript">
$("LinkButton3").click(function(){
$("MyDG").child("SelectAll").each(function(this){
$(this).attr("checked",true);
});
});
<div>
<asp:DataGrid AutoGenerateColumns="False" DataKeyField= "Number" ID="MyDG" runat="server" Width="850px" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
<Columns>
<asp:TemplateColumn HeaderText="全选">
<HeaderTemplate><asp:LinkButton ID="LinkButton3" runat="server" style="text-decoration:none; color:Black" OnClientClick="SelectAll()">全选</asp:LinkButton> </HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="SelectAll" runat="server"/>
</ItemTemplate>
</asp:TemplateColumn>
补充:.NET技术 , ASP.NET