1

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

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

  1. 报告日期
  2. 成功案例
  3. 失败

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

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

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 来做到这一点?还是我必须以编程方式进行?我应该参考的任何建议或资源?

谢谢!

4

2 回答 2

1

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

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

于 2012-11-09T19:01:00.057 回答
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!

于 2012-11-10T16:57:45.507 回答