我有一个标准的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