asp.net – Gridview在列标题中排序/向下箭头
发布时间:2020-12-16 03:27:57 所属栏目:asp.Net 来源:网络整理
导读:我目前正在研究一些代码,它负责在网格视图中对数据进行排序和分页.我现在正在尝试实现排序箭头(列标题旁边的向上/向下箭头),但我没有成功.实现排序箭头的代码位于* GridView1_RowCreated *子例程中.现在,当我运行代码时,我根本看不到排序箭头.有问题的行是以
我目前正在研究一些代码,它负责在网格视图中对数据进行排序和分页.我现在正在尝试实现排序箭头(列标题旁边的向上/向下箭头),但我没有成功.实现排序箭头的代码位于* GridView1_RowCreated *子例程中.现在,当我运行代码时,我根本看不到排序箭头.有问题的行是以下一行:“如果tblAdministrators.SortExpression = lnk.CommandArgument那么”我无法弄清楚该行有什么问题.它始终为False,因此箭头不会显示.
Private Function GetData(sort As SortDirection) As Data.DataView Dim connection As OracleDBConnect = DAL.GetOracleDBConnection() Dim request As OracleDBRequest = Nothing Dim result As OracleDBResult = Nothing Dim trace As OracleDBChronoTrace = Nothing Dim status As DBStatus Dim sb As New StringBuilder Dim dv As DataView With sb .Append("SELECT * FROM USERS") End With request = New OracleDBRequest(sb.ToString,CommandType.Text) status = connection.Execute(request,result,trace) dv = New DataView(result.DataSet.Tables(0)) If (ViewState("sortExp") IsNot Nothing) Then dv = New Data.DataView(result.DataSet.Tables(0)) If (GridViewSortDirection = SortDirection.Ascending) Then GridViewSortDirection = SortDirection.Descending dv.Sort = CType(ViewState("sortExp").ToString() & DESCENDING,String) Else GridViewSortDirection = SortDirection.Ascending dv.Sort = CType(ViewState("sortExp").ToString() & ASCENDING,String) End If Else dv = result.DataSet.Tables(0).DefaultView End If Return dv End Function Public Property GridViewSortDirection() As SortDirection Get If ViewState("sortDir") Is Nothing Then ViewState("sortDir") = SortDirection.Ascending End If Return CType(ViewState("sortDir"),SortDirection) End Get Set(ByVal value As SortDirection) ViewState("sortDir") = value End Set End Property Protected Sub GridView1_PageIndexChanging(ByVal sender As Object,ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles tblAdministrators.PageIndexChanging tblAdministrators.PageIndex = e.NewPageIndex GridViewSortDirection = If(GridViewSortDirection = SortDirection.Descending,SortDirection.Ascending,SortDirection.Descending) tblAdministrators.DataSource = GetData(GridViewSortDirection) tblAdministrators.DataBind() End Sub Protected Sub GridView1_Sorting(ByVal sender As Object,ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles tblAdministrators.Sorting ViewState("sortExp") = e.SortExpression tblAdministrators.DataSource = GetData(GridViewSortDirection) tblAdministrators.DataBind() End Sub Protected Sub GridView1_RowCreated(sender As Object,e As GridViewRowEventArgs) Handles tblAdministrators.RowCreated If e.Row.RowType = DataControlRowType.Header Then For Each tc As TableCell In e.Row.Cells If tc.HasControls() Then Dim lnk As LinkButton = DirectCast(tc.Controls(0),LinkButton) If lnk IsNot Nothing Then Dim img As New System.Web.UI.WebControls.Image() img.ImageUrl = "/images/" & (If(GridViewSortDirection = SortDirection.Ascending,"asc","desc")) & ".gif" If tblAdministrators.SortExpression = lnk.CommandArgument Then tc.Controls.Add(New LiteralControl(" ")) tc.Controls.Add(img) End If End If End If Next End If End Sub ASPX代码: <asp:GridView ID="tblAdministrators" runat="server" AutoGenerateColumns="false" EmptyDataText="No records found" PageSize="25" AllowPaging="True" AllowSorting="True" OnRowCreated="GridView1_RowCreated"> <Columns> <asp:BoundField HeaderText="Name" DataField="Name" SortExpression="NAME"></asp:BoundField> </Columns> <Columns> <asp:BoundField HeaderText="City" DataField="City" SortExpression="CITY"></asp:BoundField> </Columns> </asp:GridView> 解决方法
看看我的样本:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="CustomerId" DataSourceID="SqlDataSource1"> <SortedAscendingHeaderStyle CssClass="sortasc" /> <SortedDescendingHeaderStyle CssClass="sortdesc" /> <Columns> <asp:CommandField ShowSelectButton="True" /> <asp:BoundField DataField="CustomerId" HeaderText="CustomerId" InsertVisible="False" ReadOnly="True" SortExpression="CustomerId" /> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> <asp:BoundField DataField="IdNumber" HeaderText="IdNumber" SortExpression="IdNumber" /> </Columns> </asp:GridView> 注意SortedAscendingHeaderStyle和SortedDescendingHeaderStyle.只需使用背景图像(向上箭头和向下箭头)创建适当的css类,您就完成了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp-classic – ADODB.Recordset错误’800a0bb9’:参数类型
- asp.net-mvc-3 – MVC:为此对象定义的无参数构造函数
- 反射及LINQ结果集转换dataTable并序列化 将DataTable序列
- ASP.NET生产力电动工具“修复混合标签”;哪一个给出最干净的
- 如何从ASP.NET MVC中的窗体身份验证拦截401?
- asp.net – jqgrid第1页的x pager
- 契约类相关的序列化与反序列化
- asp.net-mvc – MVC角色授权
- asp.net-mvc – 通过删除空格打破我的calc语句的MVC捆绑?
- asp.net – Application_Error – GetLastError()或GetLast
推荐文章
站长推荐
- asp.net – 实体框架删除子对象
- asp.net-mvc-3 – Asp.Net MVC 3自定义WebViewPa
- asp.net – IIS作为反向代理 – 从后端服务器压缩
- asp.net-mvc – MVCContrib,Html.Grid:如何将基
- asp.net-core-signalr – SignalR Core中的SendA
- asp.net-mvc – SignalR无法从外部程序集中找到集
- Asp.net下利用Jquery Ajax实现用户注册检测(验证
- 如何在我的域模型中实现ASP.NET成员资格提供程序
- Asp.Net Zero通用打印实现
- .net-core – 存储Azure Vault客户端ID和客户端密
热点阅读