У меня есть ObjectDataSource
с правильными настройками SelectMethod
и SelectParameters
. Источник данных связан с представлением сетки, которое успешно отображает данные при загрузке страницы.
Мне нужна возможность перезапустить метод Select
, определенный ObjectDataSource
, для хранения в переменной и манипулирования элементами в ней. Проблема, с которой я постоянно сталкиваюсь, заключается в том, что вызов метода .Select()
всегда возвращает 0 строк, несмотря на то, что он правильно заполняет сетку.
Есть ли причина, по которой я не могу вручную перезапустить метод Select()
для источника данных объекта?
Обновление 2:
Вот как я могу настроить ObjectDataSource
:
myObjectDataSource.TypeName = typeof(MyDataAccessObject).ToString();
myObjectDataSource.SelectMethod = "GetBy" + stringVariable;
myObjectDataSource.SelectCountMethod = "GetCountBy" + stringVariable;
myObjectDataSource.EnablePaging = true;
Обновление 1:
Я запускаю Select()
по событию OnClick
кнопки ссылки:
protected void LinkButton1_Click(object sender, EventArgs e)
{
SetupDataSource(); // populates the objSource's SelectMethod, SelectParameters and TypeName etc.
var items = objSource.Select();
int count = items.Count(); // returns 0;
}
Объект ObjectDataSource настроен (установлены параметры SelectMethod и SelectParameters) в событии Page_Load
.
ObjectDataSource
определение:
<asp:ObjectDataSource ID="objSource" runat="server" EnablePaging="True" SortParameterName="sortExpression" ></asp:ObjectDataSource>
GridView
определение:
<asp:GridView
ID="myGridView"
runat="server"
DataSourceID="objSource"
AllowPaging="true"
ShowHeader="true"
AutoGenerateColumns="false"
AllowSorting="true"
Width="100%" >