HtmlButton Bind onserverclick Событие из кода позади EventMethodName приходит из базы данных
Я использую C# Asp.Net, сценарий,
у меня есть GenericClass.cs
создавать динамические элементы управления в соответствии с записями в базе данных.
Для HtmlButton
контроль я хочу создать onserverclick
событие.
Но проблема, с которой я сталкиваюсь, заключается в том, что имя метода события происходит из базы данных, а событие с таким именем метода события уже создано в aspx.cs
файл
Теперь я должен связать это событие, используя имя метода события для управления, которое создается в моем GenericClass.cs
во время рендеринга.
Пример:
База данных
Таблица: Controls
ControlId ControlType Text
---------------------------------
1 TextBox NULL
2 HtmlButton Save
Таблица: Events
ControlId EventName EventMethodName
-----------------------------------------------
2 onserverclick hbtnSave_OnClick
GenericClass.cs
:
var btn = new HtmlButton();
btn.ServerClick += (EventMethodName Here) --> i.e hbtnSave_OnClick
Page.aspx
:
<%@ Register TagPrefix="cc" Assembly="SWeb" Namespace="SWeb.MyControls" %>
<cc:GenericClass runat="server" ID="idTest" />
Page.aspx.cs
protected void hbtnSave_OnClick(object sender, EventArgs e)
{
// My code already written
}
НОТА:
Я пробовал как ниже GenericClass.cs
(ничего не получалось):
btn.ServerClick += new EventHandler(ctrl.EventMethodName.ToString()); ///Syntax Error
btn.Attributes.Add("onclick", ctrl.EventMethodName);
btn.Attributes.Add("onclick", " if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(''); __doPostBack('hbtnSave_OnClick','' ");
__doPostBack('hbtnSave_OnClick','' ") ---> Here control needs ClientID after rendering in Page so i tried as:
__doPostBack(ctrl.ClientID,'') ---> Not working as ClientID changes after rendering in Page by parent hierarchy i.e 'ctl00$MainContent$hbtnSave'
//Here the parent Hierarchy may change for me so i can't hardcode!!!