管理软件开发历程之三主界面
开发环境:VS2008、SQL Server2005、Coolite Toolkit
界面:
UI界面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Main.aspx.cs" Inherits="e_HR.Main" %>
<%@ Register assembly="Coolite.Ext.Web" namespace="Coolite.Ext.Web" tagprefix="ext" %>
<!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>main</title>
<script type="text/javascript">
function addTab(tabPanel, id,title, url) {
var tab = tabPanel.getComponent(id);
if (!tab) {
tab = tabPanel.add({
id: id,
title: title,
closable:true,
autoLoad: {
showMask: true,
url: url,
mode:'iframe',
maskMsg: 'Loading ' + title + '...'
}
});
tab.on('activate', function() {
var item = MenuPanel1.menu.items.get(id + "_item");
if (item) {
MenuPanel1.setSelection(item);
}
}, this);
}
tabPanel.setActiveTab(tab);
}
</script>
<style type="text/css">
.west-panel .x-layout-collapsed-west{
background: url(images/e-HR_Menu.png) no-repeat center;
}
.south-panel .x-layout-collapsed-south{
background: url(collapsed-south.png) no-repeat center;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<ext:ScriptManager ID="ScriptManager1" runat="server" />
</form>
<ext:ViewPort ID="ViewPort1" runat="server">
<Body>
<ext:BorderLayout ID="BorderLayout1" runat="server">
<North Collapsible="True" Split="True">
<ext:Panel ID="Panel1" runat="server" Height="100" Title="North" Collapsed="True">
<Body>
</Body>
</ext:Panel>
</North>
<%-- <East Collapsible="true" Split="true">
<ext:Panel ID="Panel2" runat="server" Title="East" Width="175">
<Body>
<ext:FitLayout ID="FitLayout1" runat="server">
<ext:TabPanel ID="TabPanel1" runat="server" ActiveTabIndex="0" Border="false" TabPosition="Bottom"
Title="Title">
<Tabs>
<ext:Tab ID="Tab1" runat="server" Title="Tab 1">
<Body>
</Body>
</ext:Tab>
<ext:Tab ID="Tab2" runat="server" Title="Tab 2">
<Body>
</Body>
</ext:Tab>
</Tabs>
</ext:TabPanel>
</ext:FitLayout>
</Body>
</ext:Panel>
</East>
<South Collapsible="true" Split="true">
<ext:Panel ID="Panel3" runat="server" Height="100" Title="South">
<Body>
</Body>
</ext:Panel>
</South>--%>
<West Collapsible="true" MinWidth="175" Split="true">
<ext:Panel ID="Panel4" runat="server" Title="e-HR Menu" Width="175" CtCls="west-panel" BodyStyle="padding:5px;">
<Body>
<ext:Accordion ID="Accordion1" runat="server" Animate="true">
</ext:Accordion>
</Body>
</ext:Panel>
</West>
<%-- <Center>
<ext:Panel ID="Panel7" runat="server" Title="Center">
<Body>
<ext:FitLayout ID="FitLayout2" runat="server">
<ext:TabPanel ID="TabPanel2" runat="server" ActiveTabIndex="0" Border="false" Title="Center">
</ext:TabPanel>
</ext:FitLayout>
</Body>
</ext:Panel>
</Center>--%>
<Center>
<ext:TabPanel ID="TabPanel1" runat="server">
</ext:TabPanel>
</Center>
</ext:BorderLayout>
</Body>
</ext:ViewPort>
</body>
</html>
C#后台
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Coolite;
using Coolite.Ext;
using Coolite.Ext.Web;
using Sys_Business;
using System.Data;
using System.Data.SqlClient;
namespace e_HR
{
public partial class Main : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ if(!IsPostBack)
{
LoadMenu();
}
}
private void LoadMenu()
{
DataSet Menus = new DataSet();
DataSet Menus_Sub = new DataSet();
DataRow Menus_row;
DataRow Menus_Sub_row;
MenuPanel AddMenuPanel;
string AdditemID;
string AdditemTitle;
//Coolite.Ext.Web.Menu AddMenu;
Coolite.Ext.Web.MenuItem Additem;
Menus = Sys_Business.Systeminfo.Menus(0);
// if (ds != null && ds.Tables[0].Rows.Count > 0)
//{
// for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
if (Menus != null && Menus.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < Menus.Tables[0].Rows.Count; i++)
{
Menus_row = Menus.Tables[0].Rows[i];
AddMenuPanel = new MenuPanel();
//AddMenu = new Coolite.Ext.Web.Menu();
AddMenuPanel.ID = "MenuPanel" + Menus_row["ID"].ToString();
AddMenuPanel.Title = Menus_row["Name_CN"].ToString();
//AddMenu.ID = "Menu" + Menus_row["ID"].ToString();
//AddMenuPanel.AddScript("<Menu>");
Accordion1.Items.Add(AddMenuPanel);
Menus_Sub = Sys_Business.Systeminfo.Menus(Convert.ToInt16(Menus_row["ID"]));
if (Menus_Sub != null && Menus_Sub.Tables[0].Rows.Count > 0)
for (int j = 0; j < Menus_Sub.Tables[0].Rows.Count; j++)
{
Menus_Sub_row = Menus_Sub.Tables[0].Rows[j];
AdditemID= Menus_Sub_row["ID"].ToString();
AdditemTitle=Menus_Sub_row["Name_CN"].ToString();
Additem = new Coolite.Ext.Web.MenuItem();
Additem.ID = AdditemID;
Additem.Text = AdditemTitle;
Additem.Listeners.Click.Handler = "addTab(#{TabPanel1}, '" + AdditemID + "','" + AdditemTitle + "', 'http://www.coolite.com');";
AddMenuPanel.Menu.Items.Add(Additem);
}
}
}
}
//protected void CreataTab_Click(object sender, AjaxEventArgs e)
//{
// var tab = new Tab("通过AjaxEvent新增Tab");
// tab.TabIndex = short.Parse("11");
// tab.ID = "tabID";
// tab.AutoLoad.Url = "http://www.cnblogs.com";
// tab.AutoLoad.NoCache = true;
// tab.AutoLoad.Mode = LoadMode.IFrame;
// this.TabPanel1.Tabs.Add(tab);
// this.TabPanel1.ActiveTab = tab;
//}
}
}