【发布时间】:2011-07-13 09:52:51
【问题描述】:
我在 default.aspx 页面中显示模态弹出窗口:
<a id="popup" href="../Popup/Keywords.aspx">edit</a>
jquery函数:
$(document).ready(function () {
$('a#popup').live('click', function (e) {
var page = $(this).attr("href")
var $dialog = $('<div></div>')
.html('<iframe style="border: 0px; " src="' + page + '" width="100%" height="100%"></iframe>')
.dialog({
autoOpen: false,
modal: true,
height: 450,
width: 'auto',
title: "Edit Employee",
buttons: {
"Close": function () { $dialog.dialog('close'); }
},
close: function (event, ui) {
__doPostBack('<%= grdReportKeywordsRefresh(report_id) %>', '');
}
});
$dialog.dialog('open');
e.preventDefault();
});
});
如何调用带有参数“report_id”的“grdReportKeywordsRefresh”方法对吗?
为什么Default.aspx页面的控件不显示在弹窗中?
report_id:
private String r_id;
public Int32 report_id
{
get { return r_id != null ? Convert.ToInt32(r_id) : 0; }
set { r_id = value; }
}
grdReportKeywordsRefresh 方法:
protected void grdReportKeywordsRefresh(int report_id)
{
grdKeywords.DataSource = conn.GetKeywordsByRepId(report_id);
grdKeywords.DataBind();
}
【问题讨论】:
-
这会在您渲染页面时调用函数。是你想要的吗?
-
你能发布 grdReportKeywordsRefresh 方法,或者至少描述一下它应该做什么? __doPostBack 的第一个参数应该是控制您要运行的操作的 ID。这可以是例如按钮等。或者您可以添加一些字符串并在页面生命周期(即在 page_load 中)检查此值(Page.Request("__EVENTTARGET"))并基于此运行您的代码。这有帮助吗?
-
@Ales:此方法刷新 GridView(我将其添加到问题中)。你能告诉我你的替代解决方案的例子吗?
-
@Ales:不,我不是。我有没有 AJAX 扩展的 VS2005 :(
-
我已经相应地改变了我的答案
标签: c# jquery asp.net jquery-ui