0

次のフォーム フィールドを持つ asp.net ページがあります。

  1. ドロップダウン 1. このドロップダウンは、SQL データ ソース経由でデータを受け取ります。
  2. ドロップダウン 2. ドロップダウン 1 の選択に基づいて、このドロップダウンは SQL データソースを使用してデータベースにクエリを実行し、入力されます。
  3. ドロップダウン リスト 2 の下に配置され、一連のコントロールを含むパネル コントロール。

私の問題は、ドロップダウン 2 のデータソースから何も返されない状況がある可能性があることです。ドロップダウン リスト 2 に「データが見つかりません」という項目を表示し、ドロップダウン 2 の下に配置されているパネルを同時に非表示にしたい.

誰かがこの状況をどのように処理できるか教えてください。

助けに感謝します。

ありがとう、ヤギャ

4

1 に答える 1

0

次のコードを dropdownlist1 selected index change イベントに追加します。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    // Run this code when your sql datasource 2 does not return record, you can also place an IfElse condition
    DataTable dt = new DataTable();
    dt.Columns.Add("ID");
    dt.Columns.Add("Value");
    DataRow row = dt.NewRow();
    row[0] = "-1";
    row[1] = "Data Not Found";
    dt.Rows.Add(row);
    DropDownList2.DataSource = dt;
    DropDownList2.DataTextField = "Value";
    DropDownList2.DataValueField = "ID";
    DropDownList2.DataBind();

}

更新された回答: (これを試してください) sqldatasource2 選択イベントに配置することもできます。

protected void SqlDataSource2_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
    if (e.Arguments.TotalRowCount == 0)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("ID");
        dt.Columns.Add("Value");
        DataRow row = dt.NewRow();
        row[0] = "-1";
        row[1] = "Data Not Found";
        dt.Rows.Add(row);
        DropDownList2.DataSource = dt;
        DropDownList2.DataTextField = "Value";
        DropDownList2.DataValueField = "ID";
        DropDownList2.DataBind();
    }
}

上記のコードは、Text = "Data Not Found" を持つ項目をドロップダウン リストに追加します。

于 2012-07-14T15:17:47.543 に答える