Тройной выпадающий список с привязкой к данным привязан к gridview - PullRequest
0 голосов
/ 24 марта 2012

У меня есть 3 раскрывающихся списка данных (Тип) (Штат) и (Город), я хочу, чтобы пользователь выбрал критерии из 3 раскрывающихся списков, чтобы отобразить их выбор в виде сетки.Все три выпадающих списка должны быть выбраны, чтобы отобразить их выбор.

Как бы я связал все три выпадающих списка с одним видом сетки?

В моей базе данных есть три таблицы:

  • tblType, которые включают тип учащегося
  • tblZip, включая город и штат
  • tblNameхранит записи студентов

Я могу связать город и штат, когда клиент выбирает штат, показывает город, но информация не отображается в виде сетки.

        SelectCommand="SELECT DISTINCT [ID],[City] FROM [tblZip] WHERE ([State] = ?)ORDER BY [City]">
        <SelectParameters>
            <asp:ControlParameter ControlID="State" Name="State" 
                PropertyName="SelectedValue" Type="String" />
        </SelectParameters>
    </asp:AccessDataSource>
</p>
<p>
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
        AutoGenerateColumns="False" DataKeyNames="NID" DataSourceID="AccessDataSource4">
        <Columns>
            <asp:BoundField DataField="NID" HeaderText="NID" InsertVisible="False" 
                ReadOnly="True" SortExpression="NID" />
            <asp:BoundField DataField="ServiceType" HeaderText="ServiceType" 
                SortExpression="ServiceType" />
            <asp:BoundField DataField="ServiceStore" HeaderText="ServiceStore" 
                SortExpression="ServiceStore" />
            <asp:BoundField DataField="Address" HeaderText="Address" 
                SortExpression="Address" />
            <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
            <asp:BoundField DataField="State" HeaderText="State" SortExpression="State" />
            <asp:BoundField DataField="Description" HeaderText="Description" 
                SortExpression="Description" />
            <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" />
            <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
        </Columns>
    </asp:GridView>
    <asp:AccessDataSource ID="AccessDataSource4" runat="server" 
        DataFile="~/App_Data/rentalsold.mdb" 
        SelectCommand="SELECT DISTINCT [NID], [ServiceType], [ServiceStore], [Address], [City], [State], [Description], [Phone], [Email] FROM [tblName] WHERE (([ServiceType] = ?) AND ([State] = ?) AND ([City] = ?))">
        <SelectParameters>
            <asp:ControlParameter ControlID="cboType" DefaultValue="NORMAL" 
                Name="ServiceType" PropertyName="SelectedValue" Type="String" />
            <asp:ControlParameter ControlID="State" DefaultValue="NORMAL" Name="State" 
                PropertyName="SelectedValue" Type="String" />
            <asp:ControlParameter ControlID="cboCity" DefaultValue="NORMAL" Name="City" 
                PropertyName="SelectedValue" Type="String" />
        </SelectParameters>
    </asp:AccessDataSource>
</p>
<p>
    <asp:Button ID="Button1" runat="server" Text="Button" />

1 Ответ

0 голосов
/ 24 марта 2012

Способ решения этой проблемы обычно заключается в том, чтобы включить проверочный код, вызываемый всякий раз, когда из выпадающего списка выбирается новое значение.
В этом коде вы сначала убедитесь, что все значения верны, а затем, когда они есть, вы привязываете сетку.
Например, в псевдокоде:

TypeDropDown_AfterChangeEvent() {
   ValidateAndBind();
}

StateDropDown_AfterChangeEvent() {
   ValidateAndBind();
}

CityDropDown_AfterChangeEvent() {
   ValidateAndBind();
}

ValidateAndBind() {
    if (TypeDropDown != null && StateDropDown != null && CityDropDown != null) {
        BindDataSource(); // Whatever that is
    } else {
        UnBindDataSource();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...