2013-08-30 52 views
3

我有Asp.net文本框在< div>標籤,其中點擊「btnReply」,< div> showes由jquery對話框,所以用戶寫想法在文本框,然後單擊「發送」按鈕(jQuery對話框按鈕)併發回發生的事件。asp.net文本框的值爲空時發佈與JQuery對話框發生博克

但服務器端的asp.net文本框值爲空。爲什麼? 我的代碼是在這裏:

 <div id="ReplyDiv" style="display:none;"> 
      <asp:TextBox ID="txtReply" runat="server" Textmode="MultiLine"/> 
    </div> 

    <input type="button" id="btnReply" onclick="javascript:retuen ShowReplyDialog();"/> 

     <asp:Button ID="AspBtnReply" runat="server" OnClick="AspBtnReply_Click" class="hidden"/> 

    /*-----Jquery script----*/ 
    <script type="text/javascript"> 
     function ShowReplyDialog() 
     { 
     $("#ReplyDiv").dialog({ 
      width: 580,   
      buttons: { 
       "Close": function() { $(this).dialog("close");} , 
       "Send" : function() { 
        //----Call Asp.net server method here 
        $("#<%=AspBtnReply.ClientID %>").click(); 
       }      
      } 
     }).parent().appendTo($("form:first")); 
     } 
    </script> 

回答

3

經過大量的搜索我明白有一些原因:

  1. 我能解決它** jQuery用戶界面對話框需要的z-index風格**。我的意思是:

    <style> 
    .ui-widget-overlay 
    { 
        z-index:0; 
    } 
    </style> 
    

    而且需要的jQuery:

    $("#..").dialog(.....).parent().parent().appendTo($("form:first")); 
    
  2. 它已經,因爲我用的UpdatePanel一段時間,但我相信,在局部回傳他們只發送更新的值,在其內部控制。因此,在UpdatePanel中移動TextBox,或者可以使用Javascript在UpdatePanel內部使用TextBox的上下文隨時更新隱藏的控件。項目

  3. 要獲取代碼中輸入的值並訪問他們通過服務器控件機制(textBox.Text),他們的狀態(和存在)需要被保留在ViewState中。由於您正在使用JavaScript構建它們,因此它們的狀態不會保留,您可以通過使用Request.Form集合來獲取它們的值。

  4. 這個問題時說最好的提示:jQuery Dialog-Postback but UpdatePanel doesn't get updated **

  5. 對於禁用的控制是最好的問題: Retrieving the value of a asp:TextBox

3

使用隱藏字段的值來存儲文本框的值

var Des = $("#txtDesc").val(); 
$("#hid").val(Des); 

HID是隱藏字段的ID。

+0

嗨李治廷,我可以解決的,但我想知道爲什麼在文本框中價值不傳遞給服務器。我也提出了你的解決方案,但我的答案完全不是你說的。謝謝 – Ali

+2

運行時Jquery UI刪除所有文檔對象,並將它放在DOM的這一邊,此時沒有任何對象可供您訪問。這就是所有Jquery UI插件的默認行爲。所以你必須承擔一些如何改變你使用它的方式。 –

相關問題