如何获取ObjectDataSource的行数

Mos*_*afa 10 c# objectdatasource rowcount

大家好

如何获得ObjectDataSouce的行数?

我使用ObjectDataSource和DataList.我希望在ObjectDataSource返回某些行时向用户显示一些东西,例如在标签中.其中一种情况是没有记录.

谢谢 .

Wat*_*i02 8

我正在寻找相同的答案......我最终使用的另一个解决方案如下:这是在.aspx页面后面的.vb文件中找到的.它处理数据源的"选定"事件.

Protected Sub ObjectDataSource1_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs) Handles ObjectDataSource1.Selected
    ' Select data for rowcount
    Dim dt As DataTable = e.ReturnValue
    ' Set row count label
    Me.lblCount.Text = dt.Rows.Count.ToString
End Sub
Run Code Online (Sandbox Code Playgroud)


Eil*_*lon 7

ObjectDataSource没有直接的方式来获取总行数.其中一个原因是,如果您想要的只是总行数,那么您根本不需要数据源!要获取行计数,只需与业务逻辑层(BLL)对话并获取总行数:

MyBLL bll = new MyBLL();
int customerRowCount = bll.Customers.GetRowCount();
Run Code Online (Sandbox Code Playgroud)

所述ObjectDataSource确实有一个SelectCountMethod当数据绑定控件如可用于GridView需要访问总行数.但是,仅在执行"选择"操作时使用此选项.也就是说,没有办法获取行数.仅使用行计数,以便数据绑定控件可以显示寻呼机控件 - 它不用于任何其他内容.


And*_*uey 5

在这里找到这个:

bool bGetSelectCount;
protected void ObjectDataSource1_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
    if (bGetSelectCount)
        TextBox1.Text = e.ReturnValue.ToString(); 
}

protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
    bGetSelectCount = e.ExecutingSelectCount;
}
Run Code Online (Sandbox Code Playgroud)