ObjectDataSource SelectMethod
Я пытаюсь вызвать функцию, используя SelectMethod ObjectDataSource.
<asp:ObjectDataSource runat="server"
ID="odsDocuments"
TypeName="ClassA"
SelectMethod="Documents.GetDocuments" />
Где "Documents" - это экземпляр другого класса в качестве открытого свойства в "ClassA", а "GetDocuments" - это функция в классе "Documents".
Я продолжаю получать сообщение о том, что функция не может быть найдена (очевидно, что функция существует, и нет проблем с уровнями доступа).
Любая идея, где я иду не так или этот синтаксис на самом деле невозможно с помощью этого метода?
2 ответа
Я не думаю, что ObjectDataSource поддерживает точечную запись; Я думаю, что ODS должен иметь метод непосредственно на объекте, указанном в типе. Однако я знаю, что вы можете за кулисами изменить базовый объект, который используется источником данных для вызова метода. Так что я имею в виду в одном из событий (я считаю, ObjectCreated
событие), вы можете изменить контекст, чтобы он указывал на объект Document, чтобы все оценивалось правильно.
Вы можете реализовать метод обертки в ClassA
, как это:
public object GetDocuments()
{
return Documents.GetDocuments();
}
И используйте источник данных следующим образом:
<asp:ObjectDataSource runat="server"
ID="odsDocuments"
TypeName="ClassA"
SelectMethod="GetDocuments" />