Допустим, у меня объявлен класс GridViewEx
, который расширяет GridView
. И внутри этого класса у меня объявлен делегат с именем GetDataPage
. Так это выглядит так:
public class GridViewEx : GridView
{
public delegate object GetDataPageDelegate(int pageIndex, int pageSize, string sortExpression,
IList<FilterItem> filterItems);
[Browsable(true), Category("NewDynamic")]
[Description("Method used to fetch the data for this grid")]
public GetDataPageDelegate GetDataPage
{
get
{
return ViewState["pgv_getgriddata"] as GetDataPageDelegate;
}
set
{
ViewState["pgv_getgriddata"] = value;
}
}
// ... other parts of class omitted
}
Это работает нормально и делает то, что я хочу. Но то, что я хотел бы сделать - это разметка для GridViewEx, возможность установить этот делегат, например, так:
<div style="margin-top: 20px;">
<custom:GridViewEx ID="gridView" runat="server" SkinID="GridViewEx" Width="40%" AllowSorting="true"
VirtualItemCount="-1" AllowPaging="true" GetDataPage="Helper.GetDataPage">
</custom:GridViewEx>
</div>
Однако я получаю эту ошибку:
Error 1 Cannot create an object of type 'GUI.Controls.GridViewEx+GetDataPageDelegate' from its string representation 'Helper.GetDataPage' for the 'GetDataPage' property.
Я думаю, невозможно установить его с помощью разметки, но я просто удивился. Достаточно легко установить делегата в коде, но я просто пытался узнать что-то новое. Спасибо за любую помощь.