我正在将搜索功能移到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设置样式并使其显示:none,但这似乎是解决问题的一种肮脏方式。
如果没有绑定到控件事件,是否有办法调用服务器端方法? 请注意,我不需要ajax回调方法,我需要实际上有一个回发。
答案 0 :(得分:1)
在客户端上使用它:__doPostBack("SearchDialog", "");
并在服务器上使用:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack && Request.Form["__EVENTTARGET"] == "SearchDialog")
{
//your code here
}
}