我有一些代码,用户选择通过jquery突出显示的'Package'。如何点击此div中的asp radiobutton并执行其“OnCheckChanged”事件?
$(document).ready(function () {
$(".package-container").click(function (event) {
$(this).closest('.radio-group-row').find('.package-title').removeClass('highlight');
$(this).closest('.radio-group-row').find('.package-footer').removeClass('highlight');
$(this).find('input:radio').prop('checked', true).click();
$(this).find('.package-title').addClass('highlight');
$(this).find('.package-footer').addClass('highlight');
});
});
我已经使用onclick()
方法尝试了此代码,但是它会不断加载网络标签中的页面,Chrome会不断发布页面并最终在没有刷新的情况下延迟。
我所讨论的radiobutton是这样的:
<EclipseUI:CustomRadioButton runat="server" ID="RadioButton_Item" ClientIDMode="AutoID" ToolTip='<%# Eval("SystemValue") %>' GroupName="Package" OnCheckedChanged="RadioButton_Package_OnCheckedChanged" AutoPostBack="True"/>
如何让jquery执行此radiobutton的oncheckedchange事件?
修改
$(document).ready(function () {
$(".package-container").click(function (event) {
$(this).closest('.radio-group-row').find('.package-title').removeClass('highlight');
$(this).closest('.radio-group-row').find('.package-footer').removeClass('highlight');
$(this).find('input:radio').prop('checked', true).click();
$(this).find('.package-title').addClass('highlight');
$(this).find('.package-footer').addClass('highlight');
});
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function (event) {
var currPackage = $("#HF_Package").val();
$("#" + currPackage).closest('.radio-group-row').find('.package-title').removeClass('highlight');
$("#" + currPackage).closest('.radio-group-row').find('.package-footer').removeClass('highlight');
$("#" + currPackage).find('input:radio').prop('checked', true);
$("#" + currPackage).find('.package-title').addClass('highlight');
$("#" + currPackage).find('.package-footer').addClass('highlight');
});
我的完整jquery代码如下所示。后一部分用于回发以确保突出显示所选包,我从隐藏字段中获取此值并找到该值的div即包。
答案 0 :(得分:1)
在更新面板中,您的DOM元素将替换为从异步回发返回的内容,以便重置事件绑定。
您需要在2个事件上附加事件处理程序:
(function($){
var bindEvents = function(){
// bind events here;
};
// initial load
$(document).ready( bindEvents);
// every async load by update panel
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(bindEvents);
})(jQuery);
触发回发,尝试添加按钮(如果你不显示它,你可以用css隐藏它(显示:无))然后将该按钮添加为updatepanel async trigger并调用 _dopostback并传递该按钮ID
__doPostBack('<%= TheButton.ClientID %>', '');