Как сохранить источник данных для gridcolumn - PullRequest
0 голосов
/ 18 июля 2011

Что касается приведенного ниже блока кода (Designer- .ASPX), я пытаюсь здесь связать внутреннюю сетку с List<> во время выполнения.Это List<> для внутреннего вида сетки является членом источника данных внешней сетки.

Как вы можете видеть из дизайна, я хочу связать внутреннюю сетку с соответствующим источником данных только после того, как пользователь нажмет на кнопку встроенного изображения «+».

Я могу найти внутреннюю сетку при нажатии кнопки, но понятия не имею, как сохранить источник данных для того же.Каждый столбец будет иметь собственный источник данных List<>, поэтому я не могу сделать это с состоянием сеанса или просмотра.

Может кто-нибудь сообщить мне, как я могу сохранить его с помощью внутреннего вида сетки и свяжет его во время выполнения после того, как пользователь нажмет на знак «+»?

<asp:GridView ID="gvMain" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Name" HeaderText="Name" />
        <asp:TemplateField HeaderText="Lateral">
            <ItemTemplate>
                <asp:CheckBox ID="chkLateral" runat="server" Checked='<%# Eval("Lateral") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Types">
            <ItemTemplate>
                <table>
                    <tr>
                        <td>
                            <asp:ImageButton OnClick="imgExpandbtn_OnClick" ID="imgExpandbtn" runat="server" ImageUrl="~/Styles/Images/Plus.png" />
                            <asp:Label runat="server" ID="lblTypes" Text='<%# Eval("Types") %>'></asp:Label>
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:GridView ID="gvInner" runat="server" AutoGenerateColumns="false">
                </asp:GridView>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Active">     
            <ItemTemplate>
                <%# (Boolean.Parse(Eval("IsActive").ToString())) ? "Y" : "N"%>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

1 Ответ

0 голосов
/ 18 июля 2011

Вы выбираете данные для внутренней сетки вместе с внешней сеткой? Если да, то вам следует привязать внутреннюю сетку, когда вы привязываете внешнюю сетку, то есть установить ее источник данных во время разработки, используя выражение привязки данных. Затем вы должны использовать java-скрипт, чтобы показать / скрыть внутреннюю сетку при нажатии кнопки «развернуть / свернуть» - этот подход не только прост в реализации, но и сохранит поездки сервера при нажатии кнопки «развернуть / свернуть».

В качестве альтернативы вы можете связать внутреннюю сетку только при нажатии кнопки расширения. Однако в таком случае не имеет смысла предварительно выбирать и сохранять данные внутренней сетки вместе с внешней сеткой. В таком сценарии вы должны извлекать данные внутренней сетки при нажатии кнопки расширения (поэтому вам не нужно «сохранять источник данных» , потому что данные будут выбираться по требованию).

...