我用
while (rdr.Read())
{
int hw_id = (int)rdr["hw_id"];
string jydbh = rdr["jydbh"].ToString();
string sdz = rdr["sdz"].ToString();
string shrxm = rdr["shrxm"].ToString();
string sxhh = rdr["sxhh"].ToString();
string hwmc = rdr["hwmc"].ToString();
int jianshu = (int)rdr["jianshu"];
string hwzt = rdr["hwzt"].ToString();
Response.Write("<tr><td width='5%' id='hw_id'><input type='checkbox' name='ids' value='" + hw_id + "' ");
Response.Write("</td><td id='jydbh' width='5%'>");
Response.Write(jydbh);
Response.Write("</td><td id='sdz' width='5%'>");
Response.Write(sdz);
Response.Write("</td><td id='shrxm' width='5%'>");
Response.Write(shrxm);
Response.Write("</td><td id='sxhh' width='5%'>");
Response.Write(sxhh);
Response.Write("</td><td id='hwmc' width='5%'>");
Response.Write(hwmc);
Response.Write("</td><td id='jianshu' width='5%'>");
Response.Write(jianshu);
Response.Write("</td><td id='hwzt' width='5%'>");
Response.Write(hwzt);
Response.Write("</td>");
Response.Write("</tr>");
Response.Write("</table>");
}
把后台的表格输出到前台 ,在前台如何遍历(全选)checkbox???? 我的全选js
<script type="text/javascript">
//////////////////////////////////////////////////////////////
var CheckedColor="#6699ff"; //设置选中状态的颜色
//设置选中状态
function SetCheck(obj, tr){
var tr = tr || event.srcElement.parentNode;
while(tr && tr.tagName.toLowerCase() != "tr"){
tr = tr.parentNode;
}
if(tr.bgColor == CheckedColor){
tr.bgColor = "#FFFFFF";
tr.getElementsByTagName("input")[0].checked = false;
}else{
tr.bgColor = CheckedColor;
tr.getElementsByTagName("input")[0].checked = true;
}
}
function selAll(obj, tbID){
var table = document.getElementById(tbID);
for(var i=1; i<table.rows.length; i++){
SetCheck(null, table.rows[i]);
}
}
</script>
但是无论检索到几行只能选中第一行 ?? ??????
while (rdr.Read())
{
int hw_id = (int)rdr["hw_id"];
string jydbh = rdr["jydbh"].ToString();
string sdz = rdr["sdz"].ToString();
string shrxm = rdr["shrxm"].ToString();
string sxhh = rdr["sxhh"].ToString();
string hwmc = rdr["hwmc"].ToString();
int jianshu = (int)rdr["jianshu"];
string hwzt = rdr["hwzt"].ToString();
Response.Write("<tr><td width='5%' id='hw_id'><input type='checkbox' name='ids' value='" + hw_id + "' ");
Response.Write("</td><td id='jydbh' width='5%'>");
Response.Write(jydbh);
Response.Write("</td><td id='sdz' width='5%'>");
Response.Write(sdz);
Response.Write("</td><td id='shrxm' width='5%'>");
Response.Write(shrxm);
Response.Write("</td><td id='sxhh' width='5%'>");
Response.Write(sxhh);
Response.Write("</td><td id='hwmc' width='5%'>");
Response.Write(hwmc);
Response.Write("</td><td id='jianshu' width='5%'>");
Response.Write(jianshu);
Response.Write("</td><td id='hwzt' width='5%'>");
Response.Write(hwzt);
Response.Write("</td>");
Response.Write("</tr>");
Response.Write("</table>");
}
把后台的表格输出到前台 ,在前台如何遍历(全选)checkbox???? 我的全选js
<script type="text/javascript">
//////////////////////////////////////////////////////////////
var CheckedColor="#6699ff"; //设置选中状态的颜色
//设置选中状态
function SetCheck(obj, tr){
var tr = tr || event.srcElement.parentNode;
while(tr && tr.tagName.toLowerCase() != "tr"){
tr = tr.parentNode;
}
if(tr.bgColor == CheckedColor){
tr.bgColor = "#FFFFFF";
tr.getElementsByTagName("input")[0].checked = false;
}else{
tr.bgColor = CheckedColor;
tr.getElementsByTagName("input")[0].checked = true;
}
}
function selAll(obj, tbID){
var table = document.getElementById(tbID);
for(var i=1; i<table.rows.length; i++){
SetCheck(null, table.rows[i]);
}
}
</script>
但是无论检索到几行只能选中第一行 ?? ??????
name='ids'
document.getElementsByName('ids') 即可
2. 检查 tagname,和你现在用的办法一样(这个比较麻烦),“Response.Write(" </table>");”这个输出怪怪的
这个是后台test.aspx.cs文件
下面是前台1.aspx文件 怎么获取ids
function selAll(obj, tbID){
var table = document.getElementById(tbID);
for(var i=1; i <table.rows.length; i++){
SetCheck(null, table.rows[i]);
}
}
<script type="text/javascript">
//////////////////////////////////////////////////////////////
var CheckedColor="#6699ff"; //设置选中状态的颜色
//设置选中状态
function SetCheck(obj, tr){
var tr = tr || event.srcElement.parentNode;
while(tr && tr.tagName.toLowerCase() != "tr"){
tr = tr.parentNode;
}
if(tr.bgColor == CheckedColor){
tr.bgColor = "#FFFFFF";
tr.getElementsByTagName("input")[0].checked = false;
}else{
tr.bgColor = CheckedColor;
tr.getElementsByTagName("input")[0].checked = true;
}
}
function getData(page)
{
var xh = new ActiveXObject("Microsoft.XMLHTTP")
var search=document.getElementById("search").value;
var url = "test.aspx?search="+escape(search)+"&jydbh="+escape(document.getElementById('jydbh').value)+"&t="+new Date().getTime();
xh.open("get",url,false);
xh.send();
if(xh.readyState == 4 && xh.status == 200)
{
document.getElementById("tip").innerHTML= xh.responseText;
}
} function selAll(obj, tbID){
var table = document.getElementById(tbID);
alert(table.rows.length);
for(var i=1; i<table.rows.length; i++){
SetCheck(null, table.rows[i]);
}
}
</script>
<body>
<form id="form1" runat="server">
送达站:
<input type="text" id="search" name="search" size="15">交易单号:<input name="jydbh" type="text" id="jydbh" size="17" >
<input type="button" value="查询" onClick="getData(1)"></form>
<table width="100%" cellpadding="0" cellspacing="0" style="border:0px">
<tr>
<td width="411" valign="top">
<div style="width:100%; height:346px; overflow-x:hidden;overflow-y:scroll" id="tip">
<table id="tb1" width="100%" class="tb" border="0" cellpadding="0" cellspacing="0" onClick="SetCheck(this)" >
<tr>
</tr>
</table>
</div>
<input type="checkbox" id="chk_all1" name="chk_all1" value="checkbox" onClick="selAll(this, 'tb1');"/>全选/反选
</td>
</tr>
</table>后台test.aspx.cs文件 while (rdr.Read())
{
int hw_id = (int)rdr["hw_id"];
string jydbh = rdr["jydbh"].ToString();
string sdz = rdr["sdz"].ToString();
string shrxm = rdr["shrxm"].ToString();
string sxhh = rdr["sxhh"].ToString();
string hwmc = rdr["hwmc"].ToString();
int jianshu = (int)rdr["jianshu"];
string hwzt = rdr["hwzt"].ToString(); Response.Write("<table id='tb1' border='0' cellpadding='0' cellspacing='0' class='tb'onclick='SetCheck(this)'><tr class='tbhead'></tr>");
Response.Write("<tr><td width='5%' id='hw_id'><input type='checkbox' name='ids' value='" + hw_id + "' ");
Response.Write("</td><td id='jydbh' width='5%'>");
Response.Write(jydbh);
Response.Write("</td><td id='sdz' width='5%'>");
Response.Write(sdz);
Response.Write("</td><td id='shrxm' width='5%'>");
Response.Write(shrxm);
Response.Write("</td><td id='sxhh' width='5%'>");
Response.Write(sxhh);
Response.Write("</td><td id='hwmc' width='5%'>");
Response.Write(hwmc);
Response.Write("</td><td id='jianshu' width='5%'>");
Response.Write(jianshu);
Response.Write("</td><td id='hwzt' width='5%'>");
Response.Write(hwzt);
Response.Write("</td>");
Response.Write("</tr>");
//Response.Write("</table>");
</body>
”这句话阿,有这个的话是要有Response.Write(" </table>"); 的,但是为啥你的table 的id 都是一样的呢?
是为了对应前台1.aspx中的
<div style="width:100%; height:346px; overflow-x:hidden;overflow-y:scroll" id="tip">
<table id="tb1" width="100%" class="tb" border="0" cellpadding="0" cellspacing="0" onClick="SetCheck(this)" >
<tr>
</tr>
</table>
</div>
因为“Response.Write(" <table id='tb1' border='0' cellpadding='0' cellspacing='0' class='tb'onclick='SetCheck(this)'> <tr class='tbhead'> </tr></table>");
这个表格是输出到tip中的document.getElementById("tip").innerHTML= xh.responseText;
应该是没错的啊
在asp文件中
for i=1 to rs.pagesize rs是asp的记录集
他用变量i来循环 直到记录集的末尾 循环输出了str=str&"<tr><td id=""id""><input type=""checkbox"" value="&rs("id")&" name='ids'></td><td id=""title"" align=center>"&rs("title")&"</td><td id=""tj"">"&rs("tj")&"</td></tr>"而在循环前用
str="<table id=""tb1"" width=""200"" class=""tb"" cellpadding=""0"" cellspacing=""0"" onclick=""SetCheck(this)""><tr class=""tbhead""><td>ID</td><td>用户名</td><td>件数</tr>" 所以他选择的时候不用选中第一行 i从1开始
for(var i=1; i<table.rows.length; i++){
SetCheck(null, table.rows[i]);
}现在的问题是 我如何像在asp中那样赋予一个i变量来循环输出表格?
这个是新的问题吗?呵呵,首先 DataGrid 有自动分页的功能,如果不适用,那么要想知道你希望表格在前台生成还是在后台生成了?在前台的话,用JS就可以搞定,在后台的话,如果你不喜欢 DataGrid 还可以用 Repeater 甚至用 Literal 来生成
Response.Write(" <table id='tb1' border='0' cellpadding='0' cellspacing='0' class='tb'onclick='SetCheck(this)'> <tr class='tbhead'> </tr>");
Response.Write(" <tr> <td width='5%' id='hw_id'> <input type='checkbox' name='ids' value='" + hw_id + "' "); 把表格输出到前台的div下的tb1<div style="width:100%; height:346px; overflow-x:hidden;overflow-y:scroll" id="tip">
<table id="tb1" width="100%" class="tb" border="0" cellpadding="0" cellspacing="0" onClick="SetCheck(this)" >
<tr>
</tr>
</table>
</div> 然后要怎么全选 ????????
for i=1 to rs.pagesize
将这一类型的所有控件读取并存放在一个数组中,分别判断控件的ID
var tr = tr || event.srcElement.parentNode;
while(tr && tr.tagName.toLowerCase() != "tr"){
tr = tr.parentNode;
}
if(tr.bgColor == CheckedColor){
tr.bgColor = "#FFFFFF";
tr.getElementsByTagName("input")[i].checked = false;
}else{
tr.bgColor = CheckedColor;
tr.getElementsByTagName("input")[i].checked = true; }
}
function selAll(obj, tbID){
var table = document.getElementById(tbID);
for(var i=1; i <table.rows.length; i++){
SetCheck(null, table.rows[i],i-1);
}
}
试试