Skip to main content

How to find the control that caused the Page Submit in FormLoad event - ASP.NET

This function would be useful when someone needs to identify button clicks outside the respective button event
Changing the selected object type, it's possible to find other controls as well.


public static System.Web.UI.Control GetPostbackControlObject(System.Web.UI.Page pageReference)
{
System.Web.UI.Control returnObj = null;
if (pageReference.IsPostBack)
{
//- Find postback control's Name in form __EVENTTARGET field...
object eventTarget = pageReference.Request.Form["__EVENTTARGET"];
//- if __EVENTTARGET has a value (not null or an empty string), return the control with that name
if ((eventTarget != null) && eventTarget.ToString().Trim().Count()>0)
{
return pageReference.FindControl(eventTarget.ToString().Trim());
}
//- That is not working if the postback is trigered by a standard Buttons.
// Get the control from the Page.Form collection.
foreach (string keyName in pageReference.Request.Form)
{
System.Web.UI.Control selectedControl = pageReference.FindControl(keyName);
// Found & a Button
if ((selectedControl != null) && (selectedControl is Button))
{
returnObj = selectedControl;
break;
}
}
}
return returnObj;
}

Comments

Popular posts from this blog

Enable Apache in XAMPP at Windows 7

1. Problem detected! Port 80 in use by "Unable to open process" with PID 4! Apache WILL NOT start without the configured ports free! You need to uninstall/disable/reconfigure the blocking application or reconfigure Apache and the Control Panel to listen on a different port 2. Error: Apache shutdown unexpectedly. This may be due to a blocked port, missing dependencies, improper privileges, a crash, or a shutdown by another method. Press the Logs button to view error logs and check the Windows Event Viewer for more clues If you need more help, copy and post this entire log window on the forums If you have come across either one of errors, mostly issue could be port 80 is used by another service or combination of services or a tool. If you are not a developer, you don’t have development software installed and Skype is installed; first go to  “Tools-> Option -> advanced -> connection” and check port 80 is used there? For developer it’s quite impressive (if the...

Close Parent window from nested iframe child pages : javascript;

for : IE and FireFox 1: <script language="javascript" type="text/javascript"> 2: function CloseAll() { 3: if (top === self) { 4: alert('not iframed'); 5: if (navigator.appName == "Microsoft Internet Explorer") { 6: self.close(); 7: } 8: else { 9: var respnseVal = confirm("Do you wan't to close this window"); 10: if (respnseVal) { 11: netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); 12: window.open('', '_self'); 13: window.close(); 14: } 15: } 16: } 17: else { 18: alert('iframed'); 19: if (navigator.appName == "Microsoft Internet Explorer") { 20: top.close(); 21: } 22: else { 23: var respnseVal = confirm("Do you w...