从jQuery对话框调用服务器端方法
问题描述:
我正在将我的搜索功能移到jquery对话框中。从jQuery对话框调用服务器端方法
我原本
使用下面的搜索框位于由姓
搜寻: 搜索
我已经添加了以下javascript:
var dlgSearch = $("#SearchDialog").dialog({
autoOpen: false,
zIndex: 9999,
bgiframe: true,
resizable: false,
width: 450,
modal: true,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
'Search':
function() {
<%= Page.ClientScript.GetPostBackEventReference(btnSearch, String.Empty) %>;
},
Cancel: function() {
$(this).dialog('close');
}
}
});
dlgSearch.parent().appendTo($("form:first"));
这工作正常。但是现在我将2个搜索按钮呈现给浏览器。原始的一个呈现与标记,并与jQuery对话框实例化呈现的按钮。我想摆脱使用服务器端标记呈现的一个,只使用jQuery的一个。
问题是,如果我删除标记,GetPostBackEventReference调用时会出现编译错误,因为控件btnSearch不再存在。
我可以一直使用CSS来设计btnSearch,并使其显示:无,但这似乎是解决问题的肮脏方法。
没有一种方法来调用服务器端方法,而不是将它绑定到控件事件? 请注意,我不想要ajax回调方法,我需要实际上有一个回发。
答
在客户端使用此:__doPostBack("SearchDialog", "");
,这对服务器:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack && Request.Form["__EVENTTARGET"] == "SearchDialog")
{
//your code here
}
}