JS:
<script language="javascript" type="text/javascript">        function ControlDivNew() {
            var divObj = document.getElementById("divNew");
            
            if (divObj.style.display == "none") {
                divObj.style.display = "block";
                form1.txtPageCode.focus();
            } else {
                form1.txtSearchPageCode.focus();
                divObj.style.display = "none"
            }        }HTML:<div id="divNew" style="width: 100%; display:none" >
123
</div>服务器端按钮:
 <asp:Button ID="btnNew" runat="server"  Text="查询"    onclick="btnNew_Click"                 BorderStyle="None"></asp:Button>后台代码:
protected void btnNew_Click(object sender, EventArgs e)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "oper", "<script language='javascript' type='text/javascript' >ControlDivNew();</script>");
        }
问题: 由于点击按钮 回发调用 注册js,但此时由于回发 html也重置了,这样div的属性又是none了 ,请问有什么好的解决方案,我希望的效果就是 用服务器的按钮 注册js  ,点击 div展开 再点击关闭这样的!

解决方案 »

  1.   

    ClientScript.RegisterClientScriptBlock(this.GetType(), "oper", "<script language='javascript' type='text/javascript' >ControlDivNew();</script>");
      

  2.   

    你把状态记录到cookie里面,页面加载的时候进行判断
      

  3.   


    这个貌似也是不行的,以为会回发 ,回发的时候 html重载,div的属性又变成初始化的属性了!
      

  4.   

    <asp:HiddenField ID="HiddenField1" Value = "block" runat="server" />轻松点的就是可以通过添加隐藏域,然后在后台代码里可以对隐藏域的value进行更改,前台JS中你只需要读取隐藏域的value赋值给div层就可以了!
      

  5.   


    那么js只能在 onload事件中加载了 是吧!