文本字段上的 GridView 排序表达式
GridView Sorting expression on a Text Field
我在网格视图中有以下字段:
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%#Eval("JobEstimation").ToString() == "1" ? "Yes" : "No" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
现在如何在此字段中启用排序? "SortExpression="???"".
所以当用户点击排序时,它应该根据字母顺序排序。
如评论中所述,最好在数据库中实施该转换,但与您的问题相关,答案将取决于该字段的实际内容。作为一个简单的解决方案,您可以尝试以下代码片段:
<asp:TemplateField HeaderText="Job Est" SortExpression="JobEstimation">
<ItemTemplate>....</ItemTemplate>
</asp:TemplateField>
或者,您可以将 Command/Link 按钮添加到 HeaderTemplate
:
<asp:TemplateField SortExpression="JobEstimation">
<HeaderTemplate>
<asp:LinkButton ID="sortJobEst" runat="server" Text="Job Est" CommandName="Sort" CommandArgument="JobEst" />
</HeaderTemplate>
</asp:TemplateField>
并将其挂接到 GridView RowCommand
事件(回复: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();
}
}
希望这可能有所帮助。
我在网格视图中有以下字段:
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%#Eval("JobEstimation").ToString() == "1" ? "Yes" : "No" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
现在如何在此字段中启用排序? "SortExpression="???"".
所以当用户点击排序时,它应该根据字母顺序排序。
如评论中所述,最好在数据库中实施该转换,但与您的问题相关,答案将取决于该字段的实际内容。作为一个简单的解决方案,您可以尝试以下代码片段:
<asp:TemplateField HeaderText="Job Est" SortExpression="JobEstimation">
<ItemTemplate>....</ItemTemplate>
</asp:TemplateField>
或者,您可以将 Command/Link 按钮添加到 HeaderTemplate
:
<asp:TemplateField SortExpression="JobEstimation">
<HeaderTemplate>
<asp:LinkButton ID="sortJobEst" runat="server" Text="Job Est" CommandName="Sort" CommandArgument="JobEst" />
</HeaderTemplate>
</asp:TemplateField>
并将其挂接到 GridView RowCommand
事件(回复: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();
}
}
希望这可能有所帮助。