Reputation: 1689
Is there a way to find out postback element in updatepanel using javascript?
I tried code below but args.get_postBackElement().id is undefined.
script>
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
try {
args.get_request().set_userContext(args.get_postBackElement().id);
}
catch (e) {
}
}
function EndRequestHandler(sender, args) {
try {
if (args.get_error() == undefined) {
var sName = args.get_response().get_webRequest().get_userContext();
if (sName == "btnDetails") {
//DoSomething();
}
else {
//DoSomethingelse();
}
}
}
catch (e) {
}
}
Upvotes: 0
Views: 2133
Reputation: 1689
args.get_postBackElement() returns null if control is inside update panel.
Try following properties to find out the element:
sender._postBackSettings.async - Detect whether the request is async.
sender._postBackSettings.asyncTarget - Gets the async postback control name
$("*[name='sender._postBackSettings.asyncTarget']").attr('id') - Gets the id of the async postback control name. sender._postBackSettings.asyncTarget should be replaced by the value
Upvotes: 1
Reputation: 2742
Try this
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
var postBackElementID;
function BeginRequestHandler(sender, args) {
try {
postBackElementID = args.get_postBackElement().id.substring(args.get_postBackElement().id.lastIndexOf("_") + 1);
}
catch (e) {
}
}
</script>
Upvotes: 0