GridView能否在客户端选中某行?并取出选中行数据? GridView能否在客户端选中某行?并取出选中行数据?请给例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GridView的例子参考 GridView 72般绝技 可以在GRIDVIEW中添加一模板列,列中放入一checkbox,用循环,检索每行的checkbox状态,看是否选中 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridView.aspx.cs" Inherits="GridView" MaintainScrollPositionOnPostback="true" %><%@ Import Namespace="System.Web.UI" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>无标题页</title></head><script>function SelectAll(id){ var gv = document.getElementById("GridView1"); var bs = gv.getElementsByTagName("input"); for(var i=0;i<bs.length;i++) { if(bs[i].type=="checkbox") { bs[i].checked=id.checked; } }}function SelectAny(ck) //这个函数可以取到{ if(ck.checked) { var gv = document.getElementById("GridView1"); var rows = gv.getElementsByTagName("tr"); for(var i =0;i<rows.length;i++) { var cid = rows[i].cells[0].getElementsByTagName("input"); if(cid.length>0) { if(cid[0].type=="checkbox" && cid[0].id==ck.id) { //alert("你现在选中的是第"+i+"行!"); var cells = rows[i].getElementsByTagName("td"); for(var t=0;t<cells.length;t++) { alert(cells[t].innerText);//弹出选中行每列的文本。 } } } } }}</script><body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"> <Columns> <asp:TemplateField HeaderText="全选"> <HeaderTemplate> <asp:CheckBox ID="CheckBox1" runat="server" onclick="javascript:SelectAll(this);" /> </HeaderTemplate> <ItemTemplate> <asp:CheckBox ID="CheckBox2" runat="server" onclick="javascript:SelectAny(this);"/> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="Name" HeaderText="姓名" SortExpression="Name" HtmlEncode="False" NullDisplayText="<font color='red'>暂缺</font>"/> <asp:BoundField DataField="Sex" HeaderText="性别" SortExpression="Sex" /> <asp:BoundField DataField="Date" HeaderText="日期" SortExpression="Date" DataFormatString="{0:yyyy-MM-dd hh}" HtmlEncode="False" /> <asp:BoundField DataField="Age" HeaderText="年龄" SortExpression="Age" /> <asp:BoundField DataField="Memo" HeaderText="工资" SortExpression="Memo" /> </asp:GridView> </div> </form></body></html> 前面的都一样..取值的时候没那么麻烦直接取就可以了 for (int i = 0; i < this.GridView1.Rows.Count; i++) { bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelect")).Checked; if (isChecked) {GridView1.Rows[i].Cells[0].Text;GridView1.Rows[i].Cells[1].Text; GridView1.Rows[i].Cells[2].Text; } } 怪事 关于iframe自适应问题 求救 discuz!NT源码怎么修改登录 急求!分类信息网站源码(.net),可付费 存储过程定义数据表 达到了最大池大小 时间格式在SQL中如何比较(实在是没办法了,希望大家帮个忙)? 调试一ASP.NET页面,发现未定义类型错误,希望能人解决!! 如果用OpenGL, DirectX, Direct 3D開發asp.net圖形,應該怎麽布署程序? .net面试题 (急) 急急急急。。。。高手帮忙。。。。如何向表的字段中插入单引号。help~~~~~ 关于for循环 vs2008 sp1
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridView.aspx.cs" Inherits="GridView" MaintainScrollPositionOnPostback="true" %><%@ Import Namespace="System.Web.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head><script>
function SelectAll(id)
{
var gv = document.getElementById("GridView1");
var bs = gv.getElementsByTagName("input");
for(var i=0;i<bs.length;i++)
{
if(bs[i].type=="checkbox")
{
bs[i].checked=id.checked;
}
}
}
function SelectAny(ck) //这个函数可以取到
{
if(ck.checked)
{
var gv = document.getElementById("GridView1");
var rows = gv.getElementsByTagName("tr");
for(var i =0;i<rows.length;i++)
{
var cid = rows[i].cells[0].getElementsByTagName("input");
if(cid.length>0)
{
if(cid[0].type=="checkbox" && cid[0].id==ck.id)
{
//alert("你现在选中的是第"+i+"行!");
var cells = rows[i].getElementsByTagName("td");
for(var t=0;t<cells.length;t++)
{
alert(cells[t].innerText);//弹出选中行每列的文本。
}
}
}
}
}
}</script><body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="全选">
<HeaderTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" onclick="javascript:SelectAll(this);" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" onclick="javascript:SelectAny(this);"/>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="姓名" SortExpression="Name" HtmlEncode="False" NullDisplayText="<font color='red'>暂缺</font>"/>
<asp:BoundField DataField="Sex" HeaderText="性别" SortExpression="Sex" />
<asp:BoundField DataField="Date" HeaderText="日期" SortExpression="Date" DataFormatString="{0:yyyy-MM-dd hh}"
HtmlEncode="False" />
<asp:BoundField DataField="Age" HeaderText="年龄" SortExpression="Age" />
<asp:BoundField DataField="Memo" HeaderText="工资" SortExpression="Memo" />
</asp:GridView>
</div>
</form>
</body>
</html>
前面的都一样..取值的时候没那么麻烦直接取就可以了
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelect")).Checked;
if (isChecked)
{
GridView1.Rows[i].Cells[0].Text;
GridView1.Rows[i].Cells[1].Text;
GridView1.Rows[i].Cells[2].Text;
} }