首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

!=====限制表格某列操作的有关问题=====

2012-03-05 
求助!限制表格某列操作的问题有如下代码,已经实现输入条件过滤表格中所有单元格内容,现在我想限

求助!=====限制表格某列操作的问题=====
有如下代码,已经实现输入条件过滤表格中所有单元格内容,现在我想限制其中某1列或几列不参加过滤,其余列参加.
也就是说网页制作人员通过简单操作表头控制某列不参加过滤,用户在页面上输入条件后过滤的是其余列中的单元格内容.请问该怎么写?
麻烦编写一个function(),然后通过对表头的操作,实现这一要求. 谢谢谢谢谢谢谢了:)~
对了,另外最好是还能使不参加过滤的列和其他列颜色不同.


<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<center>
<script type="text/javascript">
function Search(Tbl,TextValue)
{
  var count=0;
  var keyWord=TextValue.value;
  if(keyWord!="")
  {
  for(var i=0;i<Tbl.rows.length;i++)
  {
  var tr=Tbl.rows[i];
  if(tr.innerHTML.indexOf(keyWord)==-1)
  tr.style.display="none";
  else
  {
  tr.style.display="block";
  count++;
  }
  }
  }
  if(count==0)
  {
  alert('找不到你要的记录!');
  ListAll(Tbl);
  }
}
function ListAll(Tbl)
{
  for(var i=0;i<Tbl.rows.length;i++)
  {
  Tbl.rows[i].style.display="block";
  }
}


</script>
<input name="ttt" id="ttt" type="text" style="width:200" >
<input type="button" value="查找" onclick="Search(Tbl1,ttt)" id="btFind">
<input type="button" value="返回" onclick="ListAll(Tbl1)" id="btListAll">

<br>
<table width="500" id="Tbl1" border="1">
<tr><td>12</td><td>34</td><td>45</td><td>45</td></tr>
<tr><td>呵呵</td><td>56</td><td>1911</td><td>2</td></tr>
<tr><td>12</td><td>55</td><td>1920</td><td>3</td></tr>
<tr><td>ddd</td><td>12</td><td>13</td><td>2356</td></tr>
<tr><td>呵呵</td><td>55</td><td>1877</td><td>rt</td></tr>
<tr><td>ddeed</td><td>11</td><td>12</td><td>hh</td></tr>
<tr><td>ddafd</td><td>58</td><td>1988</td><td>77</td></tr>
</table>
</center>
</body>
</html>

[解决办法]
[code=HTML][/code]
<html > 
<head > 
<title > </title > 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" / > 
</head > 
<body > 
<center > 
<script type="text/javascript" > 
var filtercolumns="";

function Search(Tbl,TextValue) 

var count=0; 
var keyWord=TextValue.value; 
if(keyWord!="") 

for(var i=0;i <Tbl.rows.length;i++) 

if(filtercolumns=="")
{
var tr=Tbl.rows[i]; 
if(tr.innerHTML.indexOf(keyWord)==-1) 
tr.style.display="none"; 
else 

tr.style.display="block"; 
count++; 

}

else
{
var tfilter = filtercolumns.substr(0,filtercolumns.length-1);


var columns = tfilter.split('|');
var html = "";

for(var k=0;k<Tbl.rows[i].cells.length;k++)
{
var flag = true;
for(var j=0;j<columns.length;j++)
{
var col= columns[j];
if(col==k) flag=false;
}
if(flag==true)
{
html += Tbl.rows[i].cells[k].innerHTML;
}
}

if(html.indexOf(keyWord)==-1) 
Tbl.rows[i].style.display="none"; 
else 

Tbl.rows[i].style.display="block"; 
count++; 

}


if(count==0) 

ListAll(Tbl); 
alert( '找不到你要的记录! '); 



function ListAll(Tbl) 

filtercolumns="";
for(var i=0;i <Tbl.rows.length;i++) 

Tbl.rows[i].style.display="block"; 
for(var j=0;j<Tbl.rows[0].cells.length;j++)
{
Tbl.rows[i].cells[j].style.backgroundColor = '#ffffff';
}



function setFilter()
{
var obj = event.srcElement;
var column = obj.cellIndex;
var tab = obj.parentElement.parentElement;

if(obj.tagName!="TD")return;

if(filtercolumns.indexOf(column)>-1)
{
var temp = filtercolumns.replace(column+'|','');
filtercolumns = temp;
for(var i=0;i<tab.rows.length;i++)
{
tab.rows[i].cells[column].style.backgroundColor = '#ffffff';
}
}

else
{
var temp = filtercolumns+column+'|';
filtercolumns = temp;
for(var i=0;i<tab.rows.length;i++)
{
tab.rows[i].cells[column].style.backgroundColor = '#eeeeee';
}

}

</script > 
<asp:Label ID="label1" runat="server">请点击列选择不参加过滤列</asp:Label>
<input name="ttt" id="ttt" type="text" style="width:200" > 
<input type="button" value="查找" onclick="Search(Tbl1,ttt)" id="btFind" > 
<input type="button" value="返回" onclick="ListAll(Tbl1)" id="btListAll" > 

<br > 
<table width="500" id="Tbl1" border="1" onclick="setFilter()"> 
<tr > <td >12 </td > <td >34 </td > <td >45 </td > <td >45 </td > </tr > 
<tr > <td >呵呵 </td > <td >56 </td > <td >1911 </td > <td >2 </td > </tr > 
<tr > <td >12 </td > <td >55 </td > <td >1920 </td > <td >3 </td > </tr > 
<tr > <td >ddd </td > <td >12 </td > <td >13 </td > <td >2356 </td > </tr > 
<tr > <td >呵呵 </td > <td >55 </td > <td >1877 </td > <td >rt </td > </tr > 
<tr > <td >ddeed </td > <td >11 </td > <td >12 </td > <td >hh </td > </tr > 
<tr > <td >ddafd </td > <td >58 </td > <td >1988 </td > <td >77 </td > </tr > 
</table > 
</center > 
</body > 


</html >

热点排行