日期:2014-05-20  浏览次数:20460 次

|M| 第二贴:如何让网页中更新页面可保持javascript的操作
原贴:http://community.csdn.net/Expert/topic/5295/5295176.xml?temp=6.399173E-02
------------------------------
如:网面中有一绑定后的datagrid生成代码的 "一行 "如下如下
<table>                                           //这里是其中的一行
<tr>
  <td> 第一行 </td>
    <td>
            <input   type= "button "   value= "隐藏 "   onclick= "GoShowDetail(this,2); "   />
  </td>
</tr>
<tr>
  <td> 第二行
    </td>
</tr>
</table>
  function   GoShow(btn,i)
  {
        var   tr   =   btn.parentElement.parentElement.nextSibling;        
        tr.style.display   =   (i==1)? " ": "none ";
  }
点击 "button "隐藏后隐藏了第二行
但当执行了后台事件的时候 "第二行 "又显示出来了

我想问一下有没有什么方法让页面保持我那一次的javascript操作;也就是点击了其他后台事件“第二行”也就隐藏的

谢谢

------解决方案--------------------
<%@ Page language= "c# " Codebehind= "WebForm1.aspx.cs " AutoEventWireup= "false " Inherits= "WebApplication2.WebForm1 " %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN " >
<HTML>
<HEAD>
<title> WebForm1 </title>
<meta name= "GENERATOR " Content= "Microsoft Visual Studio .NET 7.1 ">
<meta name= "CODE_LANGUAGE " Content= "C# ">
<meta name= "vs_defaultClientScript " content= "JavaScript ">
<meta name= "vs_targetSchema " content= "http://schemas.microsoft.com/intellisense/ie5 ">
<script language= "javascript ">
function GoShowDetail(btn)
{
var i = btn.nextSibling.value;
alert(i);
var tr = btn.parentElement.parentElement.nextSibling;
tr.style.display = (i==1)? " ": "none ";
}
</script>
</HEAD>
<body MS_POSITIONING= "GridLayout ">
<form id= "Form1 " method= "post " runat= "server ">
<FONT face= "宋体 ">
<table>
<tr>
<td> 第一行 </td>
<td>
<input type= "button " value= "隐藏 " onclick= "GoShowDetail(this); "> <input id= "ff " name= "ff " type= "hidden " runat= "server " value= "2 ">
</td>
</tr>
<tr>
<td> 第二行
</td>
</tr>
</table>
</FONT>
</form>
</body>
</HTML>
然后在cs文件里面控制ff的值;最好用ViewState,这样确实比较麻烦,不过不用javascript,可以考虑在服务器端搞
------解决方案--------------------
最关键的一句是javascript是var i = btn.nextSibling.value;取得下一个控件;如果是datagrid模板列里面也没问题,就看LZ在cs文件里面怎么控制ff的命名和值了