我有一個標準的ASP.NET WebForm中的ObjectDataSource,它允許通過只加載用戶正在查看的頁面所需的數據進行有效的分頁。我現在想過濾特定列上的結果(比如Customer列),你會怎麼做呢?過濾ASP.NET ObjectDataSource?
<asp:ObjectDataSource ID="ticketsDataSource" runat="server"
SelectMethod="GetTicketsData" EnablePaging="true"
MaximumRowsParameterName="pageSize"
StartRowIndexParameterName="startRowIndex"
TypeName="SupportSystem.App_Code.TicketsDataSource" SelectCountMethod="TotalRowCount">
<SelectParameters>
<asp:Parameter Name="startRowIndex" Type="Int32" />
<asp:Parameter Name="pageSize" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
我以前是做代碼一切的背後如下,但是這意味着加一次大量門票,電網是很慢分頁等,當它被裝載渲染等
之前的所有數據DataSet ds = new DataSet();
Dictionary<string, object> d = new Dictionary<string, object>();
d.Add("@params", "");
ds.ReadXml(new System.IO.StringReader(Database.DAL_XML("Usp_Fetch_Tickets", d).OuterXml));
if (Database_error(ds))
{
return;
}
var dv = ds.Tables[0].DefaultView;
dv.RowFilter = "Customer LIKE '%abc%'";
var newDS = new DataSet();
var newDT = dv.ToTable();
newDS.Tables.Add(newDT);
gvTickets.DataSource = newDS;
gvTickets.DataBind();
有關如何有效過濾ObjectDataSource的任何想法?
謝謝,這看起來不錯,如果我想多個過濾器,我可以使用{1} {2}等,並指定更多的asp:formparameter? – Apqu 2015-02-11 09:27:43
是的你是對的。如果這有助於您將此標記爲已回答。祝你好運 – 2015-02-11 09:29:59
不錯,將嘗試那麼+1,謝謝:-) – Apqu 2015-02-11 09:30:33