В codebehind вы можете вызвать метод SQLDataSource.Select()
:
System.Data.DataView dv = (System.Data.DataView)SqlDSLocation.Select(DataSourceSelectArguments.Empty);
И затем выполнить итерацию по возвращенным строкам, найти строки «bitActive», которые установлены в ноль, и удалитьих из вашего DropDownList
(код взломан из приведенного выше примера):
foreach(System.Data.DataRow row in dv.Table.Rows)
{
// This is approximate logic, tailor this to fit your actual data
if (row["bitActive"].ToString() == "False")
{
ddlLocation.Items.Remove(row["intRefLocation_ID"].ToString());
}
}
Обратите внимание, что эти строки не удаляются из таблицы SQL.После этого убедитесь, что вы больше не связываете данные DropDownList
, иначе все удаленные вами данные вернутся.
РЕДАКТИРОВАТЬ: Более эффективное и элегантное решение см. Ответ Джеймса Джонсона .