Как загрузить данные GridView после привязки данных? - PullRequest
2 голосов
/ 15 октября 2010

Раньше я заполнял GridView «созданными вручную» источниками данных в коде, выполняя это при загрузке страницы:

DataTable myData = SomeMethod(); //Returns a DataTable
myGrid.DataSource = myData;
myGrid.DataBind();

и всякий раз, когда я хотел загрузить данные вCSV-файл, я бы просто добавил следующее к событию Click кнопки:

DataTable csvData = new DataTable();
csvData = (DataTable)myGrid.DataSource;

//CSV construction, reponse send to browser, etc.

Это работает, потому что GridView уже привязан к данным во время загрузки страницы, поэтому данные доступны, когда достигается событие Click.

Но теперь я не могу заставить его работать, используя элемент управления SqlDataSource, который я добавил во время разработки (HTML).Этот SqlDataSource связан с элементом управления DropDown с автоматической обратной передачей, так что данные извлекаются при изменении выбора.

Я запускаю веб-сайт с данными, уже отображаемыми в GridView (EnableViewState = false, чтобы принудительно выполнить запрос взагрузку каждой страницы) и нажмите кнопку только для получения исключения, вызванного тем, что myGrid.DataSource имеет значение null.

Мой вопрос (наконец-то): я заметил, что событие click происходит до GridView_OnDataBound, но даже OnDataBound источник данных равен нулю.Как я могу получить данные из визуализированного GridView, чтобы разрешить загрузку?Или откуда мне попытаться его найти?

1 Ответ

2 голосов
/ 15 октября 2010

При использовании источников данных времени разработки свойство DataSource не используется.Вместо этого используется свойство DataSourceID, но оно содержит только имя элемента управления источником данных.Вам придется вернуться к источнику SQLDataSource, чтобы получить информацию, необходимую для экспорта.

DataView dv = (DataView)sqlDataSource.Select(DataSourceSelectArguments.Empty); 
DataTable dt = dv.ToTable(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...