2013-03-03 2 views
0

То, что я пытаюсь сделать, это наследовать GridView и встраивать LinqDataSource в него программно. Причина этого заключается в том, что я хочу иметь общий вид сетки, который позволяет определять разметку столбцов и свойств сетки, но реализует GetDataSourceEvent, который будет передавать индекс сортировки, индекс страницы пейджера и количество строк пейджера для эффективного запроса модели. Последнее будет сделано, подписавшись на событие Selecting DataSourceControl.asp GridView со встроенным LinqDataSource/ObjectDataSource

Проблема, с которой я сталкиваюсь, заключается в том, что если я добавлю LinqDataSource в UserControl, то DataSourceId не будет найден. Я попробовал OnInit и EnsureChildControls для создания LinqDataSource, но не повезло. Я видел несколько примеров того, как мы можем создавать пользовательские пейджеры, наследуя gridview, но я не могу найти подходящие события для своей ситуации.

Может ли кто-нибудь указать мне в правильном направлении, пытаясь добавить DataSourceControl программно и назначить ему GridView DataSourceId?

+1

Это asp.net вопрос , он не должен быть помечен как классический asp. – John

ответ

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) 
+0

. Весь смысл реализации заключается в использовании событий, лежащих в основе DataSourceControl/ObjectDataSource/LinqDataSource, и разрешении привязки к общему источнику данных List . Я хочу, чтобы иметь возможность выставить событие, которое может быть обработано для передачи в источнике данных. Это событие будет загружено с информацией о количестве строк для извлечения, смещении, порядке сортировки и т. Д. Так что шаблоны в сторону, меня в основном интересует, как я могу сохранить динамически созданный LinqDataSource. – mematei

Смежные вопросы