}} </script> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <FONT face="宋体"> <asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 176px; POSITION: absolute; TOP: 64px" runat="server" Width="320px" Height="160px" AutoGenerateColumns="False"> <Columns> <asp:TemplateColumn HeaderText="操作"> <HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle> <ItemTemplate> <Input type="CheckBox" ID="chkExport" value='<%# (DataBinder.Eval(Container.DataItem, "ID"))%>'onclick="changeState(value)" /> </ItemTemplate> </asp:TemplateColumn> <asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="ID"></asp:BoundColumn> <asp:BoundColumn DataField="u_name" ReadOnly="True" HeaderText="高校名称"></asp:BoundColumn> </Columns> </asp:datagrid><INPUT id="hidetext" style="Z-INDEX: 105; LEFT: 176px; POSITION: absolute; TOP: 32px" type="hidden" runat="server"><INPUT id="select_all" style="Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 256px" onclick="selectAll()" type="button" value="全选"> <asp:button id="Button1" style="Z-INDEX: 103; LEFT: 376px; POSITION: absolute; TOP: 256px" runat="server" Width="112px" Text="查看被选择的项目"></asp:button><asp:label id="Label1" style="Z-INDEX: 104; LEFT: 184px; POSITION: absolute; TOP: 304px" runat="server" Width="304px" Height="168px"></asp:label></FONT></form> </body> </HTML> 后台代码(VB):Imports System.Data.OleDb Public Class WebForm1 Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。 Private Sub InitializeComponent() End Sub Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid Protected WithEvents Button1 As System.Web.UI.WebControls.Button Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents hidetext As System.Web.UI.HtmlControls.HtmlInputHidden '注意: 以下占位符声明是 Web 窗体设计器所必需的。 '不要删除或移动它。 Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: 此方法调用是 Web 窗体设计器所必需的 '不要使用代码编辑器修改它。 InitializeComponent() End Sub#End Region '定义公共变量 Dim myconnection As OleDbConnection Dim dbno As Integer Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load dbConnection() gridBind() End Sub '数据库连接 Sub dbConnection() myconnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=" & Server.MapPath("database\university.mdb")) End Sub 'datagrid数据绑定 Sub gridBind() Dim myadapter As New OleDbDataAdapter("select top 10 * from university", myconnection) Dim mydataset As New DataSet myadapter.Fill(mydataset) DataGrid1.DataSource = mydataset DataGrid1.DataBind() dbno = DataGrid1.Items.Count '取得DATAGRID数据行数 End Sub '查看被选中的数据项 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim strshow As String Dim strarray() As String Dim sid As String = hidetext.Value strarray = Split(sid, ";") Dim i As Integer For i = 0 To strarray.Length - 2 strshow += DataGrid1.Items(Int(strarray(i)) - 1).Cells(2).Text + "<br>" Next If strshow "" Then Label1.Text = strshow Else Label1.Text = "没有选择的项目" End If End Sub End Class 三.参考资料: MSDN http://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459 http://community.csdn.net/Expert/topic/2968/2968998.xml?temp=.963833
for(i=0;i<a.length;i++)
{
if(a[i].type=="checkbox") a[i].checked=true
}
这个文件有点类似,只是要求的是选checkbox时,包括这行下面的所有行都要被选中。同时状态跟选的那个一样。当取消chengbox“钩”时也一样。同时不能用postback。
拿过去改一下不就可以了
for(i=0;i<a.length;i++)
{
if(a[i].type=="checkbox") a[i].checked=true
}这个是全选。本题的思想是先确定选择的那个checkbox的数组号,之后再从这个开始循环执行,这个思想有人能解决吗
一个用datagrid来显示sql server或者access数据库的aspx文件
其中控件有:
一个datagrid,id=datagrid1,其中有一个checkbox模板列
一个BUTTON按扭,id=button1
问题:
1.在客户端执行按下其中的一行的checkbox,这一行以后的数据行的checkbox状态都跟着按下的那行checkbox状态一样。
注意:不能用postback(即是不能在服务器端执行)
2.按下button1返回datagrid1中checkbox列所有被选中的行的任一列数据,并显示出来。DataGrid控件添加CheckBox操作,并实现“全选”功能。以下是实现的例子
http://huangtao11cn.vicp.net/university/unv.aspx二.解决方案:前台代码:<%@ Page Language="vb" AutoEventWireup="false" Codebehind="unv.aspx.vb" Inherits="university.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<script language="javascript">
//全选函数
function selectAll()
{
a=document.getElementsByTagName("INPUT");
if(document.Form1.select_all.value=="全选")
{
for(i=0;i<a.length;i++)
{
if(a[i].type=="checkbox")
{
a[i].checked=true;
document.Form1.select_all.value="全不选";
}
}
}
else
for(i=0;i<a.length;i++)
{
if(a[i].type=="checkbox")
{
a[i].checked=false;
document.Form1.select_all.value="全选";
}
}
addToHideText()
}//选定函数
function changeState(v)
{
var bool,bool_1 =false;
var n=0;
a=document.getElementsByTagName("INPUT");
for(i=0;i<a.length;i++)
{
if(a[i].type=="checkbox" && a[i].value==v)
{
bool_1=true;
a[i].checked!=a[i].checked;
n=i;
bool=a[i].checked;
}
}
for(i=n;i<a.length;i++)
{
a[i].checked=bool;
}
addToHideText()
}//记录被选择的CHECKBOX的值,把值赋给一个隐藏文本框
function addToHideText()
{
document.Form1.hidetext.value="";
a=document.getElementsByTagName("INPUT");
for(i=0;i<a.length;i++)
{
if(a[i].type=="checkbox" && a[i].checked)
{
document.Form1.hidetext.value+=a[i].value+";"
}
}}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 176px; POSITION: absolute; TOP: 64px"
runat="server" Width="320px" Height="160px" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="操作">
<HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle>
<ItemTemplate>
<Input type="CheckBox" ID="chkExport" value='<%# (DataBinder.Eval(Container.DataItem, "ID"))%>'onclick="changeState(value)" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="u_name" ReadOnly="True" HeaderText="高校名称"></asp:BoundColumn>
</Columns>
</asp:datagrid><INPUT id="hidetext" style="Z-INDEX: 105; LEFT: 176px; POSITION: absolute; TOP: 32px" type="hidden"
runat="server"><INPUT id="select_all" style="Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 256px"
onclick="selectAll()" type="button" value="全选">
<asp:button id="Button1" style="Z-INDEX: 103; LEFT: 376px; POSITION: absolute; TOP: 256px" runat="server"
Width="112px" Text="查看被选择的项目"></asp:button><asp:label id="Label1" style="Z-INDEX: 104; LEFT: 184px; POSITION: absolute; TOP: 304px" runat="server"
Width="304px" Height="168px"></asp:label></FONT></form>
</body>
</HTML>
后台代码(VB):Imports System.Data.OleDb
Public Class WebForm1
Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。
Private Sub InitializeComponent() End Sub
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents hidetext As System.Web.UI.HtmlControls.HtmlInputHidden '注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub#End Region
'定义公共变量
Dim myconnection As OleDbConnection
Dim dbno As Integer
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dbConnection()
gridBind()
End Sub
'数据库连接
Sub dbConnection()
myconnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=" & Server.MapPath("database\university.mdb"))
End Sub
'datagrid数据绑定
Sub gridBind()
Dim myadapter As New OleDbDataAdapter("select top 10 * from university", myconnection)
Dim mydataset As New DataSet
myadapter.Fill(mydataset)
DataGrid1.DataSource = mydataset
DataGrid1.DataBind()
dbno = DataGrid1.Items.Count '取得DATAGRID数据行数
End Sub
'查看被选中的数据项
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strshow As String
Dim strarray() As String
Dim sid As String = hidetext.Value
strarray = Split(sid, ";")
Dim i As Integer
For i = 0 To strarray.Length - 2
strshow += DataGrid1.Items(Int(strarray(i)) - 1).Cells(2).Text + "<br>"
Next If strshow "" Then
Label1.Text = strshow
Else
Label1.Text = "没有选择的项目"
End If End Sub
End Class
三.参考资料:
MSDN
http://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459
http://community.csdn.net/Expert/topic/2968/2968998.xml?temp=.963833