手把手教你如何扩展GridView之自动排序篇
[1] 手把手教你如何扩展GridView之自动排序篇
[2] 手把手教你如何扩展GridView之自动排序篇
[3] 手把手教你如何扩展GridView之自动排序篇
[4] 手把手教你如何扩展GridView之自动排序篇
[2] 手把手教你如何扩展GridView之自动排序篇
[3] 手把手教你如何扩展GridView之自动排序篇
[4] 手把手教你如何扩展GridView之自动排序篇
我们在使用GridViewEx的时候,就只需要设定DataSetSource属性,这个将限定本扩展组件只支持DataSet类型的数据源,其他类型数据源有兴趣的,大家可以进行扩展,象ArrayList,List<>这些都是可以的。
接下来的工作是为GridViewEx添加OnBind事件,如下:
public event BindEventHandler Bind;
public virtual void OnBind()
{
if (Bind != null)
{
Bind();
if (DataSetSource != null)
{
DataView dv = DataSetSource.Tables[0].DefaultView;
dv.Sort = SortExpressionStr;
this.DataSource = dv;
this.DataBind(); }
}
}
public virtual void OnBind()
{
if (Bind != null)
{
Bind();
if (DataSetSource != null)
{
DataView dv = DataSetSource.Tables[0].DefaultView;
dv.Sort = SortExpressionStr;
this.DataSource = dv;
this.DataBind(); }
}
}
有了这个事件,我们就可以让GridView去类外部获取数据源,然后回到类本身来组织数据和进行绑定了。
接下来,需要声明两个方法
[Description("排序表达式"),Category("扩展")]
protected virtual string SortExpressionStr
{
get
{
if (ViewState["SortExpression"] == null)
{
return null;
}
return ViewState["SortExpression"].ToString();
}
set
{
ViewState["SortExpression"] = value;
}
}
[Description("排序方向"),Category("扩展")]
protected virtual string SortDirectionStr
{
get
{
if (ViewState["SortDirection"] == null)
{
return "DESC";
}
if (ViewState["SortDirection"].ToString().ToLower() != "asc" && ViewState
["SortDirection"].ToString().ToLower() != "desc")
{
return "DESC";
}
return ViewState["SortDirection"].ToString();
}
set
{
ViewState["SortDirection"] = value;
}
}
protected virtual string SortExpressionStr
{
get
{
if (ViewState["SortExpression"] == null)
{
return null;
}
return ViewState["SortExpression"].ToString();
}
set
{
ViewState["SortExpression"] = value;
}
}
[Description("排序方向"),Category("扩展")]
protected virtual string SortDirectionStr
{
get
{
if (ViewState["SortDirection"] == null)
{
return "DESC";
}
if (ViewState["SortDirection"].ToString().ToLower() != "asc" && ViewState
["SortDirection"].ToString().ToLower() != "desc")
{
return "DESC";
}
return ViewState["SortDirection"].ToString();
}
set
{
ViewState["SortDirection"] = value;
}
}