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!!!

0 ответов

Другие вопросы по тегам