如何在gridview中的Template字段中应用排序 [英] How to apply sorting in Template field in gridview

查看:92
本文介绍了如何在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 [ ^ ]


问题是排序不是因为您的标题模板在网格视图上触发,您使用标签。你必须使用 LinkBut​​ton修改它



Problem is sorting is not fired on the grid view because your header template, you are using a Label. you have to modified that using LinkButton

<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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆