2011-09-27 52 views
0

後的變化:Hide div on clientside click獲取變量和保持這一問題與回發

我遇到的問題是,經過從asp.net回發事件發生的onClick任何客戶方的變化做出重置我怎能客戶端更改我正在做。

第二個問題如何從後面的代碼中獲取變量並將其傳遞到我的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事件導致像它應該回傳,在這occassion它會檢查,如果用戶在選擇用戶名可用。

如果它可用顯示一個勾號,如果它不是錯誤。

我得到了錯誤的工作,並試圖編程客戶端的刻度。

所以OnClientClick我可以在一些文本和勾號之間切換。所以,我需要:

  • 從代碼獲取布爾結果背後
  • 回發保持打勾後(如果用戶名可用)

我幾乎有,但不能完全弄清楚的最後兩個指出。

+1

您需要使用AJAX。 – SLaks

+3

請不要在標題中加入「C#Asp.Net Javascript」之類的東西。這就是標籤的用途。如果在開始談論之前必須忽略前三個單詞,您只能成功地使您很難理解您的標題。 –

+0

所以我在代碼周圍添加了updatepanel,這會停止實際的回發並創建部分回發,所以現在我只能在代碼後面進行切換? – Anicho

回答

1

如果你在你的頁面上,使用一個UpdatePanel,並假定DIV您試圖切換的內容在控件之外,您可以隨時在部分回傳中注入JavaScript:

就像例如在您的按鈕的點擊事件上執行部分回發打電話給ScriptManager.RegisterClientScriptBlock() - >How to retain script block on a partial postback?

或者,您可以附加一個結束請求處理程序。這是一些JavaScript應該在部分回發後運行。 - >ASP.NET Register Script After Partial Page Postback (UpdatePanel)

+0

我不需要做更多的事情,然後使用UpdatePanel,我之前沒有這樣做。謝謝您的回答。 – Anicho

0

這兩個問題的答案都在於檢查從後面的代碼發送的布爾值。

1-----.in代碼隱藏C#

保護無效的Page_Load(對象發件人,發送System.EventArgs) {

VAR linkbtn =(按鈕)Page.FindControl(「lbtnDiv1 「);

linkbtn .Attributes。添加(「onClick」,「Show_Hide_Display('」+ parameter +「')」);

}

2 -------改變你的JavaScript

功能Show_Hide_Display(參數)

{

如果(paramater == '真'){

----你的邏輯---

}

其他

{

----你的邏輯

}

}