Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SqlDataSource为空时隐藏/禁用ASP.NET控件_C#_Asp.net_Sql_Sqldatasource - Fatal编程技术网

C# SqlDataSource为空时隐藏/禁用ASP.NET控件

C# SqlDataSource为空时隐藏/禁用ASP.NET控件,c#,asp.net,sql,sqldatasource,C#,Asp.net,Sql,Sqldatasource,当SqlDataSource不返回任何行时,我需要能够隐藏或禁用大量items DetailsView、GridView。因此,如果重新发布页面且未选择任何行,则所有控件都将被禁用 我该怎么做 谢谢我通常使用LINQ并将结果包装到集合或字典中,但尽我所能,如果您的DataSourceMode是SqlDataSourceMode.DataSet,您可以通过向事件添加新的处理程序来实现这一点。如果在该事件中检查SqlDataSourceStatuseEventArgs的AffectedRows属性,

当SqlDataSource不返回任何行时,我需要能够隐藏或禁用大量items DetailsView、GridView。因此,如果重新发布页面且未选择任何行,则所有控件都将被禁用

我该怎么做


谢谢

我通常使用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;
    }