可以看到上 面放置了一些簡單的控件。其中比較重要的有
數據表名下拉列表,該列表列出了數據 庫中所有數據表的名稱。
XSLT模板名稱下拉列表,該列表列出了所有系統可用的XSLT 模板文件的名稱。
刷新系統按鈕,用於刷新系統數據設置,重新填充數據表名列表和 模板名列表。
創建代碼,根據當前選擇的數據表名和XSLT模板名稱創建代碼。
生成的源代碼文本標簽,使用Html格式來顯示生成的源代碼。
打開這個頁面 的C#代碼,可以看到其代碼也不復雜。這個頁面的Page_Load函數調用了刷新系統的方法 RefreshSystem。
/// <summary>
/// 刷新系統
/// </summary>
private void RefreshSystem( )
{
DataBaseInfo info = this.GetInfo();
this.lblResult.Text = info.Name ;
if( cboTable.Items.Count == 0 )
{
cboTable.Items.Add( new ListItem("所有表" , "所有表" ));
foreach( TableInfo table in info.Tables )
{
cboTable.Items.Add( new ListItem( table.Name , table.Name ));
}
}
if( cboXSLT.Items.Count == 0 )
{
cboXSLT.Items.Add("XML代碼");
string[] names = System.IO.Directory.GetFiles( this.MapPath(".") , "_*.xslt");
if( names != null && names.Length > 0 )
{
foreach( string name in names )
{
string name2 = System.IO.Path.GetFileNameWithoutExtension( name );
this.cboXSLT.Items.Add( new ListItem( name2 , name2 ));
}
}
}
}//private void RefreshSystem( )
/// <summary>
/// 獲得數據庫結構信息對象
/// </summary>
/// <returns>數據庫結構信息對象</returns>
private DataBaseInfo GetInfo( )
{
DataBaseInfo info = this.Session["info"] as DataBaseInfo ;
if( info == null )
{
info = new DataBaseInfo();
info.LoadFromAccess2000( this.MapPath ("demomdb.mdb"));
this.Session["info"] = info ;
}
return info ;
}