得到变量&回发后保持更改

时间:2011-09-27 15:32:04

标签: c# javascript asp.net html

此问题与:Hide div on clientside click

有关

我遇到的问题是,在asp.net的回发事件发生后,点击任何客户端更改,重置我如何保持客户端的更改。

第二个问题我如何从代码中获取变量并将其传递给我的javascript以执行比较。

HTML:

    <div runat="server" id="someDiv1" enableviewstate="true" >
        <asp:LinkButton OnClientClick="Show_Hide_Display()" 
                        ID="lbtnDiv1" 
                        runat="server" 
                        CausesValidation="true" 
                        OnClick="lbtn_onClickServer">
        </asp:LinkButton>
    </div>

    <div runat="server" class="tick" id="div2" style="display:none;" enableviewstate="true">
    </div>

Javascript:

<script type="text/javascript">

function Show_Hide_Display() {

    var div1 = document.getElementById("<%=someDiv1.ClientID%>");
    var div2 = document.getElementById("<%=div2.ClientID %>");

        if (div1.style.display == "" || div1.style.display == "block") {
            div1.style.display = "none";
            div2.style.display = "block";
        }
        else {
            div1.style.display = "block";
            div2.style.display = "none";
        }
}    

</script>

OnClick事件会导致回发,就像它应该的那样,在这个场合,它会检查用户是否选择了用户名。

如果可用则显示勾号,如果不是错误。

我得到了错误,我正在尝试在客户端编程。

所以OnClientClick我可以在一些文本和刻度之间切换。所以我需要:

  • 从背后的代码中获取bool结果
  • 回发后保持勾选(如果用户名可用)

我几乎在那里,但不能完全理解最后两点。

2 个答案:

答案 0 :(得分:1)

如果您在页面中使用UpdatePanel,并假设您尝试切换的div不在控件之外,则可以始终在部分回发上注入javascript:

例如在按钮的点击事件上,在部分回发上执行,调用ScriptManager.RegisterClientScriptBlock() - &gt; How to retain script block on a partial postback?

或者,您可以附加结束请求处理程序。这是一些应该在部分回发后运行的javascript。 - &GT; ASP.NET Register Script After Partial Page Postback (UpdatePanel)

答案 1 :(得分:0)

这两个问题的答案在于检查从后面的代码发送的布尔值。

1 -----。在代码隐藏c#

protected void Page_Load(object sender,System.EventArgs e) {

var linkbtn =(Button)Page.FindControl(“lbtnDiv1”);

linkbtn .Attributes.Add(“onClick”,“Show_Hide_Display('”+ parameter +“')”);

}

2 -------更改你的javascript

功能Show_Hide_Display(参数)

{

if(paramater =='true') {

----你的逻辑---

}

否则

{

----你的逻辑

}

}