我已经运行了一个asp.net(非MVC)Web表单应用程序。 它有一个gridview。
<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但无法在我的项目中实现此功能......
还有其他方法可以在我的应用程序中实现过滤吗?
答案 0 :(得分:1)
由于您愿意使用jQuery,我强烈建议使用DataTables http://datatables.net/。 这看起来类似于jqwidgets(但我不知道那个框架)。我对DataTables的体验是,它易于使用,高度可配置,文档齐全,快速,过滤等。
我也非常喜欢使用AJAX更新表格的支持,它允许您修改单元格,检测到修改并自动调用自定义页面来执行更新。支持所有asic Excel功能,并且功能强大。
我实际上很少在ASP.NEt中使用GridView。我写了一些C#代码来生成与DatATables的HtmlTable兼容。我在下面写了一个方便的扩展方法,它将DataTable转换为与DataTables框架兼容的Html。现在,我可以轻松地为任何DataTable利用快速客户端处理。应该直接使用方法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);
}