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" />
Другие вопросы по тегам