C# SqlDataSource为空时隐藏/禁用ASP.NET控件
当SqlDataSource不返回任何行时,我需要能够隐藏或禁用大量items DetailsView、GridView。因此,如果重新发布页面且未选择任何行,则所有控件都将被禁用 我该怎么做C# SqlDataSource为空时隐藏/禁用ASP.NET控件,c#,asp.net,sql,sqldatasource,C#,Asp.net,Sql,Sqldatasource,当SqlDataSource不返回任何行时,我需要能够隐藏或禁用大量items DetailsView、GridView。因此,如果重新发布页面且未选择任何行,则所有控件都将被禁用 我该怎么做 谢谢我通常使用LINQ并将结果包装到集合或字典中,但尽我所能,如果您的DataSourceMode是SqlDataSourceMode.DataSet,您可以通过向事件添加新的处理程序来实现这一点。如果在该事件中检查SqlDataSourceStatuseEventArgs的AffectedRows属性,
谢谢我通常使用LINQ并将结果包装到集合或字典中,但尽我所能,如果您的DataSourceMode是SqlDataSourceMode.DataSet,您可以通过向事件添加新的处理程序来实现这一点。如果在该事件中检查SqlDataSourceStatuseEventArgs的AffectedRows属性,它应该会告诉您至少返回了多少行,文档也暗示了这一点
一旦您知道了这一点,就可以继续禁用或启用其他页面控件。您可以尝试挂接GridView的数据绑定事件。如果没有行,请将Visible=false设置为所有需要隐藏的控件。例如:
<asp:gridView id="control" OnDataBound="DataBound" [...]
protected void DataBound(object sender, EventArgs e)
{
control.Visible = control.Rows.Count>0;
}