我正在使用绑定到DetailsView控件的AccessDataSource控件。如果select没有返回任何行(DetailsView消失,但仍然设置为可见),那么我想通过禁用按钮来禁用其他一些功能。
在后面的C#代码中,我知道我需要:
ButtonMyButton.enabled = false;
但是,我不确定从AccessDataSource或DetailsView获取信息的方法,它会让我知道何时设置值。
我看过其他一些文章,提出了类似项目的例子:
DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
int reorderedProducts = (int)dv.Table.Rows[0][0]
对我来说,DataView错误的是没有正确的命名空间,尽管有:
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
如何禁用该按钮?
(虽然这是一个真正的新手问题,但这不是学校的家庭作业,因为这似乎是对这么多简单问题的第一次评论。)
答案 0 :(得分:2)
AccessDataSource
继承自SqlDataSource
类。因此,它提供了一个名为Selected
的事件,它是SELECT操作完成后引发的事件。此事件应具有类型为SqlDataSourceEventArgs
的EventArgs参数。)
此EventArgs参数有一个名为AffectedRows
的属性,它将告诉您检索的行数。如果为0,则可以设置Button的enabled属性。
private void OnSelectedHandler(Object source, SqlDataSourceStatusEventArgs e)
{
if (e.AffectedRows == 0)
//Disable the button.
}
对于记录,DataView
类位于System.Data
命名空间中。此外,在AccessDataSource上调用Select()
意味着您正在运行两个select语句,一个用于检索记录(如果有),另一个用于计算检索到的记录数。