我有一个TextBox
,其中我想显示GridView
中的条目数。
count2.Text += (GV.Rows.Count).ToString();
启用了分页,但它只计算第一页中的条目。
如何确保计算所有条目?
我试过了:
<asp:SqlDataSource ProviderName="System.Data.SqlClient" ID = "sourceProducts" runat = "server" ConnectionString =" <%$ ConnectionStrings:DB %> " SelectCommand = "myqueryhere" OnSelected="sourceProducts_Selected">
protected void sourceProducts_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
z = e.AffectedRows;
}
但这给了我一些错误的价值
答案 0 :(得分:0)
退后一步。你从哪里得到数据?如果绑定到数据表,则只计算那里的行。如果使用start和end行的参数调用存储过程并返回表,请将其更改为发回数据集。数据集中的第一个表是您的数据,第二个表是一个只包含计数的表。
答案 1 :(得分:0)
您可以使用SQLDataSource的已选事件,并使用Affected属性获取记录数,如下所示: -
protected void sourceProducts_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
count2.Text = e.AffectedRows.ToString();
}
修改强>
protected void Page_Load(object sender, EventArgs e)
{
System.Data.DataView dataView = (DataView)sourceProducts
.Select(DataSourceSelectArguments.Empty);
count2.Text = dataView .Count.ToString();
}
答案 2 :(得分:0)
请检查一下,selected method
protected void sourceProducts_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
int startRowOnPage = (GridView1.PageIndex * GridView1.PageSize) + 1;
int lastRowOnPage = startRowOnPage + GridView1.Rows.Count - 1;
int totalRows = e.AffectedRows;
count2.Text = "Showing " + startRowOnPage.ToString() +
" - " + lastRowOnPage + " of " + totalRows;
}
检查此链接
Total Row Count SqlDataSource GridView
Records count in asp.net gridview with SQL data source & Paging
或者您可以将row_number
列添加为rowcount,如
select row_number() over(order by pin) a , others column from yourtable