0

我想做的是继承一个 GridView 并以编程方式将一个 LinqDataSource 嵌入其中。这样做的原因是我想要一个通用的网格视图,它允许对列和网格属性进行标记定义,但它实现了一个 GetDataSourceEvent,它将传递 sortExpression、寻呼机页面索引和寻呼机行数以进行有效的模型查询。后者将通过订阅 DataSourceControl 的 Selecting 事件来完成。

我遇到的问题是,如果我将 LinqDataSource 添加到 UserControl,则找不到 DataSourceId。我尝试了 OnInit 和 EnsureChildControls 来创建 LinqDataSource,但没有运气。我已经看到了一些关于我们如何通过继承 gridview 创建自定义寻呼机的示例,但我似乎无法找到适合我情况的事件。

谁能指出我尝试以编程方式添加 DataSourceControl 并将 GridView DataSourceId 分配给它的正确方向?

4

1 回答 1

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)
于 2013-03-05T17:00:41.780 回答