Я создал элемент управления RadGrid динамически для события Page_PreInit и добавил его в качестве заполнителя на странице. мой класс RadGridBuilder имеет метод Build ().
В моей RadGrid есть пользовательская кнопка, которая добавляется во время события ItemCreated, которое вызывается при создании RadGrid (Page_PreInit):
protected virtual void RdGridItemCreated(object sender, GridItemEventArgs e)
{
switch (e.Item.ItemType)
{
// other codes
case GridItemType.CommandItem:
{
var gridCommandItem = e.Item as GridCommandItem;
AddPdfButton(gridCommandItem);
break;
}
}
}
private void AddPdfButton(GridCommandItem gridCommandItem)
{
var pdfButton = CreateExportToPdfButton();
try
{
PageUtil.RegisterPostBackControl(pdfButton);
// this is the cell which contains the export buttons.
((Table) gridCommandItem.Cells[0].Controls[0]).Rows[0].Cells[1].Controls.Add(pdfButton);
}
catch
{
// LOG the error silently
}
}
}
private Button CreateExportToPdfButton()
{
var result = new Button();
result.ID = "btnExportToPdf";
result.Click += ExportToPdfButtonClick;
result.CssClass = "rgExpPDF";
result.CommandName = "ExportToPdfCustomCommand";
result.Attributes["title"] = "Export to Pdf";
return result;
}
private void ExportToPdfButtonClick(object sender, EventArgs e)
{
// custom code
}
Значок Pdf отображается, как и ожидалось, в RadGrid. При щелчке происходит обратная запись (и RadGrid, очевидно, заново генерируется в Page_PreInit снова), однако метод ExportToPdfButtonClick никогда не вызывается.
Почему это не называется? как это исправить? это может быть связано с состоянием просмотра и состоянием управления?
Спасибо