Excel喜欢 ASP.NET 应用程序中的过滤
本文关键字:过滤 应用程序 NET 喜欢 ASP Excel | 更新日期: 2023-09-27 18:34:02
我有一个已经在运行的 asp.net(非MVC(Web表单应用程序。它有一个网格视图。
<asp:GridView ID="gvPendingInvoices" runat="server" AutoGenerateColumns="false" Width="60%" AllowPaging="true" AllowSorting="true"
CellPadding="4" OnPageIndexChanging="gvPendingInvoices_PageIndexChanging" OnRowDataBound="gvPendingInvoices_RowDataBound">
<PagerStyle CssClass="gridView_PaggerStyle" HorizontalAlign="Left" />
<HeaderStyle CssClass="gridView_HeaderStyle" HorizontalAlign="Left" />
<SelectedRowStyle CssClass="gridView_SelectedRowStyle" />
<FooterStyle CssClass="gridView_FooterStyle" />
<PagerStyle HorizontalAlign="Left" />
<AlternatingRowStyle CssClass="gridView_AlternatingRowStyle" />
<PagerSettings PageButtonCount="10" Position="TopAndBottom" />
<RowStyle BorderStyle="None" CssClass="gridView_RowStyle" />
<Columns>
<asp:TemplateField HeaderText="ProjectId" Visible="false">
<ItemTemplate>
<asp:Label runat="server" ID="lblProjectId" Text='<%# Bind("ProjectId") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Project" ItemStyle-Width="20%">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lblProject" Text='<%# Bind("ProjectName") %>' OnClick="OnClickProjectName" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Project Manager" ItemStyle-Width="30%">
<ItemTemplate>
<asp:Label runat="server" ID="lblName" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%">
<ItemTemplate>
<asp:LinkButton runat="server" Text="Notify" ID="lbNotify" OnClick="Notify"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
No Record Found .</EmptyDataTemplate>
</asp:GridView>
现在我想在此代码中添加类似过滤的 excel...像这样的东西
http://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/index.htm#demos/jqxgrid/filtering.htm
我已经下载了这个 JQuery,但无法在我的项目中实现它......
还有其他方法可以在我的应用程序中实现过滤吗?
既然你愿意使用jQuery,我强烈建议DataTables http://datatables.net/。这看起来类似于jqwidgets(但我不知道那个框架(。 我对DataTables的经验是,它非常易于使用,高度可配置,文档齐全且速度快如闪电,用于过滤等。
我也非常喜欢使用 AJAX 更新表的支持,它允许您修改单元格,检测到修改并自动调用自定义页面来执行更新。支持所有 asic Excel 功能,并且扩展性非常强大。
实际上,我很少再在 ASP.NEt 中使用 GridView。 我编写了一些C#代码来生成与DatATables的HtmlTable兼容性。 我在下面编写了方便的扩展方法,该方法将DataTable转换为与DataTables框架兼容的Html。 现在,我可以轻松地对任何数据表利用快速客户端处理。 将方法elow与DataTables文档中的示例之一一起使用应该是直接的。
public static string ToHtmlTable(this DataTable t,string cssClass="",string id=null,
bool includeTHead=true,bool includeTBody=true,bool includeFooter=false,string trIDCol=null)
{
MemoryStream ms = new MemoryStream();
XmlWriter x = new XmlTextWriter(ms, Encoding.Default);
x.WriteStartElement("table");
x.WriteAttributeString("class", cssClass);
if (id != null)
{
x.WriteAttributeString("id", id);
}
x.WriteNewline(); x.WriteNewline();
if (includeTHead)
{
x.WriteStartElement("thead");
}
x.WriteStartElement("tr");
foreach (DataColumn dc in t.Columns)
{
x.WriteElementString("th", dc.ColumnName);
}
x.WriteEndElement();
if (includeTHead)
{
x.WriteEndElement();
}
x.WriteNewline();
x.WriteNewline();
InsertTableRows(t, x, includeTBody,trIDCol);
if (includeFooter)
{
x.WriteStartElement("tfoot");
x.WriteStartElement("tr");
foreach (DataColumn dc in t.Columns)
{
x.WriteElementString("th", dc.ColumnName);
}
x.WriteEndElement();
x.WriteEndElement();
}
x.WriteEndElement();
x.Flush();
return StreamUtils.StreamToString(ms);
}