0
比方说,我有一个GridViewEx
类宣布扩展GridView
。在该课堂内部,我有一个名为GetDataPage
的代表。所以它看起来像这样:GridView委托问题在ASP.Net
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.
我猜猜它不可能通过标记来设置,但我只是想知道。代码中设置委托很容易,但我只是想学习新的东西。谢谢你的帮助。
只是一个问题,但您提供的委托对象要求其构造函数的参数?也许在该地区周围的某些事情正在造成你的问 – 2010-07-02 16:38:16
我不认为构造函数会影响它。我认为可能只是用标记来设置委托,但我想我会问这里只是为了确定:)。 – dcp 2010-07-02 16:47:21
首先,如果您在标记中定义它的值,那么使用viewstate是没有意义的。 如果您正在动态设置值,则使用Viewstate,例如将它们与数据源绑定。 你在哪里调用GetDataPage? – Jeroen 2010-07-02 18:33:10