我使用Loading a partial view in jquery.dialog作为引用,以便在对话框中打开部分视图。这对我起了几次作用,但现在我试图使用相同的设置,它只是不起作用.
我有两个问题想问.
对话框打开后,页面被重定向到名为ActionMethod的页面,后者返回部分视图。所以我最终得到了一个没有样式的页面,显示了正确的信息。下面是代码:
public ActionResult Compare()
{
var user = _helper.GetUserFromSession(HttpContext.User.Identity.Name);
var items = user.WatchList.ToList();
var viewModel = Mapper.Map<IList<Item>, List<IndexItem>>(items);
return PartialView(viewModel);
}下面是jQuery代码:
$('#compareItemsDialog').dialog({
autoOpen: false,
width: 850,
height: 600,
draggable: false,
dialogClass: "compareDialog",
title: 'Compare',
open: function (event, ui) {
$(this).load("/WatchList/Compare");
}
});
$('#watchListCompareLink').click(function () {
$('#compareItemsDialog').dialog('open');
});我只是不明白为什么这会引起问题..。我有其他的部分视图是完全相同的设置,但他们是完美的工作!
更新:上面的内容已经解决了。现在我只需要一个下面解释的问题的答案..。
如何在调用对话框的同时传递自定义选项/数据?我在想,也许我可以做一些像$('#compareItemsDialog').dialog('open', { id = someVar });这样的事情,那么这有可能吗?
发布于 2011-05-10 21:39:23
问题:如何在调用对话框的同时传递自定义选项/数据?
而不是直接调用jQuery对话框,而是将此功能封装在您自己的自定义javascript函数中,该函数接受您的自定义数据。然后在那里有您的javascript分支逻辑。
发布于 2011-05-10 19:18:35
我看不到在jQuery UI文档中,您可以向对话框传递一个open:选项。这是来自较早版本的jQuery UI吗?
我经常将部分视图加载到对话框中,但我所做的有点不同(相反,有点)。
我首先向服务器发送ajax请求以获得部分视图。然后在成功的情况下,替换对话框的HTML内容,最后打开它。
$.ajax({
url:"/action/param",
success:function(data){
$("#Dialog > some_inside_div").html(data);
$("#Dialog").dialog("open");
}
});至于你的第二个问题。我不知道如何将自定义数据传递到对话框中。在构建对话框时,options变量会得到扩展,但是您必须将自己的逻辑放入其中,才能对数据进行实际操作。您可以获得UI框架的非缩小源代码,并尝试自己扩展它。
发布于 2011-05-10 20:53:19
如何在调用对话框的同时传递自定义选项/数据?
您可以使用jQuery数据将数据传递给对话框。
http://api.jquery.com/jQuery.data/
下面是关于如何使用的详细示例:
https://stackoverflow.com/questions/5953625
复制相似问题