SmartControls.AspTreeGrid 现在公开测试
--------------------------------------------------------------------------------
SmartControls.AspTreeGrid 介绍:
作者: ben
MSN/Email: [email protected]
(欢迎添加好友, 不过请明示身份, 因为好友栏人数快满了, 我会定期清理擅长潜水神龙)之前很多朋友问我如何实现: 将一张表无限递归结构的记录在DataGrid里显示成树结构
现在特意将它做成 AspTreeGrid 控件大家可以从DotNet中华网(http://www.aspxcn.org)下载栏里下载本控件的原型试验版本(AspTreeGrodDemo), 可知它是基于 DataGrid 开发的.
在线演示地址: http://web.hianf.com/AspTreeGrid/Prototype.aspx控件设计目标: 会用DataGrid, 就会做TreeGrid, TreeView等树相关的东东.目前控件暂只实现数据显现功能, 管理功能实现在进行中. 下载地址: http://www.aspxcn.org/downloads/SmartControlsDemo.rar在这里请大家抽一点时间帮忙测试, 主要是控件的黑盒测试, 重点在: * 按DataGrid一般的使用方法, 测试控件的数据呈现功能 (基本功能测试)
* 多样性的应用情况 (可以是您项目中的使用情况)
* 故障处理测试方面不限上面提的, 欢迎大家提意见, 控件现在还在开发中将论功共享源码. 以下是本控件的一些相关图片:http://www.aspxcn.org/RichTextBox/sys/upload/2005107235745.jpg
TreeGrid的VS.NET里的设计视图 http://www.aspxcn.org/RichTextBox/sys/upload/2005107235716.jpg
TreeGrid的效果图 http://www.aspxcn.org/RichTextBox/sys/upload/200510723587.jpg
TreeGrid可以当TreeView使用 http://www.aspxcn.org/RichTextBox/sys/upload/200510723590.jpg
实现TreeView的效果图
--------------------------------------------------------------------------------
SmartControls.AspTreeGrid 介绍:
作者: ben
MSN/Email: [email protected]
(欢迎添加好友, 不过请明示身份, 因为好友栏人数快满了, 我会定期清理擅长潜水神龙)之前很多朋友问我如何实现: 将一张表无限递归结构的记录在DataGrid里显示成树结构
现在特意将它做成 AspTreeGrid 控件大家可以从DotNet中华网(http://www.aspxcn.org)下载栏里下载本控件的原型试验版本(AspTreeGrodDemo), 可知它是基于 DataGrid 开发的.
在线演示地址: http://web.hianf.com/AspTreeGrid/Prototype.aspx控件设计目标: 会用DataGrid, 就会做TreeGrid, TreeView等树相关的东东.目前控件暂只实现数据显现功能, 管理功能实现在进行中. 下载地址: http://www.aspxcn.org/downloads/SmartControlsDemo.rar在这里请大家抽一点时间帮忙测试, 主要是控件的黑盒测试, 重点在: * 按DataGrid一般的使用方法, 测试控件的数据呈现功能 (基本功能测试)
* 多样性的应用情况 (可以是您项目中的使用情况)
* 故障处理测试方面不限上面提的, 欢迎大家提意见, 控件现在还在开发中将论功共享源码. 以下是本控件的一些相关图片:http://www.aspxcn.org/RichTextBox/sys/upload/2005107235745.jpg
TreeGrid的VS.NET里的设计视图 http://www.aspxcn.org/RichTextBox/sys/upload/2005107235716.jpg
TreeGrid的效果图 http://www.aspxcn.org/RichTextBox/sys/upload/200510723587.jpg
TreeGrid可以当TreeView使用 http://www.aspxcn.org/RichTextBox/sys/upload/200510723590.jpg
实现TreeView的效果图
解决方案 »
- 关于页面缓存的处理
- 请问下面语句有什么问题,好像什么效果都没有
- asp.net的安全隐患
- 关于ADO.NET令人费解的问题
- 糊涂了,以前做过的一个简单问题?
- 关于RadioButtonList的问题
- =======关于web.config的疑问,参与、解答和UP都有分=========
- 我做了一个搜索,功能可以实现,但是就是有一点我输入空值或者我输入的东西在我的数据库里找不到的话,他不提示,而是直接进行页面跳转,我用的是Sql2000数据库,请问我怎样在搜索按钮上加上什么限制语句呢?
- 请看一下这两句代码有什么不同?
- 一个读取数据的问题(弱弱)
- javeScript 里面有个setTimeout 函数来实现到时间执行某个函数,ASP.NET有没有这样的函数,怎么实现?
- Binary 如何表示权限
另外搞清楚一下,需要测试的是AspTreeGrodDemo,是吗?
对测试规范另有什么要求吗?还是黑盒发现什么问题报告下就行了?
现在在phase 2设计中.
变化的代码如下,在页面中新增了一个Button按钮,点击事件为Button1_Click:
private void Page_Load(object sender, System.EventArgs e)
{
AspTreeGrid1.DataSource = GetDataByParentID(0);
AspTreeGrid1.DataBind(); if(!this.IsPostBack)
{
this.ViewState["count"] = 100;
} int count = (int)this.ViewState["count"];
int hashCode = this.ViewState.GetHashCode();
}
private void AspTreeGrid1_TreeGridExpand(object sender, benSoft.Web.WebControls.TreeEventArgs e)
{
e.ChildDataSource = GetDataByParentID(int.Parse(e.ParentID)); this.ViewState["count"] = (int)this.ViewState["count"] + 1;
int count = (int)this.ViewState["count"];
int hashCode = this.ViewState.GetHashCode();
}
private void Button1_Click(object sender, System.EventArgs e)
{
this.ViewState["count"] = (int)this.ViewState["count"] + 1;
int count = (int)this.ViewState["count"];
int hashCode = this.ViewState.GetHashCode();
}
在页面中展开节点或点击按钮,在调试状态中跟踪count的数值和hashCode的值,发现如下结果:
1、第一次加载时,在Page_Load中得到count = 100,hashCode = 104
2、展开一个节点,在AspTreeGrid1_TreeGridExpand中得到count = 101,hashCode = 104;
3、再展开一个节点,在AspTreeGrid1_TreeGridExpand中得到count = 102,hashCode = 104;
4、点击Button1按钮,在Page_Load中得到count = 100,hashCode = 87。
在Button1_Click中得到count = 101,hashCode = 87。
5、再点击Button1按钮,在Page_Load中得到count = 101,hashCode = 107。
在Button1_Click中得到count = 102,hashCode = 107。
6、再点击Button1按钮,在Page_Load中得到count = 102,hashCode = 91。
在Button1_Click中得到count = 103,hashCode = 91。
7、再展开一个节点,在AspTreeGrid1_TreeGridExpand中得到count = 103,hashCode = 104;
测试给人的感觉是,在AspTreeGrid1_TreeGridExpand方法中得到的ViewState对象与在常规方法中得到的ViewState对象不是同一个。
另外,将这个页面在多个窗口中打开,在多个页面的AspTreeGrid1_TreeGridExpand中跟踪发现,几个页面的ViewState是共用的,是同一个对象。
在一个页面中点击展开多次后,发现其它页面中也累加了这个次数。也就是说AspTreeGrid1_TreeGridExpand中的这个ViewState并不是一页面所独有,是被多个页面共用的,
尝试将所有窗口都关闭,再打开一个新的窗口,发现这个ViewState中的记数仍然保留,感觉它的生命周期比Session还长。
如果这样的话,也就是在AspTreeGrid1_TreeGridExpand这样的ajax方法中使用asp.net以前常用的ViewState对象就有问题了。
不知各位有没有碰到这样的问题?