我需要一种简洁、干净的方式来在jquery mvc (+/- asp.net或js)中实现这一点?
用户单击webform A中的元素;Webform B弹出;用户与webform B交互;在关闭webform B时,可能通过提交按钮,webform A中的源元素将更新为webform B中的值
谢谢。
发布于 2009-02-07 12:52:29
使用DIV,我可能会在页面上呈现一个ASP.NET,最初是隐藏的,如果内容依赖于在初始页面上选择的值,可能会通过AJAX呈现。我会使用jQuery UI对话框插件来弹出对话框。该对话框可以包含提交回服务器的表单。您还可以使用对话框的onclose处理程序从对话框中的输入复制值,以便在页面的其余部分使用。如果通过AJAX填充对话框,则可以让服务器生成HTML --例如,通过呈现部分视图并返回它--或者返回json并在浏览器中动态生成对话框。
发布于 2009-02-07 13:16:08
我求助于使用cookie。我发现这是唯一可靠的方法。我使用GrayBox作为我的对话框,所以我在对话框中有一个如下所示的函数:
function selectValue(id, name) {
SetCookie("_someuniqueprefix_RetID", id);
SetCookie("_someuniqueprefix_RetValue", name);
parent.parent.GB_CURRENT.hide();
}
然后,在我的调用页面中,我启动了一个对话框,它在GrayBox中显示了一个部分:
$(function() {
var selectUrl = '/_somecontroller/Select';
// attach a method to the chooseButton to go and get a list of
// contact persons to select from
$("#chooseButton").click(function() {
GB_showCenter('Select My thing', selectUrl, 500, 620, function() {
var id = GetCookie("_someuniqueprefix_RetID");
var value = GetCookie("_someuniqueprefix_RetValue");
DeleteCookie("_someuniqueprefix_RetID", "/", "");
DeleteCookie("_someuniqueprefix_RetValue", "/", "");
$("#MyID").val(id);
$("#MyName").val(value);
});
});
});
此外,您还需要从web上获取用于SetCookie和GetCookie的函数
希望这能有所帮助
发布于 2009-02-07 16:28:06
您可以在弹出窗口中使用javascript通过window.opener调用opener上的函数。因此,当用户单击submit按钮时,您的弹出窗口可以调用父页面上的函数来传回数据。
我不确定您的需求是什么,但是IMO使用ajax来做这件事听起来有点夸张。如果您只需要将弹出webform中的一些表单数据传递给opener webform,那么就不需要调用服务器了。
https://stackoverflow.com/questions/523680
复制相似问题