1

それは私のコードです:

 <div id="AddFriendDiv" style="display: none">
        <asp:TextBox ID="FriendParamtxt" runat="server"></asp:TextBox>
        <asp:UpdatePanel ID="upd" runat="server">
        <Triggers>
        <asp:AsyncPostBackTrigger ControlID="SearchFriend_btn" EventName="Click" />
        </Triggers>
          <ContentTemplate>
                <asp:Button ID="SearchFriend_btn" runat="server" OnClick="SearchFriend_btn_Click" Value="Search" />
                <asp:Repeater ID="FriendRequestRepeater" runat="server">
                    <ItemTemplate>
                        <table border="1">
                            <tr>
                                <td>
                                    <img src='<%#Eval("PROFILE_PIC") %>' width="35px" height="35px" alt='<%#Eval("NAME") %>' />
                                </td>
                                <td>
                                    <asp:Label ID="Name_lbl" runat="server" Text='<%#Eval("NAME") %>'></asp:Label>
                                </td>
                                <td>
                                    <input type="hidden" id="requestFriendID_hf" /><input type="button" id="addFreind"
                                        value="Send Request" />
                                </td>
                            </tr>
                        </table>
                    </ItemTemplate>
                </asp:Repeater>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>

クライアント側 :

 function SendFriendRequest() {

        var dialogOption = { title: "<u>Add Friend</u>", width: 280, height: 140, modal: false, resizable: false, draggable: true,
            maxHeight: 340, autoOpen: true, closeOnEscape: true
        };
        var DialogExtendOptions = { "close": true, "maximize": false, "minimize": true, "dblclick": 'minimize', "titlebar": 'transparent' };

        $("#AddFriendDiv").dialog(dialogOption).dialogExtend(DialogExtendOptions);
       $("#AddFriendDiv").show();


    }

サーバ側 :

protected void SearchFriend_btn_Click(object sender, EventArgs e)
{

   DataTable frdrequest= new DataTable();
    int clientID =int.Parse( UserID.Value.ToString());
    if (FriendParamtxt.Text != "")
    {
        frdrequest = SQLHelper.GetAllClientByParam(FriendParamtxt.Text, clientID);
      if (frdrequest.Rows.Count > 0)
      {
          FriendRequestRepeater.DataSource = frdrequest;
          FriendRequestRepeater.DataBind();
      }
    }
}

SendFriendRequest は外部のタグから呼び出されていますが、メイン div がダイアログの場合にボタン クリック イベントが発生しないという問題がありますが、通常の div に変更すると正常に動作します。

4

3 に答える 3

8

問題は、jQuery UI がダイアログをフォームではなくボディに追加することです。ASP.Net コントロールは、機能するためにフォーム内にある必要がありますが、ありがたいことに、これは簡単に修正できます。jQuery を次のように変更します。

$("#AddFriendDiv").dialog(dialogOption)
  .dialogExtend(DialogExtendOptions)
  .parent().appendTo($("form:first"));
$("#AddFriendDiv").show();
于 2013-05-15T08:26:08.310 に答える
2

これはあなたを助けるでしょう

        var dialog = $("#divModal").dialog({
            autoOpen: false,
            height: 515,
            width: 900,
            modal: true,
            draggable: false,
            resizable: false
        });
        dialog.parent().appendTo(jQuery("form:first"));
于 2013-05-15T10:03:01.543 に答える
0

親愛なる友人 ajaxtoolkite を使用していて、updatepanel または scriptmanager を使用している場合、jquery はそれと競合するため、次の 2 つの方法を使用してコードを適切に機能させることができます。次のコードは問題を解決します。

    $(document).ready(function() {
// bind your jQuery events here initially
});

    var prm = Sys.WebForms.PageRequestManager.getInstance();

    prm.add_endRequest(function() {

// re-bind your jQuery events here

    });
于 2013-05-15T07:59:45.777 に答える