GridView在文本字段

时间:2016-03-14 00:21:23

标签: c# asp.net sorting gridview templatefield

我在网格视图中有以下字段:

<asp:TemplateField HeaderText="Status">
    <ItemTemplate>
       <asp:Label ID="Label3" runat="server" Text='<%#Eval("JobEstimation").ToString() == "1" ? "Yes" : "No" %>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

现在如何在此字段中启用排序? “的SortExpression =” 的 ??? “”。

因此,当用户点击排序时,它应该按字母顺序排序。

1 个答案:

答案 0 :(得分:1)

如评论中所述,最好在数据库中实现该转换,但与您的问题相关,答案取决于该字段的实际内容。作为一个简单的解决方案,您可以尝试以下代码段:

<asp:TemplateField HeaderText="Job Est" SortExpression="JobEstimation">
   <ItemTemplate>....</ItemTemplate>
</asp:TemplateField>

或者,您可以将命令/链接按钮添加到HeaderTemplate

<asp:TemplateField SortExpression="JobEstimation">
    <HeaderTemplate>
        <asp:LinkButton ID="sortJobEst" runat="server" Text="Job Est" CommandName="Sort" CommandArgument="JobEst" />
    </HeaderTemplate>
</asp:TemplateField>

并将其挂钩到GridView RowCommand事件(re:https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand(v=vs.110).aspx):

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName.Equals("Sort"))
    {
        // add your code to sort
        e.CommandArgument.ToString()...
        BindGridView();
    }
}

希望这可能会有所帮助。