jquery下拉选择器AutoPostback
在jQuery中,有什么方法可以区分postbacking下拉菜单和非postbacking下拉菜单(ASP.NET 3.5):
$('select').change(function(e)
{
        //something like this
        if ($(this).attr('AutoPostback') == true) 
        { 
           //do something here  
        } 
       else  
        { 
          //do something else 
        }  
认为必须从脚本调用服务器端函数来确定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检查
我迟到了一点,但也许其他人会觉得这很有用。
我也有问题让jquery ui selectmenu做回发。 之前的评论让我非常接近,但是当我运行它时出现了错误。 这可能是由于我使用的版本不同,但我的最终解决方法是将回发附加到更改事件中,方法稍有不同。 我不得不将字符串传递给回发调用,而不是实际的元素。 第一个参数是select元素的ID,第二个参数是应该调用的服务器端函数的名称。
$("#cboStateFilter").selectmenu({
    change: function (event, ui) { __doPostBack("cboStateFilter", 'cboStateFilter_SelectedIndexChanged'); }
});
