如题,我主要是想用JavaScript来实现这个功能,并非在CS里实现,有实例不?
还有,就是这个GridView到时候要放到一个Repeater里面,那又如何实现呢??
还有,就是这个GridView到时候要放到一个Repeater里面,那又如何实现呢??
解决方案 »
- [超级难!]将一个AppDomain中的From, 显示到主AppDomain中的DockPanel中, 报错.大家帮帮忙.
- C#.net split 字符串 恶心的问题!
- WPF 里的lable如何实现文字竖排?
- 收集一些C#的优化技巧!
- stringbuilder类型数据的存储
- 求最高效的矢量数据 光栏法 压缩算法代码
- vs2005文本框上哪个属性是关于正则表达式的
- 如何自定义一个这样的控件
- 有谁知道有没有WIX(Windows Installer Xml)的论坛??谢了
- 怎样从*.IMG文件中读出图片,并保存到指定目录中?
- 问一个SQL语句的问题 count星的
- 他们把Byte[]转换成Image类型呀?
到html/javascript论坛去问。
<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
System.Data.DataSet ds;
protected void Page_Load(object sender, EventArgs e)
{
ds = new System.Data.DataSet();
System.Data.DataTable dataTable1 = new System.Data.DataTable("BlogUser");
System.Data.DataRow dr;
dataTable1.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
dataTable1.Columns.Add(new System.Data.DataColumn("UserName", typeof(System.String)));
dataTable1.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns["UserId"] };
for (int i = 0; i < 8; i++)
{
dr = dataTable1.NewRow();
dr[0] = i;
dr[1] = "用户姓名【孟子E章】测试" + i.ToString();
dataTable1.Rows.Add(dr);
}
System.Data.DataTable dataTable2 = new System.Data.DataTable("BlogArticle");
dataTable2.Columns.Add(new System.Data.DataColumn("ArticleId", typeof(System.Int32)));
dataTable2.Columns.Add(new System.Data.DataColumn("Title", typeof(System.String)));
dataTable2.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
dataTable2.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns["ArticleId"] };
Random rd = new Random();
for (int i = 0; i < 20; i++)
{
dr = dataTable2.NewRow();
dr[0] = i;
dr[1] = "文章标题例子" + i.ToString();
dr[2] = rd.Next(0, 7);
dataTable2.Rows.Add(dr);
}
ds.Tables.Add(dataTable1);
ds.Tables.Add(dataTable2);
System.Data.DataColumn parentColumn = ds.Tables["BlogUser"].Columns["UserId"];
System.Data.DataColumn childColumn = ds.Tables["BlogArticle"].Columns["UserId"];
System.Data.DataRelation user_article = new System.Data.DataRelation("UserId", parentColumn, childColumn);
ds.Relations.Add(user_article);
this.Repeater1.DataSource = ds.Tables["BlogUser"].DefaultView;
this.Repeater1.DataBind();
} protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
System.Data.DataView dvv = ds.Tables["BlogArticle"].DefaultView;
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
GridView g = e.Item.FindControl("g") as GridView;
System.Data.DataRowView dv = e.Item.DataItem as System.Data.DataRowView;
dvv.RowFilter = "UserId=" + dv["UserId"].ToString();
g.DataSource = dvv;
g.DataBind();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>嵌套的控件全选</title>
<script type="text/javascript">
function selectAll(chx) {
var checked = chx.checked;
var t = chx.parentNode;
while (t.tagName != "TABLE") {
t = t.parentNode;
}
for (i = 1; i < t.rows.length; i++) {
t.rows[i].cells[0].getElementsByTagName("input")[0].checked = checked;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<h1><%#Eval("UserName")%></h1>
<asp:GridView ID="g" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="c" runat="server" onclick="selectAll(this)" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="item" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Title" HeaderText="文章标题" />
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:Repeater>
</form>
</body>
</html>
有什么难的啊,你FindControl不就得到了
<%@ Page Language="C#" EnableViewState="false" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
System.Data.DataSet ds;
protected void Page_Load(object sender, EventArgs e)
{
ds = new System.Data.DataSet();
System.Data.DataTable dataTable1 = new System.Data.DataTable("BlogUser");
System.Data.DataRow dr;
dataTable1.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
dataTable1.Columns.Add(new System.Data.DataColumn("UserName", typeof(System.String)));
dataTable1.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns["UserId"] };
for (int i = 0; i < 8; i++)
{
dr = dataTable1.NewRow();
dr[0] = i;
dr[1] = "用户姓名【孟子E章】测试" + i.ToString();
dataTable1.Rows.Add(dr);
}
System.Data.DataTable dataTable2 = new System.Data.DataTable("BlogArticle");
dataTable2.Columns.Add(new System.Data.DataColumn("ArticleId", typeof(System.Int32)));
dataTable2.Columns.Add(new System.Data.DataColumn("Title", typeof(System.String)));
dataTable2.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
dataTable2.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns["ArticleId"] };
Random rd = new Random();
for (int i = 0; i < 20; i++)
{
dr = dataTable2.NewRow();
dr[0] = i;
dr[1] = "文章标题例子" + i.ToString();
dr[2] = rd.Next(0, 7);
dataTable2.Rows.Add(dr);
}
ds.Tables.Add(dataTable1);
ds.Tables.Add(dataTable2);
System.Data.DataColumn parentColumn = ds.Tables["BlogUser"].Columns["UserId"];
System.Data.DataColumn childColumn = ds.Tables["BlogArticle"].Columns["UserId"];
System.Data.DataRelation user_article = new System.Data.DataRelation("UserId", parentColumn, childColumn);
ds.Relations.Add(user_article);
this.Repeater1.DataSource = ds.Tables["BlogUser"].DefaultView;
this.Repeater1.DataBind();
} protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
System.Data.DataView dvv = ds.Tables["BlogArticle"].DefaultView;
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
GridView g = e.Item.FindControl("g") as GridView;
System.Data.DataRowView dv = e.Item.DataItem as System.Data.DataRowView;
dvv.RowFilter = "UserId=" + dv["UserId"].ToString();
g.DataSource = dvv;
g.DataBind();
CheckBox c = e.Item.FindControl("c") as CheckBox;
c.Attributes.Add("onclick", "selectAll(this,'" + g.ClientID + "')");
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>嵌套的控件全选</title>
<script type="text/javascript">
function selectAll(chx,tid) {
var checked = chx.checked;
var t = document.getElementById(tid);
for (i = 0; i < t.rows.length; i++) {
t.rows[i].cells[0].getElementsByTagName("input")[0].checked = checked;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<h1><asp:CheckBox ID="c" runat="server" /> <%#Eval("UserName")%></h1>
<asp:GridView ID="g" runat="server" AutoGenerateColumns="false" ShowHeader="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="item" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Title" />
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:Repeater>
</form>
</body>
</html>
javascript代码:
function CheckAll(oCheckbox)
{
var GridView2 = document.getElementById("<%=GridView2.ClientID %>");
for(i = 1;i < GridView2.rows.length; i++)
{
GridView2.rows[i].cells[0].getElementsByTagName("INPUT")[0].checked = oCheckbox.checked;
}
}
C#代码:
<asp:GridView ID="GridView2" runat="server" Font-Size="12px" BackColor="#FFFFFF"
GridLines="Both" CellPadding="4" DataKeyNames="序号" AutoGenerateColumns="false">
<HeaderStyle BackColor="#EDEDED" Height="26px" />
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<input id="Checkbox2" type="checkbox" onclick="CheckAll(this)" runat="server" /><label>全选</label>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="ItemCheckBox" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="数据字段" HeaderText="标头" />
</Columns>
</asp:GridView>
<s:form name="search_condtion_form" target="bottom">
<table style="margin-top:5px;margin-bottom: 5px;height: 5px">
<tr align="center">
<td>
<input type="button" name="selectAllForm" value="全 选"
onclick="selectAll(this.form);"/>
<input type="button" name="cancelAllForm" value="全 不 选"
onclick="cancelAll(this.form)"/>
<input type="button" name="updateForm" value="更 新"
onclick="updateCode()" />
<input type="button" name="deleteFrom" value="删 除"
onclick="delCode()" />
</td>
</tr>
</table>
</s:form>
以下是JS部分:
function selectAll(form)
{
for(i=0;i <form.elements.length;i++)
{
//alert(form.elements[i].name);
if(form.elements[i].name == null || form.elements[i].name == "" ){
continue;
}
if(form.elements[i].name == "checkCode")
{
form.elements[i].checked = true;
}
if(form.elements[i].name == "codeName" || form.elements[i].name == "code")
{
form.elements[i].disabled = false;
}
}
}
可行,但有点小错误
var GridView2 = document.getElementById("<%=GridView2.ClientID %>");
改成
var GridView2 = document.getElementById("GridView2");
如果把form换个命名,比如说是area,就更明确了。