我要做的是继承GridView并以编程方式将LinqDataSource嵌入其中。这样做的原因是我希望有一个通用的网格视图,它允许列和网格属性的标记定义,但实现了一个GetDataSourceEvent,它将传递sortExpression,pager页面索引和寻呼机行数,以进行有效的模型查询。后者将通过订阅DataSourceControl的Selecting事件来完成。
我遇到的问题是,如果我将LinqDataSource添加到UserControl,则无法找到DataSourceId。我尝试了OnInit和EnsureChildControls来创建LinqDataSource,但没有运气。我已经看到了一些如何通过继承gridview来创建自定义Pagers的示例,但我似乎无法为我的情况找到合适的事件。
任何人都可以指出我正确的方向尝试以编程方式添加DataSourceControl并将GridView DataSourceId分配给它吗?
答案 0 :(得分:0)
您可以创建一个接受数据源类型的公共方法。然后,在创建用户控件类的实例时,绑定到该方法。例如,如果您使用字符串列表作为数据源并且具有名为myUserControl的用户控件:
Partial Class user_controls_myUserControl
Inherits System.Web.UI.UserControl
Public Sub bindMyData(ByVal myDataSource As List(Of String))
'bind stuff here
End Sub
End Class
这将被称为:
dim myListOfString as new list(of String)
Me.myUserControl1.bindMyData(myListOfString)