如何在gridview中的Template字段中应用排序 [英] How to apply sorting in Template field in gridview
本文介绍了如何在gridview中的Template字段中应用排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
<asp:GridView ID="gridEdit" runat="server" AutoGenerateColumns="False" AllowPaging="true"AllowSorting="true" PageSize="5" OnPageIndexChanging="gridEdit_PageIndexChanging"OnRowDataBound="gridEdit_RowDataBound" Width="100%" CssClass="grid" OnSorting="gridEditSortOnSort">
<Columns>
<asp:TemplateField SortExpression="DateViewedByAudience" ItemStyle-Width="20%">
<HeaderTemplate>
<asp:Label ID="lblHeaderDateViewedByAudience" runat="server" Text=""></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblDateViewedByAudience" runat="server"</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<PagerSettings FirstPageText="First" LastPageText="Last" Mode="NumericFirstLast"/>
</asp:GridView>
有人可以帮我在lblDateViewedByAudience字段中进行排序。
在数据绑定字段中它很容易但是通过模板字段我只是不能这样做。
排序选项不在网格中
提前谢谢
Can some one help me to do sorting in the lblDateViewedByAudience field.
In databound field it is easy but by template field i just not able to do.
The sorting option is not coming in the grid
Thanks in advance
推荐答案
请检查这些链接以找到解决方案。
1. 使用模板字段手动输出GRIDVIEW [ ^ ]。
Please check these links to find the solutions.
1. SORTING GRIDVIEW MANUALLY WITH TEMPLATEFIELDS[^].
<asp:TemplateField>
<HeaderTemplate>
<asp:LinkButton ID="LinkButtonEmpName" runat="server" Text="Employee Name" CommandName="Sort" CommandArgument="Employees">
</asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="LabelEmployee" runat="server" Text='<%# Bind("Employees") %>'/>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBoxEmployee" runat="server"/>
</FooterTemplate>
</asp:TemplateField >
2. 排序gridView通过适当的列,即TemplateField [ ^ ] >
2. Sort gridView by proper column which is TemplateField[^]
<asp:TemplateField SortExpression="Status">
<HeaderTemplate>
<asp:LinkButton ID="lnkSort" runat="server" Text="Status" CommandName="Sort" CommandArgument="Status" />
</HeaderTemplate>
</asp:TemplateField>
protected void grd_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("Sort"))
{
FilterExpression = e.CommandArgument.ToString() + " LIKE '%" + txtCaseNumber.Text + "%'";
BindGridView();
}
}
3. 使用自定义模板字段排序Gridview [ ^ ]。
3. Gridview sorting with custom template fields[^].
<asp:TemplateField HeaderText="Category" SortExpression="Category">
<ItemTemplate>A value</ItemTemplate>
</asp:TemplateField>
谢谢......
查看此链接
http://stackoverflow.com/questions/7661086/sort-gridview-by-proper-column-which-is-templatefield [ ^ ]
问题是排序不是因为您的标题模板在网格视图上触发,您使用标签
。你必须使用LinkButton修改它
Problem is sorting is not fired on the grid view because your header template, you are using aLabel
. you have to modified that usingLinkButton
<asp:gridview id="gridEdit" runat="server" autogeneratecolumns="False" allowpaging="true" allowsorting="true" pagesize="5" onpageindexchanging="gridEdit_PageIndexChanging" onrowdatabound="gridEdit_RowDataBound" width="100%" cssclass="grid" onsorting="gridEditSortOnSort" xmlns:asp="#unknown">
<columns>
<asp:templatefield sortexpression="DateViewedByAudience" itemstyle-width="20%">
<HeaderTemplate>
<asp:linkbutton id="lblHeaderDateViewedByAudience" runat="server" text="" commandname="Sort" commandargument="DateViewedByAudience">
</HeaderTemplate>
<itemtemplate>
<asp:label id="lblDateViewedByAudience" runat="server"></asp:label>
</itemtemplate>
</asp:linkbutton></asp:templatefield>
<pagersettings firstpagetext="First" lastpagetext="Last" mode="NumericFirstLast" />
</columns></asp:gridview>
这篇关于如何在gridview中的Template字段中应用排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文