您的位置:首页 > 其它

扩展GridView控件(2) - 复合排序和排序状态提示

2007-01-03 18:55 423 查看
GridView既强大又好用。为了让它更强大、更好用,我们来写一个继承自GridView的控件。

[索引页]

[源码下载]

扩展GridView控件(2) - 复合排序和排序状态提示

作者:webabcd

/*正式版的实现 开始*/

介绍

扩展GridView控件:

对多个字段进行复合排序;升序、降序的排序状态提示

使用方法(设置SmartSorting复合属性):

AllowSortTip - 是否启用排序提示

AllowMultiSorting - 是否启用复合排序

SortAscImageUrl - 升序提示图片的URL(不设置则使用默认图片)

SortDescImageUrl - 降序提示图片的URL(不设置则使用默认图片)

SortAscText - 升序提示文本

SortDescText - 降序提示文本

关键代码

using System;

using System.Collections.Generic;

using System.Text;

using System.Web.UI.WebControls;

using System.Web.UI;

namespace YYControls.SmartGridViewFunction

/*正式版的实现 结束*/

/*测试版的实现 开始*/

介绍

在用GridView自带的排序功能排序时,无法直观的知道当前是通过哪个字段排序?是升序还是降序?所以扩展一下,用图片或文字的形式来提示一下当前是根据哪个字段排序,是升序还是降序。

控件开发

1、新建一个继承自GridView的类。

[

ToolboxData(@"<{0}:SmartGridView runat='server'></{0}:SmartGridView>"),

ParseChildren(true),

PersistChildren(false)

]

public class SmartGridView : GridView

using System;

using System.Collections.Generic;

using System.Text;

using System.ComponentModel;

namespace YYControls.SmartGridView

3、在继承自GridView的那个类中加1个复杂对象属性,这个复杂对象就是第2步创建的那个SortTip

private SortTip _sortTip;

[

Description("排序提示信息"),

Category("扩展"),

DesignerSerializationVisibility(DesignerSerializationVisibility.Content),

PersistenceMode(PersistenceMode.InnerProperty)

]

public virtual SortTip SortTip

protected override void OnRowDataBound(GridViewRowEventArgs e)

控件使用

添加这个控件到工具箱里,然后拖拽到webform上,设置其SortTip下的4个属性即可。SortAscImage是升序提示图片;SortAscText是升序提示文本;SortDescImage是降序提示图片;SortDescText是降序提示文本

ObjData.cs

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.ComponentModel;

public class OjbData

Default.aspx

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>无标题页</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<yyc:SmartGridView ID="SmartGridView1" runat="server" AutoGenerateColumns="True"

AllowSorting="True" DataSourceID="ObjectDataSource1">

<Columns>

<asp:ButtonField CommandName="ConfirmTest" Text="确认按钮测试" />

</Columns>

<SortTip SortAscImage="~/Images/asc.gif" SortDescImage="~/Images/desc.gif" />

</yyc:SmartGridView>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select"

TypeName="OjbData"></asp:ObjectDataSource>

</div>

</form>

</body>

</html>

/*测试版的实现 结束*/

OK

[源码下载]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: