1

one.aspx と two.aspx という 2 つの aspx ページがあり、link.js という名前の JavaScript ファイルがあります。

ここで、javascript ファイルを中間として使用して、この 2 つの aspx ページ間で通信する必要があります。

one.aspx ファイルには ModalPopupExtender があり、そのパネルのコンテンツは two.aspx、つまり "one.aspx" に含まれています。

<html>
<head>    
<script type="text/javascript" src="link.js"></script>

<script type="type="text/javascript">
   function test(){
     var str=callPopup();
     document.getElementById('pnlPopUp').innerHtml = str;
   }
</script>
</head>
<body>
<ajaxToolkit:ModalPopupExtender ID="popup1" runat="server" TargetControlID="btnOK" CancelControlID="btnCancel" PopupControlID="pnlPopUp"></ajaxToolkit:ModalPopupExtender>

<asp:Panel ID="pnlPopUp" runat="server"></asp:Panel>

  </body> 
</html>

"two.aspx" で:

<html>
  <head>
    <script type="text/javascript" src="link.js"></script>
   </head>
  <body>
<asp:Panel ID="pPanel1" runat="server">
    <table>
        <tr>
            <td>
                <p>test</p>
            </td>
            <td>
                <asp:Button ID="BtnTest" runat="server" Text="Click" OnClientClick="javascript:alert('hello world..!'); return false;" />
            </td>
        </tr>
    </table>
</asp:Panel> </body> </html>

link.js で:

function callPopup() {
    var s = document.getElementById('pPanel1').innerHtml;
    return s;
}

one.aspx から callPopup() を呼び出すことはできますが、two.aspx ページからコンテンツを取得できません。私を助けてください。

前もって感謝します。

4

2 に答える 2

0

これを実現する2つの方法を紹介します。

  1. SignalRを使用して、複数のクライアントにブロードキャストします。https://github.com/SignalR/SignalRで詳細を読む

  2. (より低レベル。SignalRは通常、これらすべてを処理します)

Ajaxを使用して関数サーバー側を呼び出してみてください:http ://www.w3schools.com/ajax/default.asp 。次に、サーバー側と呼ばれる関数を出力ソースに書き込むことができます。いくつかの例:ファイル、セッション、Cookie。

次に、他のWebページがAjaxを介して同じ出力(ファイル、セッション、またはCookie)ソースから常に読み取るようにします。

于 2012-08-06T05:31:09.490 に答える
0

アーキテクチャが正しいことを確認しますか?two.aspxが必要な理由は本当にありますか?one.aspxですべてを実行することはできませんか?

過去にAjaxToolkitを使用したことがあるので、現代のWeb開発でAjaxToolkitを使用する正当な理由を考えるのに苦労しています。http://knockoutjs.com/またはBackboneを見たことがありますか?彼らは本当に一見の価値があります。

私はこれがあなたの質問自体に答えないことを知っています、私はただあなたを苦痛の世界から救おうとしています。

于 2012-08-07T18:03:28.183 に答える