GridView.rows.Count,返回的是GridView当前页面的记录数
objectdatasource的selected事件,:e.AffectedRows返回-1
解决办法:
在ObjectDataSource的Selected事件,取e.ReturnValue的类型,强制转换类型取这个DataSet的行数
protected void ObjectDataSource1_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
//Response.Write(e.ReturnValue.GetType().ToString());
EventDataSet.T_EventListDataTable dt = new EventDataSet.T_EventListDataTable();
dt = (EventDataSet.T_EventListDataTable)e.ReturnValue;
Label1.Text = dt.Rows.Count.ToString();
}
运行的时候:
1、注释蓝色和灰色部分,用红色部分取e.ReturnValue的类型
2、注释红色,修改蓝色部分,设置类型转换
e.ReturnValue返回的对象肯定是select的全部,一个DataSet,不过要对应你自己的在数据集里设置的Adapter
因为e.ReturnValue的类型是继承DataTable的,所以可以这样取,就不用判断他的类型是什么了:
DataTable dt = new DataTable();
dt = (DataTable)e.ReturnValue;
if (dt == null)
{
LabelNum.Text = "0";
}
else
{
LabelNum.Text = dt.Rows.Count.ToString();
}