在jQuery中有任何方法可以区分回发下拉和非回发下拉(ASP.NET 3.5):
$('select').change(function(e)
{
//something like this
if ($(this).attr('AutoPostback') == true)
{
//do something here
}
else
{
//do something else
}
认为必须从脚本调用服务器端功能来确定AutoPostback。
答案 0 :(得分:4)
通常情况下,要回发的下拉列表将包含一个onchange属性,其中包含“__doPostBack”,但其中还会包含其他内容。
所以你可以做类似下面的事情,我没有测试过,所以希望没有拼写错误
$('select[onchange*="__doPostBack("]').change(...your handler for postbacking control...);
$('select:not([onchange*="__doPostBack("])').change(...your handler for non-postbacking control...);
答案 1 :(得分:0)
AutoPostBack属性IIRC是服务器端。换句话说,它由服务器解析,实际上从未实际进入浏览器。
代码有点冗余,但你可以给它一个cssClass =“AutoPostback”,然后通过jQuery检查它
答案 2 :(得分:0)
我稍微迟到了这个帖子,但沿途的其他人也许会觉得这很有用。
我也遇到了让jquery ui selectmenu进行回发的问题。之前的评论让我非常接近但是当我运行它时出现了错误。这可能是由于我使用的版本不同,但我最后的解决方法是将回发附加到更改事件有点不同。我不得不将字符串传递给回发调用而不是实际的元素。第一个参数是select元素的ID,第二个参数是应该被调用的服务器端函数的名称。
$("#cboStateFilter").selectmenu({
change: function (event, ui) { __doPostBack("cboStateFilter", 'cboStateFilter_SelectedIndexChanged'); }
});