1

1 つのテキスト ボックス (TextBox1) と 1 つのリンク ボタン (LinkBut​​ton1) を持つメイン ページ (default.aspx) があります。

LinkBut​​ton1 をクリックすると、jquery ui ダイアログ ボックスが開き、コンテンツがページ popup.aspx から読み込まれます (load メソッドを使用)。

Popup.aspx には 3 つのリンクボタンが含まれています。

リンクボタンの 1 つをクリックすると、リンクボタンのテキストが default.aspx に返され、TextBox1 に挿入されます。

解決策はありますか?

ソース DEFAULT.ASPX:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js" type="text/javascript"></script>
<link href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
    function OpenDialog() {
        var $dialog = $('<div></div>').load('./Popup.aspx').dialog({ autoOpen: false, modal: true, title: "Please select value", close: function (ev, ui) { $(this).dialog('close'); } });
        $dialog.dialog("open");
    }
</script>
</head>
<body>
    <form id="form1" runat="server">
<div>
    <asp:TextBox ID="TextBox1" runat="server" Enabled="False"></asp:TextBox>
    <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="OpenDialog(); return false;">Open selector</asp:LinkButton>
</div>
</form>
</body>
</html>

ソース POPUP.ASPX:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:LinkButton ID="LinkButton1" runat="server">Value 1</asp:LinkButton>
    <asp:LinkButton ID="LinkButton2" runat="server">Value 2</asp:LinkButton>
    <asp:LinkButton ID="LinkButton3" runat="server">Value 3</asp:LinkButton>
</form>
</body>
</html>
4

2 に答える 2

0

ここでのトリックは、トップ ウィンドウから要素を取得することです。これは、window.top.documentを次のように使用して行います。

jQuery("#ElementID", window.top.document)

次に、各ページからIDがどのようにレンダリングされ、各コントロールに静的モードを使用してそれを保持するかを知ることができないためClientIDMode="Static"、たとえば次のように記述します。

<asp:TextBox ID="TextBox1" ClientIDMode="Static runat="server" Enabled="False"></asp:TextBox>

たとえば、ダイアログから次のようにテキストをメイン ウィンドウに送信できます。

jQuery("#TextBox1", window.top.document).text(jQuery("#LinkButton1").text());
于 2013-01-16T19:27:23.040 に答える
0
$(document).on('click', '[id^=LinkButton]', function(){
    $('#TextBox1').text($(this).text());
});
于 2013-01-16T19:27:31.153 に答える