3

< div> タグに Asp.net テキスト ボックスがあり、「btnReply」をクリックすると < div> が Jquery ダイアログに表示されるため、ユーザーはテキスト ボックスにアイデアを書き込んで「送信」ボタン (jquery ダイアログ ボタン) をクリックし、ポスト バックが発生しました。 .

しかし、サーバー側の asp.net テキスト ボックスの値は null です。なんで ?私のコードはここにあります:

     <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>
4

3 に答える 3

5

多くの検索の後、私はいくつかの理由があることを理解しています:

  1. 私はそれを解決できます **Jquery UI ダイアログには z-index スタイルが必要です ** 。つまり :

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

    そして jquery が必要です:

      $("#..").dialog(.....).parent().parent().appendTo($("form:first"));
    
  2. UpdatePanels を使用してからしばらく経ちましたが、部分的なポストバックでは、内部のコントロールの更新された値のみが送信されると思います。そのため、TextBox を UpdatePanel 内に移動するか、Javascript を使用して UpdatePanel 内の非表示のコントロールに、更新されるたびに TextBox のコンテキストを設定します。

  3. コード ビハインドで入力の値を取得し、サーバー コントロール メカニズム (textBox.Text) を介してそれらにアクセスするには、それらの状態 (および存在) を ViewState に永続化する必要があります。それらを JavaScript で構築しているため、それらの状態は永続化されません。それらの値を取得できる唯一の方法は、Request.Form コレクションを使用することです。

  4. この問題は、最良のヒントを述べています: jQuery Dialog-Postback but UpdatePanel does not get updated **

  5. コントロールを無効にするのが最善の問題です: asp:TextBox の値を取得する

于 2013-09-01T16:18:09.940 に答える
3

隠しフィールドの値を使用してテキストボックスの値を保存します

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

hid は非表示フィールドの ID です。

于 2013-08-30T10:47:01.693 に答える