1

我正在使用绑定到 DetailsView 控件的 AccessDataSource 控件。如果选择返回任何行时(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;

我应该怎么做才能禁用按钮?

(虽然这是一个真正的新手问题,但它不是学校作业,因为这似乎是对这么多简单问题的第一个评论。)

4

1 回答 1

2

从类AccessDataSource继承SqlDataSource。因此,它提供了一个称为事件的事件Selected,该事件是在 SELECT 操作完成后引发的事件。此事件应具有类型的 EventArgs 参数SqlDataSourceEventArgs)。

此 EventArgs 参数有一个名为的属性AffectedRows,它将告诉您检索到的行数。如果为 0,则可以设置 Button 的 enabled 属性。

private void OnSelectedHandler(Object source, SqlDataSourceStatusEventArgs e) 
{
  if (e.AffectedRows == 0)
    //Disable the button.
}

作为记录,DataView该类驻留在System.Data命名空间中。此外,调用Select()AccessDataSource 将意味着您正在运行两条 select 语句,一条用于检索记录(如果有),另一条仅用于计算检索到的记录数。

于 2009-07-25T12:27:27.097 回答