从数据库列填充DropDownList,使用DropDownList值填充表?

时间:2012-11-09 18:55:10

标签: asp.net asp.net-ajax

我刚开始使用ASP.NET和Visual Studio 2008.我想创建一些相当简单的东西,但我还不知道如何处理它。

我可以访问我想用来创建报表界面的Oracle表。为简单起见,我们假设该表只有三列:

  1. REPORT_DATE
  2. SUCCESSES
  3. FAILURES
  4. 现在,建议的ASP.NET接口只有两个组件:

    1. 的DropDownList
    2. GridView(或表,无论哪个更简单)
    3. DropDownList将允许用户选择日期(例如11/8/2012)。然后,GridView将根据用户选择进行填充。它将显示除“REPORT_DATE”之外的所有列。在这个假设的场景中,GridView将显示“SUCCESSES”和“FAILURES”。从本质上讲,它将遵循此SQL语句:

      SELECT * FROM MyTable WHERE REPORT_DATE=insertSelectedReportDateHere;
      

      到目前为止,我已经使用Visual Studio的GUI成功地使用REPORT_DATE填充DropDownList以连接到我的数据库和表。但是,我不确定如何根据我的选择实现GridView的填充。我认为这需要硬编码AJAX,但我不确定Visual Studio的GUI有多强大。

      有没有办法使用GUI执行此操作?或者我必须以编程方式执行此操作吗?我应该参考的任何建议或资源?

      谢谢!

2 个答案:

答案 0 :(得分:1)

1)确保下拉列表的AutoPostBack属性设置为true

2)将dropdownlist1_selectedindexchanged事件添加到您的代码中,并根据下拉列表选择添加代码以填充DataGrid

答案 1 :(得分:1)

这绝对可以在不采用编程方式的情况下完成:

        <asp:SqlDataSource
            ID="dropDownDS"
            runat="server"
            ConnectionString="<%$ ConnectionStrings:connectionString %>"
            SelectCommand="select distinct reportdate from reports"></asp:SqlDataSource>
        <asp:DropDownList ID="ddlReports" runat="server"
            AutoPostBack="True"
            DataSourceID="dropDownDS"
            DataTextField="reportdate"
            DataValueField="reportdate" />
        <asp:SqlDataSource ID="gridDS"
            runat="server"
            ConnectionString="<%$ ConnectionStrings:connectionString %>"
            SelectCommand="SELECT * FROM Reports WHERE ReportDate = @ReportDate">
            <SelectParameters>
                <asp:ControlParameter ControlID="ddlReports" Name="reportdate" PropertyName="SelectedValue" />
            </SelectParameters>
        </asp:SqlDataSource>
        <asp:GridView ID="gvReports"
            runat="server"
            AutoGenerateColumns="False"
            DataKeyNames="ReportId"
            DataSourceID="gridDS">
            <Columns>
                <asp:BoundField DataField="ReportId" HeaderText="ReportId" Visible="False" />
                <asp:BoundField DataField="ReportDate" HeaderText="ReportDate" />
                <asp:BoundField DataField="Successes" HeaderText="Successes" />
                <asp:BoundField DataField="Failures" HeaderText="Failures" />
            </Columns>
        </asp:GridView>

欢迎来到ASP.NEt的wrold和stackoverflow!