1

2 つのドロップダウン リストとグリッドビューを含む asp.net Web ページがあります。

2 つのドロップダウン リストは、SQL データベース (2008R2) へのクエリに基づいています。ドロップダウンは問題なく表示されています。

私がする必要があるのは、ドロップダウンの選択に基づいてグリッド ビューを作成することです。

最初のドロップダウンでは、ユーザーがジョブ名を選択できます。これはユーザーにとっては便利ですが、必要なのはそのジョブ名に関連付けられているジョブ番号です。2 番目のドロップ ダウンは、ステージ (3 つの選択) で、非常に単純です。

現在、SQL のマスター テーブルに基づくグリッド ビューがありますが、関連する結果のみを表示する必要があります。フィルターに基づいてこれを行うこともできますが、通常、ユーザーはジョブ番号を知りません。

グリッドビューのデータソースは次のとおりです。

SELECT a.[Annotation Number], a.Page_ID, a.[Annotation By], a.[Annotation Type], 
a.[Business Unit], a.[Actual Agency Error], a.[Error Type], a.[Annotation Comments], 
a.[Team Comments], a.sgkComments 
FROM MasterAnnotation AS a 
INNER JOIN ActiveWorkPages AS b 
ON a.Page_ID = b.WorkPage INNER JOIN ActiveJob AS c ON c.Job = b.Job 
ORDER BY a. [Annotation Number]

私ができると思ったのは、データソースに2つの変数を追加して、b.Job = @JobおよびStage = @Stageで制限することです

グリッドビューを更新するには、自動ポストバックが必要であることを理解しています。
また、クライアントの入力に基づいて特定の列でグリッドビューを更新する必要があります (プロジェクトの次のフェーズ)。

助けてくれてありがとう。

4

2 に答える 2

1

ドロップダウンリストの変更時、またはボタンのクリックを介して、このようなものを呼び出すことができます。(どのように構成されているかわかりません)

//import and add the System.Data.SqlClient Namespace
using System.Data.SqlClient;


 try //Try block for opening, querying and displaying pulled data
            {   
            sqlConn.Open();
            cmdstring = "Select col1, col2, col3 from tablename where field 1 = '" + ddllist1.selecteditem.value+ "' and field2 = '" + ddllist2.selecteditem.value + "'";
            sqlcmd01 = new SqlCommand(cmdstring, sqlConn);
            reader01 = sqlcmd01.ExecuteReader();
            //set the datasource and bind it to the gridview
            gridview01.DataSource = reader01;
            gridview01.DataBind();
            sqlConn.Close();
        }
        catch (Exception ex)
        {
           //handle Errors
        } //End Try Catch for SQL Operations

これにより、テーブルから値が選択され、グリッドビューが既に別の方法で構成されていない限り、列名が自動的に割り当てられます。

SQLクエリの文字列追加はおそらく理想的ではありませんが、それが私のサンプルブロックのセットアップ方法です:)

編集 次のように宣言を行う必要があります

//Declare Globally or where you need
        SqlConnection sqlConn = new SqlConnection("ConnString"); //Connection String
        SqlDataReader reader01 = null; //DataReader
                SqlCommand sqlcmd01 = null; 
                String cmdstring = "";

EDIT 2 私のグリッドビューは次のように宣言されています(ほとんどの場合デフォルト値)。私が使用している例では、ページの書式設定に .ascx ファイルを使用しています。あなたのケースはおそらく似たようなものです。

<asp:GridView ID="gridview01" runat="server" CellPadding="4" 
    EnableModelValidation="True" ForeColor="#333333" GridLines="None" 
    Height="179px" Width="496px" style="margin-right: 0px">
    <AlternatingRowStyle BackColor="White" />
    <EditRowStyle BackColor="#2461BF" />
    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
    <RowStyle BackColor="#EFF3FB" HorizontalAlign="Center" />
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>
于 2013-08-20T20:25:41.157 に答える