на основе моих знаний не представляется возможным выполнить события, когда динамически рендеринг элементов управления. Но у меня есть трюк в создании пользовательских элементов управления, которые работают.
Я использую функцию для визуализации пользовательского элемента управления, который осуществляет физический путь управления пользователями и список свойств. Я определяю специальное свойство в пользовательском элементе управления, которое может быть как метод, и когда я устанавливаю его, запускайте свой собственный код. Это Рендер функции:
public static string RenderUserControl(string path, List<KeyValuePair<string, object>> properties)
{
Page pageHolder = new Page();
UserControl viewControl = (UserControl)pageHolder.LoadControl(path);
viewControl.EnableViewState = false;
Type viewControlType = viewControl.GetType();
foreach (var pair in properties)
{
PropertyInfo property = viewControlType.GetProperty(pair.Key);
if (property != null)
{
property.SetValue(viewControl, pair.Value, null);
}
}
HtmlForm f = new HtmlForm();
f.Controls.Add(viewControl);
pageHolder.Controls.Add(f);
StringWriter output = new StringWriter();
HttpContext.Current.Server.Execute(pageHolder, output, false);
return (output.ToString());
}
В пользовательском элементе управления, что вам нужно, чтобы сделать определить свойство, например, RunMyCode
установить любое свойство, которое вы хотите, и, наконец, добавить специальное свойство, которое вы определяете.
data.Add(new KeyValuePair<string, object>("RunMyCode", SomeDataOrNothing));
В случае визуализации пользовательского элемента управления, вы можете проверить значение RunMyCode
имущества и, если он установлен, вручную вызвать методы, события, которые обычно поднимают.
Вы можете добавить теги ** C# ** и ** Asp.Net ** в свои теги, чтобы получить больше читателей. (И я должен проверять даты публикации, прежде чем комментировать 2-летние темы. Я просто просматривал оставшиеся без ответа вопросы). –