1

我有一个带有一个文本框 (TextBox1) 和一个链接按钮 (LinkBut​​ton1) 的主页 (default.aspx)。

单击 LinkBut​​ton1 时,会打开一个 jquery ui 对话框,其中包含从页面 popup.aspx 加载的内容(使用 load 方法)。

Popup.aspx 包含 3 个链接按钮。

单击其中一个链接按钮时,我希望将链接按钮文本传递回 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 回答