WEB开发网
开发学院软件开发C语言 C#发现之旅 - 高性能ASP.NET树状列表控件(中) 阅读

C#发现之旅 - 高性能ASP.NET树状列表控件(中)

 2010-09-30 21:03:16 来源:WEB开发网   
核心提示: 若不是在服务器端生成HTML代码,那就是在客户端生成代码了,C#发现之旅 - 高性能ASP.NET树状列表控件(中)(7),于是程序输出一个XML数据岛的HTML代码,该数据岛的内容就是节点XML文档的内容,使得HTML页面加载时立即调用名为 RefreshSkeyTreeViewControl

若不是在服务器端生成HTML代码,那就是在客户端生成代码了,于是程序输出一个XML数据岛的HTML代码,该数据岛的内容就是节点XML文档的内容。实现这个功能的C#代码为

// 若在客户端动态生成HTML代码则将数据XML字符串输出到ASPX页面中
writer.Write("<span id='" + this.ClientID + "_container' >正在加载,请稍候C#发现之旅 - 高性能ASP.NET树状列表控件(中)</span>");
// 将数据XML字符串输出到ASPX页面中的一个XML数据岛中
writer.Write("<xml id='" + this.ClientID + "_xml'>" + xml + "</xml>");
// 输出将要初始化树状列表的JavaScript函数
this.Page.ClientScript.RegisterStartupScript(
    this.GetType() ,
    "SkyTreeViewControL_Init_" + this.ClientID , @"
<script language=javascript>
RefreshSkyTreeViewControl( '" + this.ClientID + @"' );
</script>
");

这里调用了RegisterStartupScript函数,使得HTML页面加载时立即调用名为 RefreshSkeyTreeViewControl 的JavaScript函数来初始化这个树状列表,本控件输出的第二段HTML代码就包含了该JavaScript函数。

操作数据视图

本WEB控件还在数据视图中保存数据,其功能代码为

/// <summary>
/// 保存数据视图状态
/// </summary>
/// <returns>操作结果</returns>
protected override object SaveViewState()
{
    this.ViewState["nodes"] = this.myNodes ;
    return base.SaveViewState ();
}
/// <summary>
/// 加载数据视图状态
/// </summary>
/// <param name="savedState">操作结果</param>
protected override void LoadViewState(object savedState)
{
    myNodes = this.ViewState["nodes"] as SkyTreeNodeList ;
    base.LoadViewState (savedState);
}

上一页  2 3 4 5 6 7 8 9  下一页

Tags:发现 之旅 高性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接