我有一个包含以下表单字段的 asp.net 页面:
- 下拉列表 1. 此下拉列表通过 SQL 数据源接收数据。
- 下拉列表 2。基于下拉列表 1 的选择,此下拉列表使用 SQL 数据源查询数据库并被填充。
- 位于下拉列表 2 下方的面板控件,它具有一组控件。
我的问题是可能存在以下情况:下拉列表 2 的数据源没有返回任何内容,我想在下拉列表 2 中显示“未找到数据”项,同时隐藏位于下拉列表 2 下方的面板。
有人可以让我知道如何处理这种情况。
感谢帮助。
谢谢,亚加
我有一个包含以下表单字段的 asp.net 页面:
我的问题是可能存在以下情况:下拉列表 2 的数据源没有返回任何内容,我想在下拉列表 2 中显示“未找到数据”项,同时隐藏位于下拉列表 2 下方的面板。
有人可以让我知道如何处理这种情况。
感谢帮助。
谢谢,亚加
将以下代码添加到您的 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" 的项目