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

时间:2010-10-12 22:17:23

标签: c# asp.net sql sqldatasource

当SqlDataSource没有返回任何行时,我需要能够隐藏或禁用多个项目(detailsviews,gridviews)。因此,如果重新发布页面并且未选择任何行,则将禁用所有控件。

我该怎么做?

由于

2 个答案:

答案 0 :(得分:0)

我通常使用LINQ并将我的结果包装在Collection或Dictionary中,但是我可以告诉你,你可以通过在.Selected事件中添加一个新的处理程序来实现这一点(前提是你的DataSourceMode } SqlDataSourceMode.DataSet。如果你在那个事件中检查AffectedRows的{​​{1}}属性,它应该告诉你返回了多少行(至少,文档暗示了这一点)。< / p>

一旦您知道,您就可以继续禁用或启用其他页面控件。

答案 1 :(得分:0)

您可以尝试挂钩GridView的DataBound事件。如果没有行,请将Visible = false设置为您需要隐藏的所有控件。例如:

<asp:gridView id="control" OnDataBound="DataBound" [...]

protected void DataBound(object sender, EventArgs e)
    {
        control.Visible = control.Rows.Count>0;
    }