Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема связать GridView с ObjectDataSource / плиз хелп
|
|||
|---|---|---|---|
|
#18+
Имеется GridView1 связанный с ObjectDataSource1: <anthem:GridView ID="GridView1" runat="server" DataSourceID="ObjectDataSource1"> ObjectDataSource1 связан с компонентом, который работает с Google поисковым веб сервисом: <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="doGoogleSearch" TypeName="Google.GoogleSearchService"> Метод doGoogleSearch возвращает комплексную структуру GoogleSearchResult состоящюю из простых полей и ещё одного обьека ResultElement, который является коллекцией (массивом) результатов поиска. Проблема в том что при запуске в моём GridView1 отображаются все простые поля возвращаемые запросом doGoogleSearch. А мне надо чтобы GridView1 баиндился именно на коллекцию результатов поиска, то есть на обьект ResultElement. Как это расписать аттрибутами я никак не могу понять. Если у кого нибудь есть идея, пожалуйста подскажите. Меня интересует прежде все как можно обойтись только аттрибутами на уровне HTML и не писать никакого кода. Заранее Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 21:34 |
|
||
|
Проблема связать GridView с ObjectDataSource / плиз хелп
|
|||
|---|---|---|---|
|
#18+
кто нибудь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 05:02 |
|
||
|
Проблема связать GridView с ObjectDataSource / плиз хелп
|
|||
|---|---|---|---|
|
#18+
Имеется GridView1 связанный с ObjectDataSource1 : <anthem:GridView ID="GridView1" runat="server" DataSourceID="ObjectDataSource1"> ObjectDataSource1 связан с компонентом, который работает с Google поисковым веб сервисом: <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="doGoogleSearch" TypeName="Google.GoogleSearchService"> Метод doGoogleSearch возвращает комплексную структуру GoogleSearchResult состоящюю из простых полей и ещё одного обьека ResultElement , который является коллекцией (массивом) результатов поиска. Проблема в том что при запуске в моём GridView1 отображаются все простые поля возвращаемые запросом doGoogleSearch . А мне надо чтобы GridView1 баиндился именно на коллекцию результатов поиска, то есть на обьект ResultElement. Как это расписать аттрибутами я никак не могу понять. Если у кого нибудь есть идея, пожалуйста подскажите. Меня интересует прежде все как можно обойтись только аттрибутами на уровне HTML и не писать никакого кода. Заранее Спасибо. Получается, что коллекцию ResultElement нужно биндить на еще один GridView(либо Repeater, либо DataList), который будет внутри твоего основного GridView. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 13:43 |
|
||
|
Проблема связать GridView с ObjectDataSource / плиз хелп
|
|||
|---|---|---|---|
|
#18+
Сделай helper метод, который будет возвращать ResultElement и уже его используй в ObjectdataSource Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 15:57 |
|
||
|
Проблема связать GridView с ObjectDataSource / плиз хелп
|
|||
|---|---|---|---|
|
#18+
Vadim, Возможно... но как? GridView1 связывается тол;ко по простым полям и не понимает сложных структур. Dimon aka Manowar, то что всё это можно сделать написав дополнительный код - это понятно, это не проблема. Меня интересует как можно сделать так чтобы никакого кода вообще не писать. И не потому что я ленивый :) а потому что мне интерестно получится ли установить взаимосвязь между asp.net контролами таким образом чтобы получить желаемый результат. Было бы очень круто если бы возможно было бы увязать 2 ObjectDataSourca вместе: ObjectDataSourcе1 (соединён с компонентом GoogleSearchService) возвращает нечто что состоит из нескольких простых полей и одного сложного (resultElements[]) ObjectDataSourcе2 (соединён с ObjectDataSourcе1) и возвращает именно resultElements[] от ObjectDataSourcе1 Ну и GridView соединён с ObjectDataSourcе2, и соответственно показывает содержимое resultElements[] в виде списка результатов. Буду благодарен если имеются какие либо идеи на сей счёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 17:43 |
|
||
|
Проблема связать GridView с ObjectDataSource / плиз хелп
|
|||
|---|---|---|---|
|
#18+
Vadim, Возможно... но как? GridView1 связывается тол;ко по простым полям и не понимает сложных структур. Можно попробовать так: <asp:GridView CellPadding="0" DataSourceID="ObjectDataSource1" ID="ResultGridView" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateField HeaderText="Header"> <ItemTemplate> <asp:Repeater runat="server" id="SecondLevel" DataSource='<%# Eval("resultElements") %>'> <ItemTemplate> <!-- вывод твоих данных --> </ItemTemplate> </asp:Repeater> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="doGoogleSearch" TypeName="Google.GoogleSearchService"> Т.е. забиндить коллекцию на внутренний Repeater(или GridView)! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2006, 13:27 |
|
||
|
Проблема связать GridView с ObjectDataSource / плиз хелп
|
|||
|---|---|---|---|
|
#18+
Спасибо, Вадим, Дима Извращаться со встроенными контролами я не решился. Как сделать так как я хотел в начале я так и не нашёл. Решил разбить решение на 2 части и сделал как подсказал Дима, дополнительный метод который возвращает resultElements: Google.ResultElement resultElements[] Затем я сажаю ObjectdataSource1 на этот метод, тогда можно обойтись одним GridView, но нужно прописать кастинг к типу элемента, чтоб добраться до полей: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# ((Google.ResultElement)Container.DataItem).title %>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> Иными сло вами, если data source это Google.ResultElement resultElements[] - то есть массив обьектов типа Google.ResultElement, то используя синтаксис из ASP.NET 1.x, можно получить значение отдельного поля обьекта Google.ResultElement: <%# ((Google.ResultElement)Container.DataItem).title %> Эквивалента этому синтаксису в ASP.NET 2.0 я пока не нашёл. Если кто в курсе, подскажите. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2006, 20:11 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33975973&tid=1389751]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 266ms |
| total: | 419ms |

| 0 / 0 |
