#asp.net #gridview
#asp.net #gridview
Вопрос:
Привет, я новичок в использовании ASP.NET и GridView, и было бы здорово, если бы кто-нибудь любезно помог мне здесь.
Мой сценарий заключается в том, что при событии нажатия кнопки мой код пытается получить данные из веб-сервиса порциями в течение длительного периода времени. Теперь я создаю DataTable и заполняю его по мере извлечения каждого фрагмента. Мой вопрос в том, как мне показать в gridview все, что я извлек до сих пор, прежде чем вернется нажатие кнопки? Скажем, если у меня есть три блока, извлекаемых один за другим, то на данный момент gridview заполняется всеми данными из 3 блоков одновременно, я хочу иметь возможность отображать первый блок по мере его загрузки, затем добавлять второй блок и, наконец, третий. Не уверен, как это сделать.
Я был бы рад, если бы вы просто дали мне общее решение / указали мне на функцию asp, которую я должен использовать, чтобы это сделать. Спасибо.
Ответ №1:
Если вы привязываетесь с помощью webservice. Тогда asp: GridView создаст ненужные проблемы для вас, поскольку он предназначен для простых привязок на стороне сервера.
Почему бы вам не попробовать DataTables или jqGrid, поскольку они являются гораздо лучшими альтернативами?
Ответ №2:
Вы можете Merge
изменять существующий DataTable
каждый раз, когда получаете новый фрагмент из Web service
, а затем привязывать обновленную (объединенную) таблицу данных к gridview.
Ознакомьтесь с этой статьей из MSDN и получите лучшее представление о том, как вы можете объединить таблицы данных
DataSet.Метод слияния (DataTable)
Также посмотрите на эту статью, которая может помочь вам в вашей текущей проблеме.
Комментарии:
1. Спасибо за предложение. Я вроде бы делаю то же самое сейчас, но я не выполняю отдельные обратные вызовы для каждого фрагмента, один обратный вызов будет охватывать загрузку нескольких фрагментов… Именно во время этого единственного обратного вызова я хочу, чтобы gridview отображал данные по мере их поступления… имеет смысл?
2. хм, это может быть проблемой. Что, если вы используете AJAX?