[英]updating is not supported by sqldatasource in asp.net for 3 layered code
[英]ASP.NET SQLDataSource filtered records count - redundant code
這有點像我的一個老問題的后續問題,出於這個問題的目的,代碼可能幾乎相同。
主要的相關區別在於Button
事件處理程序:
protected void btnFilter_Click(object sender, EventArgs e)
{
Select();
}
private DataView Select()
{
DataView _view = (DataView)sdsTable1.Select(DataSourceSelectArguments.Empty));
_view.RowFilter = Filter();
int _n = _view.Count; // Number of filtered records
return _view;
}
以及在FilterExpression
Selecting
事件處理程序中完成的SQLDataSource
分配:
protected void sdsTable1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
sdsTable1.FilterExpression = Filter();
}
Filter
function 只是以與舊代碼相同的方式評估過濾器字符串。
目前的問題是過濾產生的記錄計數。 使用以下代碼,我可以顯示從Select
命令收集的記錄數
protected void sdsTable1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
lblRecords.Text = "# records: " + e.AffectedRows.ToString();
}
不幸的是OnFiltering
事件不會報告受影響的行集。
在不影響已經工作的代碼的情況下評估過濾產生多少記錄的最佳方法是什么?
我找到了一個可能的解決方案,但我認為這會觸發對同一數據集進行不需要的過濾。 對於大量數據,這可能是一個問題:
private DataView Select()
{
DataView _view = (DataView)sdsTable1.Select(DataSourceSelectArguments.Empty));
_view.RowFilter = Filter();
int _n = _view.Count; // Number of filtered records
return _view;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.