jquery下拉选择器AutoPostback

在jQuery中有任何方法可以区分回发下拉和非回发下拉(ASP.NET 3.5):

$('select').change(function(e) { //something like this if ($(this).attr('AutoPostback') == true) { //do something here } else { //do something else } 

认为必须从脚本调用服务器端function来确定AutoPostback。

通常,要回发的下拉列表将包含一个onchange属性,其中包含类似“__doPostBack”的内容,尽管其中还会有其他内容。

所以你可以做类似下面的事情,我没有测试,所以希望没有错别字

 $('select[onchange*="__doPostBack("]').change(...your handler for postbacking control...); $('select:not([onchange*="__doPostBack("])').change(...your handler for non-postbacking control...); 

AutoPostBack属性IIRC是服务器端。 换句话说,它由服务器解析,实际上从未实际进入浏览器。

代码有点冗余,但你可以给它一个cssClass =“AutoPostback”,然后通过jQuery检查它

我稍微迟到了这个post,但沿途的其他人也许会觉得这很有用。

我也有问题让jquery ui selectmenu做回发。 之前的评论让我非常接近但是当我运行它时出现了错误。 这可能是由于我使用的版本不同,但我的最后修复是将回发附加到更改事件有点不同。 我不得不将字符串传递给回发调用而不是实际的元素。 第一个参数是select元素的ID,第二个参数是应该调用的服务器端函数的名称。

 $("#cboStateFilter").selectmenu({ change: function (event, ui) { __doPostBack("cboStateFilter", 'cboStateFilter_SelectedIndexChanged'); } });