Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Используется ASP.Net 2.0 есть страница, на которой есть грид. при загрузке страницы ининциализируется объект. определенному свойству объекта устанавливается значение — ссылка на грид. вызывается метод в объекте, который инициализирует DataSource грида. default.apsx: protected CMyObject MyObject; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { MyObject = new CMyObject(); MyObject = (ASPxGrid)PreviousPage.FindControl("dgGrid"); MyObject.SetObj(); } } после работы с данными через грид пользователь нажимает кнопку, у которой установлен PostBackUrl на другую страницу. на загрузке второй странице ищу котрол следующим образом: second.apsx: protected void Page_Load(object sender, EventArgs e) { { if (PreviousPage != null) { // Получаем объекты отправленной формы ASPxGrid grid = (ASPxGrid)PreviousPage.FindControl("dgGrid"); } } } в результате грид найден, но DataSource у него равен null. почему datasource грида равен null? как получить данны из грида после работы пользователя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 02:00 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
потому что датасорс нужен только в момент биндинга. При постбеках данные нужно вытягивать уже из контролов внутри грида. Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 03:18 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
не уже ли никто не подскажет в каком направлении надо искать ответ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 10:54 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, ePilgrim, Вы писали: P>в результате грид найден, но DataSource у него равен null. P>почему datasource грида равен null? как получить данны из грида после работы пользователя? Это нормально и правильно, DataSource используется один раз для построения грида. его совершенно невозможно хранить во вьюстейте, потому что: a) он может быть Очень большим ( а реально выводится в гриде межет только 1 страничка ). б) он не обяан быть сериализуемым. доступаться к данным грида можно так: private some_class_collection get_items () { some_class_collection scs = some_class_collection(); foreach ( DataGridItem item in grd_values.Items ) { some_class sc = newsome_class(); sc.id =(int) grd_mapping.DataKeys[item.ItemIndex]; sc.name = ((input_string) item.FindControl("txt_extension")).value.value.Trim(); sc.description = ((input_string) item.FindControl("txt_desc")).value.value; values.Add(sc); } return values; } или если есть компонента для обратного байндинга примерно так: private some_class_collection get_items () { some_class_collection scs = some_class_collection(); foreach ( DataGridItem item in grd_values.Items ) { some_class sc = newsome_class(); new form_items().setup_from( item ).form2data( sc ); values.Add(sc); } return values; }... << RSDN@Home 1.1.4 beta 6a rev. 436>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 11:19 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, ePilgrim, Вы писали: P>Используется ASP.Net 2.0 P>есть страница, на которой есть грид. при загрузке страницы ининциализируется объект. P>определенному свойству объекта устанавливается значение — ссылка на грид. P>вызывается метод в объекте, который инициализирует DataSource грида. P>default.apsx: P> P>protected CMyObject MyObject; P> protected void Page_Load(object sender, EventArgs e) P> { P> if (!IsPostBack) P> { P> MyObject = new CMyObject(); P> MyObject = (ASPxGrid)PreviousPage.FindControl("dgGrid"); P> MyObject.SetObj(); P> } P> } P> DataSource выставляется только при первой загрузке, но не при последующих PostBack 'ах. Либо выставляй каждый раз DataSource, либо бери данные не из самого grid'а, а оттуда, откуда он их отображает. Последний вариант, IMHO, более кошерный с точки зрения архитектуры.... << RSDN@Home 1.2.0 alpha rev. 650>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 11:55 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, ePilgrim, Вы писали: P>Используется ASP.Net 2.0 P>есть страница, на которой есть грид. при загрузке страницы ининциализируется объект. P>определенному свойству объекта устанавливается значение — ссылка на грид. P>вызывается метод в объекте, который инициализирует DataSource грида. И кстати, вот Как получить имя DataSource... << RSDN@Home 1.2.0 alpha rev. 650>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 12:19 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, mogadanez, Вы писали: M>доступаться к данным грида можно так: M> M>private some_class_collection get_items () M>{ M> some_class_collection scs = some_class_collection(); ... M> M>или если есть компонента для обратного байндинга примерно так: M> M>private some_class_collection get_items () M>{ ... M> "Так, отставить пиво, mogadanez , отсыпь немножко!" (С) Что это было, сам сможнешь свой код объяснить?... << RSDN@Home 1.2.0 alpha rev. 650>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 12:19 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Spaider, Вы писали: S>"Так, отставить пиво, mogadanez , отсыпь немножко!" (С) S>Что это было, сам сможнешь свой код объяснить? Ни капли с утра... засыхаю... :beer: пжалуста(очепятки поправлены): private some_class_collection get_items () //метод возвращающий колецию бизнес объектов из грида { some_class_collection values = some_class_collection(); // создаем пустую коллекцию. код изх 1.1 в 2.0 буде List<some_class> values = new List<some_class> (); foreach ( DataGridItem item in grd_values.Items ) // Бежим по все айтемам грида. { some_class sc = new some_class(); // создаем новый бизнес объект sc.id =(int) grd_values.DataKeys[item.ItemIndex]; // вытаскиваем айдишник sc.name = ((input_string) item.FindControl("txt_extension")).value.value.Trim(); // находим контролку и берем ее значение sc.description = ((input_string) item.FindControl("txt_desc")).value.value; // аналагична values.Add(sc); //добавляем в колекцию } return values; // возвращаем } код реальный... просто переименованы классы, переменные. input_string — контролка основаная на текстбоксе для ввода текста. P.S. или интересуют коментраии ко второму примеру?... << RSDN@Home 1.1.4 beta 6a rev. 436>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 12:28 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Разобрался. объект MyObject сделал как piblic property на главной странице, а на второй странице поднимаю его через PreviousPage. Но обнаружилась еще вот такая штука. На первой странице после ее вывода браузер продолжает что-то упорно тянуть. Как сделать что бы севрер отдавал браузеру страниу только когда полностью ее сформирует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 14:34 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
в начале Page_Load поставил Response.BufferOutput = true; все равно страница с заполненым гиридом выгружается в браузер, после чего браузер все равно продолжает что-то тянуть. в гриде есть lookup поле с достаточно большим списком. но после выгрузки браузеру весь список заполнен, т.е. бразер тянет не содержимое этого списка. как правильно сделать вывод страницы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 14:56 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, mogadanez, Вы писали: M>P.S. или интересуют коментраии ко второму примеру? интересуют.... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 16:31 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, cadet354, Вы писали: C>Здравствуйте, mogadanez, Вы писали: M>>P.S. или интересуют коментраии ко второму примеру? C>интересуют. ну он собственно отличается от первого одной строкой: new form_items().setup_from( item ).form2data( sc ); по частям ее разберем: new form_items() — компонента — обеспечивает 2 ways Binding. Очень постараюсь выложить ее в SharedLibraries в течении след недели... можете меня попинывать чтобы не забыл. у компоненты три основных метода. setup_from( Control ) — От заданого рута пробегает по всем контролам и находит все контролы имеющие байндинг( имеют атрибут binding или реализуют спец интерфейс ). и записывают метаданные этих полей во внутренее хранилище. Вызов этого метода обязателен для работы с двумя другими. data2form( object ) — для всех найденых метаданных. Выполняет evaluate binding выражения в контексте переданного объекта. например если передан объект Job с полями Name, Number и Customer который имеет свое Name и коллекцию объектов Order; binding выражение в таком случае может быть: Name Number Customer.Name Customer.Orders[2].Date form2data( object ) — обратный байндинг по тем же правилам записывает данные с формы в переданный объект.... << RSDN@Home 1.1.4 beta 6a rev. 436>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 17:07 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, mogadanez, Вы писали: M>Здравствуйте, cadet354, Вы писали: C>>Здравствуйте, mogadanez, Вы писали: M>>>P.S. или интересуют коментраии ко второму примеру? C>>интересуют. M>ну он собственно отличается от первого одной строкой: M> M>new form_items().setup_from( item ).form2data( sc ); M> M>по частям ее разберем: M>new form_items() — компонента — обеспечивает 2 ways Binding. Очень постараюсь выложить ее в SharedLibraries в течении след недели... можете меня попинывать чтобы не забыл. Заранее спасибо,я уже думал вы там забросили идею нести добро в массы, последний update был вроде 25 апреля, было бы прекрасно.... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 17:44 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, cadet354, Вы писали: M>>по частям ее разберем: M>>new form_items() — компонента — обеспечивает 2 ways Binding. Очень постараюсь выложить ее в SharedLibraries в течении след недели... можете меня попинывать чтобы не забыл. C>Заранее спасибо,я уже думал вы там забросили идею нести добро в массы, последний update был вроде 25 апреля, C>было бы прекрасно. У нас было сложное время... релиз... дед лайн... ну вы знаете как быват ;)... << RSDN@Home 1.1.4 beta 6a rev. 436>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 17:53 |
|
||
|
DataSource грида при postback
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, cadet354, Вы писали: C>Заранее спасибо,я уже думал вы там забросили идею нести добро в массы, последний update был вроде 25 апреля, C>было бы прекрасно. если что пинайте меня в mogadanez{сoбakа}gmail.com или в GTalk... << RSDN@Home 1.1.4 beta 6a rev. 436>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2006, 18:08 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33851704&tid=1391545]: |
0ms |
get settings: |
10ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
141ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 268ms |
| total: | 538ms |

| 0 / 0 |
