现在的问题是,全选能选,想非全选checkbox为非选状态,则全选checkbox也为非选状态,如下是我的JS代码:
function selectall(obj)
{
for (var i=0; i<obj.form.elements.length; i++)
{
if (obj.form.elements[i].type == 'checkbox' && obj.form.elements[i] != obj)
{
obj.form.elements[i].checked = obj.checked;
tr_bgcolor(obj.form.elements[i]);
}
}
}单选事件如下:
function tr_bgcolor(c)
{
var tr = c.parentNode.parentNode;
tr.rowIndex % 2 == 0 ? tr.style.backgroundColor = c.checked ? '#add6a6' : '#FEDFDC' : tr.style.backgroundColor = c.checked ? '#add6d6' : '';
}
哪位帮帮小弟喽!或者哪位给一个完整的JS给小弟!
function selectall(obj)
{
for (var i=0; i<obj.form.elements.length; i++)
{
if (obj.form.elements[i].type == 'checkbox' && obj.form.elements[i] != obj)
{
obj.form.elements[i].checked = obj.checked;
tr_bgcolor(obj.form.elements[i]);
}
}
}单选事件如下:
function tr_bgcolor(c)
{
var tr = c.parentNode.parentNode;
tr.rowIndex % 2 == 0 ? tr.style.backgroundColor = c.checked ? '#add6a6' : '#FEDFDC' : tr.style.backgroundColor = c.checked ? '#add6d6' : '';
}
哪位帮帮小弟喽!或者哪位给一个完整的JS给小弟!
解决方案 »
- 高分求解GridView固定表头
- asp执行的视图数据为空(救命啊)
- ASP.NET中鼠标悬浮,图片url改变的代码(js)
- 跪求正则表达式
- Table 嵌套Table?
- 关于实例化OracleConnecion时出现“System.Data.OracleClient.OracleConnection”的类型初始值设定项引发异常。
- 请问论坛的文本编辑框,除了用FCKeditor,还有没其他的?
- 在C#中用了一个treeview控件我想对他进行设置权限,请问么样设置??
- 思归大哥等高手,请教一个用oracle_net类库连接oracle的问题?
- GridView套用GridView, 给里面的GridView设置循环列
- 关于DropDownList添加项
- 百思不得其解,Repeater批量删除时FindControl不到控件
{
var isSelectAll = true;
for (var i=0; i<obj.form.elements.length; i++)
{
if (obj.form.elements[i].type == 'checkbox' && obj.form.elements[i] != obj)
{
if(!obj.form.elements[i].checked)
{
isSelectAll = false;
break;
}
}
}
document.getElementById("全选ID").checked = isSelectAll;
}
<%@ Import Namespace="System.Data" %><%--http://community.csdn.net/Expert/TopicView3.asp?id=5714048--%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
LoadProductData();
}
}
void LoadProductData()
{
DataTable dt = CreateSampleProductData(); GridView1.DataSource = dt;
GridView1.DataBind();
} #region sample data static DataTable CreateSampleProductData()
{
DataTable tbl = new DataTable("Products"); tbl.Columns.Add("ProductID", typeof(int));
tbl.Columns.Add("ProductName", typeof(string));
tbl.Columns.Add("UnitPrice", typeof(decimal));
tbl.Columns.Add("CategoryID", typeof(int)); tbl.Rows.Add(1, "Chai", 18, 1);
tbl.Rows.Add(2, "Chang", 19, 1);
tbl.Rows.Add(3, "Aniseed Syrup", 10, 2);
tbl.Rows.Add(4, "Chef Anton's Cajun Seasoning", 22, 2);
tbl.Rows.Add(5, "Chef Anton's Gumbo Mix", 21.35, 2);
tbl.Rows.Add(47, "Zaanse koeken", 9.5, 3);
tbl.Rows.Add(48, "Chocolade", 12.75, 3);
tbl.Rows.Add(49, "Maxilaku", 20, 3); return tbl;
} #endregion </script><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>CSDN_GridViewAllAndRowCheckBox</title>
<script type="text/javascript">
// 选择 GridView 中指定的 checkbox
function chkAll(sender)
{
var grd = document.getElementById("GridView1");
var chkArr = grd.getElementsByTagName("input");
for(var i = 0; i < chkArr.length; i++) {
if(chkArr[i].type == "checkbox" &&
chkArr[i].id.indexOf("chkItem") > -1) {
chkArr[i].checked = sender.checked;
}
}
} // 同步chkItem和chkAll
function chkItem(sender)
{
var grd = document.getElementById("GridView1");
var chkArr = grd.getElementsByTagName("input");
var chkAll;
for(var i = 0; i < chkArr.length; i++) {
if(chkArr[i].type == "checkbox" &&
chkArr[i].id.indexOf("chkAll") > -1) {
chkAll = chkArr[i];
break;
}
}
for(var i = 0; i < chkArr.length; i++) {
if(chkArr[i].type == "checkbox" &&
chkArr[i].id.indexOf("chkItem") > -1 &&
!chkArr[i].checked) {
chkAll.checked = false;
return;
}
}
chkAll.checked = true;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" onclick='chkAll(this)' runat="server" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkItem" onclick='chkItem()' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ProductName">
<ItemTemplate>
<%# Eval("ProductName") %>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
<%@ Import Namespace="System.Data" %><%--http://community.csdn.net/Expert/TopicView3.asp?id=5714048--%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
LoadProductData();
}
}
void LoadProductData()
{
DataTable dt = CreateSampleProductData(); GridView1.DataSource = dt;
GridView1.DataBind(); GridView2.DataSource = dt;
GridView2.DataBind();
} #region sample data static DataTable CreateSampleProductData()
{
DataTable tbl = new DataTable("Products"); tbl.Columns.Add("ProductID", typeof(int));
tbl.Columns.Add("ProductName", typeof(string));
tbl.Columns.Add("UnitPrice", typeof(decimal));
tbl.Columns.Add("CategoryID", typeof(int)); tbl.Rows.Add(1, "Chai", 18, 1);
tbl.Rows.Add(2, "Chang", 19, 1);
tbl.Rows.Add(3, "Aniseed Syrup", 10, 2);
tbl.Rows.Add(4, "Chef Anton's Cajun Seasoning", 22, 2);
tbl.Rows.Add(5, "Chef Anton's Gumbo Mix", 21.35, 2);
tbl.Rows.Add(47, "Zaanse koeken", 9.5, 3);
tbl.Rows.Add(48, "Chocolade", 12.75, 3);
tbl.Rows.Add(49, "Maxilaku", 20, 3); return tbl;
} #endregion </script><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>CSDN_GridViewAllAndRowCheckBox</title>
<script type="text/javascript">
/*
* 功能:选中/取消 GridView 每行指定的 CheckBox
* 参数:
* sender:表示触发事件的 checkbox
* chkItemServerID:表示每行目标 checkbox 的服务器控件 ID
*/
function GridView_SelectAllRow(sender, chkItemServerID)
{
var grd = sender.parentNode.parentNode.parentNode; // GridView 呈现为一个 table
var chkArr = grd.getElementsByTagName("input"); // 获取此 table 内的所有 input
for(var i = 0; i < chkArr.length; i++) {
if(chkArr[i].type == "checkbox" &&
chkArr[i].id.indexOf(chkItemServerID) > -1) {
chkArr[i].checked = sender.checked;
}
}
} /*
* 功能:同步 GridView 每行 CheckBox 与全选 CheckBox 的状态
* 参数:
* sender:表示触发事件的 checkbox
* chkItemServerID:表示每行目标 checkbox 的服务器控件 ID
* chkAllServerID:表示全选功能 checkbox 的服务器控件 ID
*/
function GridView_SelectRow(sender, chkItemServerID, chkAllServerID)
{
var grd = sender.parentNode.parentNode.parentNode; // GridView 呈现为一个 table
var chkArr = grd.getElementsByTagName("input"); // 获取此 table 内的所有 input
var chkAll;
for(var i = 0; i < chkArr.length; i++) {
if(chkArr[i].type == "checkbox" &&
chkArr[i].id.indexOf(chkAllServerID) > -1) {
chkAll = chkArr[i]; // 获取全选功能 checkbox
break;
}
}
if(!chkAll) return;
for(var i = 0; i < chkArr.length; i++) {
if(chkArr[i].type == "checkbox" &&
chkArr[i].id.indexOf(chkItemServerID) > -1 &&
!chkArr[i].checked) {
chkAll.checked = false;
return;
}
}
chkAll.checked = true;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" onclick="GridView_SelectAllRow(this, 'chkItem')" runat="server" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkItem" onclick="GridView_SelectRow(this, 'chkItem', 'chkAll')" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ProductName">
<ItemTemplate>
<%# Eval("ProductName") %>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
</Columns>
</asp:GridView>
<br />
<br />
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" >
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" onclick="GridView_SelectAllRow(this, 'chkItem')" runat="server" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkItem" onclick="GridView_SelectRow(this, 'chkItem', 'chkAll')" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ProductName">
<ItemTemplate>
<%# Eval("ProductName") %>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
{
var theBox=tempControl;
xState=theBox.checked;
elem=theBox.form.elements;
for(i=0;i<elem.length;i++)
if(elem[i].type=='checkbox' && elem[i].id!=theBox.id)
{
if(elem[i].checked!=xState)
elem[i].click();
}
}
调用
<input id="chall" type="checkbox" onclick="SelectAll(chall)" name="ShoppCartID" value="checkbox">