【问题标题】:Populate DropDownList from database column, use DropDownList values to populate a table?从数据库列填充 DropDownList,使用 DropDownList 值填充表?
【发布时间】:2012-11-09 18:55:09
【问题描述】:

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

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

  1. REPORT_DATE
  2. 成功
  3. 失败

现在,提议的 ASP.NET 接口将只有两个组件:

  1. 下拉列表
  2. GridView(或表格,以较简单者为准)

DropDownList 将允许用户选择一个日期(例如 2012 年 11 月 8 日)。然后 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 来做到这一点?还是我必须以编程方式进行?有什么我应该参考的建议或资源吗?

谢谢!

【问题讨论】:

    标签: asp.net asp.net-ajax


    【解决方案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 的世界和 stackoverflow!

    【讨论】:

      【解决方案2】:

      1) 确保下拉菜单的 AutoPostBack 属性设置为 true

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-30
        • 1970-01-01
        • 2011-04-27
        • 1970-01-01
        • 2016-05-08
        • 1970-01-01
        • 1970-01-01
        • 2011-09-25
        相关资源
        最近更新 更多