0

我有一个包含以下表单字段的 asp.net 页面:

  1. 下拉列表 1. 此下拉列表通过 SQL 数据源接收数据。
  2. 下拉列表 2。基于下拉列表 1 的选择,此下拉列表使用 SQL 数据源查询数据库并被填充。
  3. 位于下拉列表 2 下方的面板控件,它具有一组控件。

我的问题是可能存在以下情况:下拉列表 2 的数据源没有返回任何内容,我想在下拉列表 2 中显示“未找到数据”项,同时隐藏位于下拉列表 2 下方的面板。

有人可以让我知道如何处理这种情况。

感谢帮助。

谢谢,亚加

4

1 回答 1

0

将以下代码添加到您的 dropdownlist1 选择的索引更改事件。

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 回答