2024年4月14日 星期日

[研究]ASP.NET,WebForm,取得GridView1總列數

[研究]ASP.NET,WebForm,取得GridView1總列數

2024-04-14

在GridView的<PagerTemplate>中,

((GridView)Container.Parent.Parent).PageIndex 回傳目的在第幾頁

((GridView)Container.Parent.Parent).PageSize 回傳每頁有幾筆資料

((GridView)Container.Parent.Parent).PageCount 回傳共幾頁


int totalRowCount = ((GridView)Container.Parent.Parent).Rows.Count;

Rows.Count; 回傳的是當時分頁的列數,

在  GridView.AllowPaging = true 時;因為有很多頁,故不是總列數。

在  GridView.AllowPaging = false 時;因為只有一頁,是總列數。


int totalRowCount = ((DataTable)((GridView)Container.Parent.Parent).DataSource).Rows.Count;

這樣的話,您將能夠獲得 GridView 中的所有資料筆數,即使分頁功能被啟用。


如果該 GridView 使用 DataSourceID 從 SqlDataSource 取得資料,而非 DataSource 取得資料,可以透過 DataSource 屬性取得 SqlDataSource 的實例,然後再從該實例中獲取總列數。

int totalRowCount = ((SqlDataSource)((GridView)Container.Parent.Parent).DataSourceObject).Select(DataSourceSelectArguments.Empty).TotalRowCount;

這樣做可以獲得 SqlDataSource 從資料庫中擷取的總列數,即使 GridView 具有分頁功能。

(完)

相關

https://learn.microsoft.com/zh-tw/dotnet/api/system.web.ui.webcontrols.gridview.pageindex?view=netframework-4.8.1#system-web-ui-webcontrols-gridview-pageindex


沒有留言:

張貼留言