处理ASP.Net中的空数据绑定下拉列表

时间:2012-07-14 14:00:54

标签: asp.net

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

  1. 下拉列表1.此下拉列表通过SQL数据源接收数据。
  2. 下拉列表2.根据下拉列表1的选择,此下拉列表使用SQL数据源查询数据库并填充。
  3. 位于下拉列表2下方的面板控件,它有一组控件。
  4. 我的问题是可能存在从下拉列表2的数据源没有返回任何内容的情况,我想在下拉列表2中显示一个项目“No Data found”并同时隐藏放置在下拉列表2下方的面板

    有人可以告诉我这种情况是如何处理的。

    感谢帮助。

    谢谢, 雅格亚

1 个答案:

答案 0 :(得分: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();
    }
}

上面的代码会在你的下拉列表中添加一个Item,其中包含Text =“Data Not Found”