Computer Wiz99 Ответов: 1

Как сделать так, чтобы gridview заполнялся данными при загрузке страницы и фильтровался, когда DDL имеет выбор?


У меня есть GridView, который привязан к базе данных. Данные отображаются в GridView отлично без DDL inplace.

Вот это GridView:

<pre><asp:GridView ID="GridView5" runat="server" AllowPaging="True" 

                        AutoGenerateColumns="False" CellPadding="4" 

                        DataSourceID="SqlDataSourceFiveYear" ForeColor="#333333" GridLines="None" 

                        style="text-align: center" Width="994px">
                        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                        <Columns>
                            <asp:BoundField DataField="INST_ID" HeaderText="INST_ID" 

                                SortExpression="INST_ID" />
                            <asp:BoundField DataField="SHORTNAME" HeaderText="SHORTNAME" 

                                SortExpression="SHORTNAME" />
                            <asp:BoundField DataField="FTE2013" HeaderText="FTE2013" 

                                SortExpression="FTE2013" />
                            <asp:BoundField DataField="FTE2014" HeaderText="FTE2014" 

                                SortExpression="FTE2014" />
                            <asp:BoundField DataField="FTE2015" HeaderText="FTE2015" 

                                SortExpression="FTE2015" />
                            <asp:BoundField DataField="FTE2016" HeaderText="FTE2016" 

                                SortExpression="FTE2016" />
                            <asp:BoundField DataField="FTE2017" HeaderText="FTE2017" 

                                SortExpression="FTE2017" />
                            <asp:BoundField DataField="HC2013" HeaderText="HC2013" 

                                SortExpression="HC2013" />
                            <asp:BoundField DataField="HC2014" HeaderText="HC2014" 

                                SortExpression="HC2014" />
                            <asp:BoundField DataField="HC2015" HeaderText="HC2015" 

                                SortExpression="HC2015" />
                            <asp:BoundField DataField="HC2016" HeaderText="HC2016" 

                                SortExpression="HC2016" />
                            <asp:BoundField DataField="HC2017" HeaderText="HC2017" 

                                SortExpression="HC2017" />
                        </Columns>
                        <EditRowStyle BackColor="#999999" />
                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                        <SortedAscendingCellStyle BackColor="#E9E7E2" />
                        <SortedAscendingHeaderStyle BackColor="#506C8C" />
                        <SortedDescendingCellStyle BackColor="#FFFDF8" />
                        <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
                    </asp:GridView>


Вот источник данных SQL:

<pre><asp:SqlDataSource ID="SqlDataSourceFiveYear" runat="server" 

                        ConnectionString="<%$ ConnectionStrings:HotSpotConnectionString %>" 

                        SelectCommand="SELECT * FROM [FTE2018Total] WHERE ([INST_ID] = @INST_ID) ORDER BY [INST_ID]">
                        <SelectParameters>
                            <asp:ControlParameter ControlID="DropDownList1" Name="INST_ID" 

                                PropertyName="SelectedValue" Type="String" />
                        </SelectParameters>
                    </asp:SqlDataSource>


Вот это DDL:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="DropDownDataSource" 
                    DataTextField="SHORTNM" DataValueField="INST_ID" AppendDataBoundItems="True"
                        style="font-weight: 700" Width="500px">
                        <asp:ListItem Text="All Institutions" Value="0" />
                    </asp:DropDownList>


Вот источник данных DDL SQL:

<asp:SqlDataSource ID="DropDownDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:HotSpotConnectionString %>"
    SelectCommand="SELECT [INST_ID], [SHORTNM] FROM [TableCOCINST] ORDER BY [INST_ID]"></asp:SqlDataSource>


Когда страница загружается, она показывает DDL со всеми учреждениями, выбранными в качестве первого элемента, но без GridView, показывающего все данные. Когда я делаю выбор в DDL, отображаются только эти данные. Это хорошо, но я пытаюсь получить все данные для отображения в Gridview до того, как DDL выберет элемент.

Что я упускаю? Является ли мое значение для DDL неправильным?

Что я уже пробовал:

Я попытался изменить способ определения значения DDL.

1 Ответов

Рейтинг:
6

Computer Wiz99

Вот мое решение:

<pre><asp:SqlDataSource ID="SqlDataSourceFiveYear" runat="server" 

                        ConnectionString="<%$ ConnectionStrings:HotSpotConnectionString %>" 

                        

                        SelectCommand="SELECT [INST_ID], [SHORTNAME], [FTE2013], [FTE2014], [FTE2015], [FTE2016], [FTE2017], [HC2013], [HC2014], [HC2015], [HC2016], [HC2017] FROM [FTE2018Total] ORDER BY [INST_ID]" 

                        FilterExpression="INST_ID = '{0}'">
                        <FilterParameters>
                        <asp:ControlParameter Name="INST_ID" ControlID="DropDownList1" PropertyName="SelectedValue" />
                        </FilterParameters>
                    </asp:SqlDataSource>



Этот код был отредактирован в источнике данных SQL GridView.