Brij
Существуют различные механизмы для различных элементов управления обратной связью.
Выше один будет работать для флажков, выпадающих списков, кнопок ссылок и т. д., Это не работает для элементов управления кнопками.
Для элементов управления button, если вы посмотрите на то, как серверные элементы управления отображаются в виде HTML, вы увидите, что кнопки не вызывают функцию JavaScript __doPostBack, поэтому __EVENTTARGET никогда не устанавливается. Вместо этого кнопки отображаются в виде простых тегов input type=“submit”.
Поскольку кнопка (или ввод) является причиной отправки формы, она добавляется к элементам коллекции форм вместе со всеми другими значениями из отправленной формы.
Таким образом, вы можете найти элемент управления обратной связью следующим способом
public static Control GetPostBackControl(Page page)
{
Control control = null;
string ctrlname = page.Request.Params.Get("__EVENTTARGET");
if (ctrlname != null && ctrlname != string.Empty)
{
control = page.FindControl(ctrlname);
}
else
{
foreach (string ctl in page.Request.Form)
{
Control mycontrol = page.FindControl(ctl);
if (c is System.Web.UI.WebControls.Button)
{
control =mycontrol ;
break;
}
}
}
return control;
}
Надеюсь, это решит вашу проблему.