Ссылка Два ObjectDataSource - PullRequest
1 голос
/ 06 октября 2009

Моя проблема выглядит следующим образом:

У меня есть один GridviewA, связанный с objectdatasourceA. Когда я нажимаю на строку GridviewA, я хочу, чтобы другой objectdatasourceB выбрал идентификатор из GridViewA, а затем получил записи для GridviewB. Это как masterdetail.

Могу ли я сделать это и как использовать javascript / jqueryscript, чтобы сделать его гладким.

Ответы [ 2 ]

0 голосов
/ 07 октября 2009

во-первых, убедитесь, что вы установили свойство dataKey в своем сеточном представлении A как свойство ID базового объекта (или чего бы вы не хотели передать в метод select objectDataSource B)

, затем перейдите к objectDataSource B, настройте его, выберите метод выбора, который принимает параметр, и нажмите «Далее». он спросит вас, где взять этот параметр (я думаю, что вы можете выбрать между элементом управления, сеансом и чем-то еще) и выберите элемент управления, он заполнит список всех элементов управления на странице и выберет ваш вид сетки A.

это передаст выбранные строки dataKey из gridview A методу, связанному с objectDataSource B., код выбора будет запущен, и ваш gridview B отобразит требуемое подмножество. если вы выберете новую строку в gridView A, он автоматически обновит gridView B, чтобы отобразить необходимые данные.

вы можете сделать это практически без написанного кода, если ваши методы настроены правильно. если вы собираетесь это сделать, взгляните на некоторые из доступных методов кэширования, так как они могут быть довольно загруженными в зависимости от размера ваших наборов записей.

0 голосов
/ 07 октября 2009

Ваш внутренний объектный источник данных должен выглядеть как

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Getmethod"
                TypeName="namespace">
                <SelectParameters>
                    <asp:ControlParameter ControlID="GridView1" Name="YourFieldName" PropertyName="SelectedValue"
                        Type="Int32" />
                </SelectParameters>
            </asp:ObjectDataSource>
...