This commit is contained in:
三生石上 2015-05-19 14:45:47 +08:00
parent 5e56b6b67a
commit 8e116609c6
3200 changed files with 260408 additions and 181990 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
<%@ Application Codebehind="Global.asax.cs" Inherits="FineUI.Examples.Global" Language="C#" %>

View File

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
namespace FineUI.Examples
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
Application["OnlineUserCount"] = 0;
}
protected void Session_Start(object sender, EventArgs e)
{
// 这种统计在线人数的做法会有一定的误差
Application.Lock();
Application["OnlineUserCount"] = (int)Application["OnlineUserCount"] + 1;
Application.UnLock();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
}
protected void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["OnlineUserCount"] = (int)Application["OnlineUserCount"] - 1;
Application.UnLock();
}
protected void Application_End(object sender, EventArgs e)
{
}
}
}

View File

@ -1,35 +1,35 @@
using System.Reflection; using System.Reflection;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following // General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information // set of attributes. Change these attribute values to modify the information
// associated with an assembly. // associated with an assembly.
[assembly: AssemblyTitle("FineUI.Examples")] [assembly: AssemblyTitle("FineUI.Examples")]
[assembly: AssemblyDescription("")] [assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("FineUI")] [assembly: AssemblyCompany("FineUI")]
[assembly: AssemblyProduct("FineUI.Examples")] [assembly: AssemblyProduct("FineUI.Examples")]
[assembly: AssemblyCopyright("Copyright (C) 2008-2009 sanshi.ustc@gmail.com")] [assembly: AssemblyCopyright("Copyright (C) 2008-2009 sanshi.ustc@gmail.com")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible // Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from // to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type. // COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)] [assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM // The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")] [assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")]
// Version information for an assembly consists of the following four values: // Version information for an assembly consists of the following four values:
// //
// Major Version // Major Version
// Minor Version // Minor Version
// Build Number // Build Number
// Revision // Revision
// //
// You can specify all the values or you can default the Revision and Build Numbers // You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -1,58 +1,85 @@
<?xml version="1.0"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<configSections> <configSections>
<section name="FineUI" type="FineUI.ConfigSection, FineUI" requirePermission="false"/> <section name="FineUI" type="FineUI.ConfigSection, FineUI" requirePermission="false" />
</configSections> </configSections>
<!-- 可用的配置项(这里列的都是默认值): Language="zh_CN" AjaxTimeout="60" EnableAjax="true" Theme="Blue" FormMessageTarget="Qtip" FormOffsetRight="20" FormLabelWidth="100" FormLabelSeparator="" FormLabelAlign="Left" IconBasePath="~/icon" EnableAjaxLoading="true" AjaxLoadingType="Default" CustomTheme="" CustomThemeBasePath="~/theme" ExtjsBasePath="~/extjs" --> <!-- 可用的配置项(这里列的都是默认值):
<FineUI DebugMode="true" /> Theme="Neptune"
<appSettings/> Language="zh_CN"
<connectionStrings/> AjaxTimeout="120"
<system.web> EnableAjax="true"
<!-- Net3.5以上的项目一定要为pages节点加上这两个属性controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" --> DebugMode="false"
<pages> FormMessageTarget="Qtip"
<controls> FormOffsetRight="0"
<add assembly="FineUI" namespace="FineUI" tagPrefix="x"/> FormLabelWidth="100"
</controls> FormLabelSeparator=""
</pages> FormLabelAlign="Left"
<httpModules> EnableAjaxLoading="true"
<add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI"/> AjaxLoadingType="Default"
</httpModules> CustomTheme=""
<httpHandlers> IconBasePath="~/res/icon"
<add verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI" validate="false"/> CustomThemeBasePath="~/res/theme"
</httpHandlers> JSBasePath="~/extjs"
<httpRuntime maxRequestLength="102400 "/> IEEdge="true"
<customErrors mode="Off"/> -->
<compilation debug="true"/> <FineUI DebugMode="true" Theme="Neptune" />
<appSettings />
<!-- <connectionStrings />
<authentication mode="Forms"> <system.web>
<forms name=".ASPXFORMSAUTH" loginUrl="~/default.aspx" timeout="120" defaultUrl="~/main.aspx" protection="All" path="/"/> <!-- Net3.5以上的项目一定要为pages节点加上这两个属性
</authentication> controlRenderingCompatibilityVersion="3.5"
<authorization> clientIDMode="AutoID"
<deny users="?"/> -->
</authorization> <pages>
--> <controls>
<add assembly="FineUI" namespace="FineUI" tagPrefix="f" />
</system.web> </controls>
<!-- </pages>
<location path="res.axd"> <httpModules>
<system.web> <add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI" />
<authorization> </httpModules>
<allow users ="*" /> <httpHandlers>
</authorization> <add verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI" validate="false" />
</system.web> </httpHandlers>
</location> <httpRuntime maxRequestLength="102400 " />
--> <customErrors mode="Off" />
<!-- IIS7 Integrated Mode <compilation debug="true" />
<system.webServer>
<modules> <!--
<add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI"/> 在虚拟主机中运行ASP.NET程序要添加如下配置项否则在页面回发时可能出现“验证视图状态 MAC 失败”的错误。
</modules> 如何生成MachineKeyhttp://blogs.msdn.com/b/amb/archive/2012/07/31/easiest-way-to-generate-machinekey.aspx
<handlers> -->
<add name="FineUIResourceHandler" verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI" validate="false"/> <machineKey decryptionKey="C955D0B041D3749FB4E150677F827DC1857B909399A5D152,IsolateApps" validationKey="891194EEC95A3895658E397FEA04F6187CFAF77151BE89F207D993BB4BA9DE4152BACB05BC4AEB8BBB5FDD950F77881204F59F3F5DBE39FC3EC49119EA7C106D,IsolateApps" />
</handlers>
<httpErrors errorMode="Detailed"/> <!--
<asp scriptErrorSentToBrowser="true"/> <authentication mode="Forms">
</system.webServer> <forms name=".ASPXFORMSAUTH" loginUrl="~/default.aspx" timeout="120" defaultUrl="~/main.aspx" protection="All" path="/"/>
--> </authentication>
</configuration> <authorization>
<deny users="?"/>
</authorization>
-->
</system.web>
<!--
<location path="res.axd">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
-->
<!-- IIS7 Integrated Mode
<system.webServer>
<modules>
<add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI"/>
</modules>
<handlers>
<add name="FineUIResourceHandler" verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI" validate="false"/>
</handlers>
<httpErrors errorMode="Detailed"/>
<asp scriptErrorSentToBrowser="true"/>
</system.webServer>
-->
</configuration>

View File

@ -1,43 +1,48 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="accordion.aspx.cs" Inherits="FineUI.Examples.accordion.accordion2" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="accordion.aspx.cs" Inherits="FineUI.Examples.accordion.accordion2" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
<x:Accordion ID="Accordion1" Title="手风琴控件" runat="server" Width="300px" Height="450px" <f:Accordion ID="Accordion1" Title="手风琴控件" runat="server" Width="300px" Height="450px"
EnableFill="true" ShowBorder="True" ActiveIndex="1" EnableFrame="true" EnableCollapse="true"> ShowCollapseTool="true"
<Panes> ShowBorder="True" ActivePaneIndex="1" EnableCollapse="true">
<x:AccordionPane ID="AccordionPane1" runat="server" Title="面板一" IconUrl="../images/16/1.png" <Panes>
BodyPadding="2px 5px" ShowBorder="false"> <f:AccordionPane ID="AccordionPane1" runat="server" Title="面板一" IconUrl="~/res/images/16/1.png"
<Items> BodyPadding="2px 5px" ShowBorder="false">
<x:Label ID="Label1" Text="面板一中的文本" runat="server"> <Items>
</x:Label> <f:Label ID="Label1" Text="面板一中的文本" runat="server">
</Items> </f:Label>
</x:AccordionPane> </Items>
<x:AccordionPane ID="AccordionPane2" runat="server" Title="面板二" IconUrl="../images/16/4.png" </f:AccordionPane>
BodyPadding="2px 5px" ShowBorder="false"> <f:AccordionPane ID="AccordionPane2" runat="server" Title="面板二" IconUrl="~/res/images/16/4.png"
<Items> BodyPadding="2px 5px" ShowBorder="false">
<x:Label ID="Label2" Text="面板二中的文本" runat="server"> <Items>
</x:Label> <f:Label ID="Label2" Text="面板二中的文本" runat="server">
</Items> </f:Label>
</x:AccordionPane> </Items>
<x:AccordionPane ID="AccordionPane3" runat="server" Title="面板三" IconUrl="../images/16/7.png" </f:AccordionPane>
BodyPadding="2px 5px" ShowBorder="false"> <f:AccordionPane ID="AccordionPane3" runat="server" Title="面板三" IconUrl="~/res/images/16/7.png"
<Items> BodyPadding="2px 5px" ShowBorder="false">
<x:Label ID="Label3" Text="面板三中的文本" runat="server"> <Items>
</x:Label> <f:Label ID="Label3" Text="面板三中的文本" runat="server">
</Items> </f:Label>
</x:AccordionPane> </Items>
</Panes> </f:AccordionPane>
</x:Accordion> </Panes>
<br /> </f:Accordion>
<x:Button ID="Button1" Text="获取当前展开的面板" runat="server" OnClick="Button1_Click"> <br />
</x:Button> <f:Button ID="Button1" Text="获取当前展开的面板" runat="server" OnClick="Button1_Click">
</form> </f:Button>
</body> <br />
</html> <br />
<f:Button ID="Button2" Text="展开下一个面板" runat="server" OnClick="Button2_Click">
</f:Button>
</form>
</body>
</html>

View File

@ -1,23 +1,34 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Data; using System.Data;
using System.Text; using System.Text;
namespace FineUI.Examples.accordion namespace FineUI.Examples.accordion
{ {
public partial class accordion2 : PageBase public partial class accordion2 : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
} }
protected void Button1_Click(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e)
{ {
Alert.ShowInTop(String.Format("当前展开的是第 {0} 个面板", Accordion1.ActiveIndex + 1)); Alert.ShowInTop(String.Format("当前展开的是第 {0} 个面板", Accordion1.ActivePaneIndex + 1));
} }
}
} protected void Button2_Click(object sender, EventArgs e)
{
var nextIndex = Accordion1.ActivePaneIndex + 1;
if (nextIndex >= Accordion1.Panes.Count)
{
nextIndex = 0;
}
Accordion1.ActivePaneIndex = nextIndex;
}
}
}

View File

@ -1,105 +1,114 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.accordion { namespace FineUI.Examples.accordion {
public partial class accordion2 { public partial class accordion2 {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// Accordion1 控件。 /// Accordion1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Accordion Accordion1; protected global::FineUI.Accordion Accordion1;
/// <summary> /// <summary>
/// AccordionPane1 控件。 /// AccordionPane1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.AccordionPane AccordionPane1; protected global::FineUI.AccordionPane AccordionPane1;
/// <summary> /// <summary>
/// Label1 控件。 /// Label1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Label Label1; protected global::FineUI.Label Label1;
/// <summary> /// <summary>
/// AccordionPane2 控件。 /// AccordionPane2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.AccordionPane AccordionPane2; protected global::FineUI.AccordionPane AccordionPane2;
/// <summary> /// <summary>
/// Label2 控件。 /// Label2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Label Label2; protected global::FineUI.Label Label2;
/// <summary> /// <summary>
/// AccordionPane3 控件。 /// AccordionPane3 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.AccordionPane AccordionPane3; protected global::FineUI.AccordionPane AccordionPane3;
/// <summary> /// <summary>
/// Label3 控件。 /// Label3 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Label Label3; protected global::FineUI.Label Label3;
/// <summary> /// <summary>
/// Button1 控件。 /// Button1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button1; protected global::FineUI.Button Button1;
}
} /// <summary>
/// Button2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Button2;
}
}

View File

@ -0,0 +1,44 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="accordion_autopostback.aspx.cs" Inherits="FineUI.Examples.accordion.accordion_autopostback" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:Accordion ID="Accordion1" Title="手风琴控件" runat="server" Width="300px" Height="450px"
ShowCollapseTool="true"
ShowBorder="True" ActivePaneIndex="1" AutoPostBack="true" OnPaneIndexChanged="Accordion1_PaneIndexChanged" EnableCollapse="true">
<Panes>
<f:AccordionPane ID="AccordionPane1" runat="server" Title="面板一" IconUrl="~/res/images/16/1.png"
BodyPadding="2px 5px" ShowBorder="false">
<Items>
<f:Label ID="Label1" Text="面板一中的文本" runat="server">
</f:Label>
</Items>
</f:AccordionPane>
<f:AccordionPane ID="AccordionPane2" runat="server" Title="面板二" IconUrl="~/res/images/16/4.png"
BodyPadding="2px 5px" ShowBorder="false">
<Items>
<f:Label ID="Label2" Text="面板二中的文本" runat="server">
</f:Label>
</Items>
</f:AccordionPane>
<f:AccordionPane ID="AccordionPane3" runat="server" Title="面板三" IconUrl="~/res/images/16/7.png"
BodyPadding="2px 5px" ShowBorder="false">
<Items>
<f:Label ID="Label3" Text="面板三中的文本" runat="server">
</f:Label>
</Items>
</f:AccordionPane>
</Panes>
</f:Accordion>
<br />
<f:Button ID="Button1" Text="获取当前展开的面板" runat="server" OnClick="Button1_Click">
</f:Button>
</form>
</body>
</html>

View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;
namespace FineUI.Examples.accordion
{
public partial class accordion_autopostback : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Alert.ShowInTop(String.Format("当前展开的是第 {0} 个面板", Accordion1.ActivePaneIndex + 1));
}
protected void Accordion1_PaneIndexChanged(object sender, EventArgs e)
{
Alert.ShowInTop(String.Format("当前展开的是第 {0} 个面板", Accordion1.ActivePaneIndex + 1));
}
}
}

View File

@ -0,0 +1,105 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUI.Examples.accordion {
public partial class accordion_autopostback {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.PageManager PageManager1;
/// <summary>
/// Accordion1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Accordion Accordion1;
/// <summary>
/// AccordionPane1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.AccordionPane AccordionPane1;
/// <summary>
/// Label1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Label Label1;
/// <summary>
/// AccordionPane2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.AccordionPane AccordionPane2;
/// <summary>
/// Label2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Label Label2;
/// <summary>
/// AccordionPane3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.AccordionPane AccordionPane3;
/// <summary>
/// Label3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Label Label3;
/// <summary>
/// Button1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Button1;
}
}

View File

@ -1,71 +1,71 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="accordion_links.aspx.cs" <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="accordion_links.aspx.cs"
Inherits="ExtAspNet.Examples.accordion.accordion_links" %> Inherits="ExtAspNet.Examples.accordion.accordion_links" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!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"> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<ext:PageManager ID="PageManager1" runat="server" /> <ext:PageManager ID="PageManager1" runat="server" />
<ext:Accordion ID="accordionMenu" Width="250px" Height="450px" runat="server" ShowBorder="true" <ext:Accordion ID="accordionMenu" Width="250px" Height="450px" runat="server" ShowBorder="true"
ShowHeader="false" ShowCollapseTool="false"> ShowHeader="false" ShowCollapseTool="false">
<Panes> <Panes>
<ext:AccordionPane ID="AccordionPane1" runat="server" Title="AccordionPane 1" IconUrl="../images/16/1.png" <ext:AccordionPane ID="AccordionPane1" runat="server" Title="AccordionPane 1" IconUrl="../images/16/1.png"
BodyPadding="2px 5px" ShowBorder="false"> BodyPadding="2px 5px" ShowBorder="false">
<Links> <Links>
<ext:AccordionLink OnClientClick="return false;" NavigateUrl="http://www.google.com" <ext:AccordionLink OnClientClick="return false;" NavigateUrl="http://www.google.com"
Selected="true" Target="_blank" Text="Link 1" IconUrl="../images/16/2.png" runat="server" /> Selected="true" Target="_blank" Text="Link 1" IconUrl="../images/16/2.png" runat="server" />
<ext:AccordionLink OnClientClick="return false;" NavigateUrl="http://www.google.com" <ext:AccordionLink OnClientClick="return false;" NavigateUrl="http://www.google.com"
Target="_blank" Text="Link 2" IconUrl="../images/16/3.png" runat="server" /> Target="_blank" Text="Link 2" IconUrl="../images/16/3.png" runat="server" />
</Links> </Links>
</ext:AccordionPane> </ext:AccordionPane>
<ext:AccordionPane ID="AccordionPane2" runat="server" Title="AccordionPane 2" IconUrl="../images/16/4.png" <ext:AccordionPane ID="AccordionPane2" runat="server" Title="AccordionPane 2" IconUrl="../images/16/4.png"
BodyPadding="2px 5px" ShowBorder="false"> BodyPadding="2px 5px" ShowBorder="false">
<Links> <Links>
<ext:AccordionLink NavigateUrl="http://www.google.com" Target="_blank" Text="Link 1" <ext:AccordionLink NavigateUrl="http://www.google.com" Target="_blank" Text="Link 1"
IconUrl="../images/16/5.png" runat="server" /> IconUrl="../images/16/5.png" runat="server" />
<ext:AccordionLink ID="linkFYBX" NavigateUrl="http://www.google.com" Target="_blank" <ext:AccordionLink ID="linkFYBX" NavigateUrl="http://www.google.com" Target="_blank"
Text="Link 2" IconUrl="../images/16/6.png" runat="server" /> Text="Link 2" IconUrl="../images/16/6.png" runat="server" />
</Links> </Links>
</ext:AccordionPane> </ext:AccordionPane>
<ext:AccordionPane ID="AccordionPane3" runat="server" Title="AccordionPane 3" IconUrl="../images/16/7.png" <ext:AccordionPane ID="AccordionPane3" runat="server" Title="AccordionPane 3" IconUrl="../images/16/7.png"
BodyPadding="2px 5px" ShowBorder="false"> BodyPadding="2px 5px" ShowBorder="false">
<Links> <Links>
<ext:AccordionLink ID="linkDSP" NavigateUrl="http://www.google.com" Target="_blank" <ext:AccordionLink ID="linkDSP" NavigateUrl="http://www.google.com" Target="_blank"
Text="Link 1" IconUrl="../images/16/8.png" runat="server" /> Text="Link 1" IconUrl="../images/16/8.png" runat="server" />
<ext:AccordionLink NavigateUrl="http://www.google.com" Target="_blank" Text="Link 2" <ext:AccordionLink NavigateUrl="http://www.google.com" Target="_blank" Text="Link 2"
IconUrl="../images/16/9.png" runat="server" /> IconUrl="../images/16/9.png" runat="server" />
</Links> </Links>
</ext:AccordionPane> </ext:AccordionPane>
</Panes> </Panes>
</ext:Accordion> </ext:Accordion>
<br /> <br />
<a href="#" onclick="activelinks('dsp');">Select Link 1 in Panel 3</a> <a href="#" onclick="activelinks('dsp');">Select Link 1 in Panel 3</a>
<br /> <br />
<iframe width="300px" height="100px" src="./accordion_links_iframe.htm"></iframe> <iframe width="300px" height="100px" src="./accordion_links_iframe.htm"></iframe>
</form> </form>
<script type="text/javascript"> <script type="text/javascript">
function activelinks(type) { function activelinks(type) {
var menu = Ext.getCmp('<%= accordionMenu.ClientID %>'); var menu = Ext.getCmp('<%= accordionMenu.ClientID %>');
switch (type) { switch (type) {
case 'dsp': case 'dsp':
menu.box_active('<%= linkDSP.ClientID %>'); menu.box_active('<%= linkDSP.ClientID %>');
break; break;
case 'fybx': case 'fybx':
menu.box_active('<%= linkFYBX.ClientID %>'); menu.box_active('<%= linkFYBX.ClientID %>');
break; break;
} }
} }
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,25 +1,25 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Data; using System.Data;
using System.Text; using System.Text;
namespace ExtAspNet.Examples.accordion namespace ExtAspNet.Examples.accordion
{ {
public partial class accordion_links : PageBase public partial class accordion_links : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
} }
} }
} }
} }

View File

@ -1,88 +1,88 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// 此代码由工具生成。 // 此代码由工具生成。
// 运行时版本:2.0.50727.3603 // 运行时版本:2.0.50727.3603
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace ExtAspNet.Examples.accordion { namespace ExtAspNet.Examples.accordion {
public partial class accordion_links { public partial class accordion_links {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::ExtAspNet.PageManager PageManager1; protected global::ExtAspNet.PageManager PageManager1;
/// <summary> /// <summary>
/// accordionMenu 控件。 /// accordionMenu 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::ExtAspNet.Accordion accordionMenu; protected global::ExtAspNet.Accordion accordionMenu;
/// <summary> /// <summary>
/// AccordionPane1 控件。 /// AccordionPane1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::ExtAspNet.AccordionPane AccordionPane1; protected global::ExtAspNet.AccordionPane AccordionPane1;
/// <summary> /// <summary>
/// AccordionPane2 控件。 /// AccordionPane2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::ExtAspNet.AccordionPane AccordionPane2; protected global::ExtAspNet.AccordionPane AccordionPane2;
/// <summary> /// <summary>
/// linkFYBX 控件。 /// linkFYBX 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::ExtAspNet.AccordionLink linkFYBX; protected global::ExtAspNet.AccordionLink linkFYBX;
/// <summary> /// <summary>
/// AccordionPane3 控件。 /// AccordionPane3 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::ExtAspNet.AccordionPane AccordionPane3; protected global::ExtAspNet.AccordionPane AccordionPane3;
/// <summary> /// <summary>
/// linkDSP 控件。 /// linkDSP 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::ExtAspNet.AccordionLink linkDSP; protected global::ExtAspNet.AccordionLink linkDSP;
} }
} }

View File

@ -1,17 +1,17 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!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"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<title></title> <title></title>
<style type="text/css"> <style type="text/css">
body body
{ {
font-size: 12px; font-size: 12px;
} }
</style> </style>
</head> </head>
<body> <body>
This is a page in iframe. This is a page in iframe.
<br /> <br />
<a href="#" onclick="parent.window.activelinks('fybx');">Select Link 2 in Panel 2</a> <a href="#" onclick="parent.window.activelinks('fybx');">Select Link 2 in Panel 2</a>
</body> </body>
</html> </html>

View File

@ -1,51 +1,51 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="accordion_tree.aspx.cs" <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="accordion_tree.aspx.cs"
Inherits="FineUI.Examples.accordion.accordion_tree" %> Inherits="FineUI.Examples.accordion.accordion_tree" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style> <style>
body.x-body { body.f-body {
padding: 0; padding: 0;
} }
</style> </style>
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" AutoSizePanelID="RegionPanel1" runat="server"></x:PageManager> <f:PageManager ID="PageManager1" AutoSizePanelID="RegionPanel1" runat="server"></f:PageManager>
<x:RegionPanel ID="RegionPanel1" ShowBorder="false" runat="server"> <f:RegionPanel ID="RegionPanel1" ShowBorder="false" runat="server">
<Regions> <Regions>
<x:Region ID="Region2" Split="true" Width="200px" Margins="0 0 0 0" ShowHeader="false" <f:Region ID="Region2" RegionSplit="true" Width="200px" ShowHeader="false"
Title="目录" EnableCollapse="true" Layout="Fit" Position="Left" runat="server"> Title="目录" EnableCollapse="true" Layout="Fit" RegionPosition="Left" runat="server">
<Items> <Items>
<x:Accordion runat="server" ShowBorder="false" ShowHeader="false" ShowCollapseTool="true"> <f:Accordion runat="server" ShowBorder="false" ShowHeader="false" ShowCollapseTool="true">
<Panes> <Panes>
<x:AccordionPane runat="server" Title="面板一" IconUrl="~/images/16/1.png" BodyPadding="2px 5px" <f:AccordionPane runat="server" Title="面板一" IconUrl="~/res/images/16/1.png" BodyPadding="2px 5px"
Layout="Fit" ShowBorder="false"> Layout="Fit" ShowBorder="false">
<Items> <Items>
<x:Tree runat="server" EnableArrows="true" ShowBorder="false" ShowHeader="false" ID="treeMenu"> <f:Tree runat="server" ShowBorder="false" ShowHeader="false" ID="treeMenu">
</x:Tree> </f:Tree>
</Items> </Items>
</x:AccordionPane> </f:AccordionPane>
<x:AccordionPane runat="server" Title="面板二" IconUrl="~/images/16/4.png" BodyPadding="2px 5px" <f:AccordionPane runat="server" Title="面板二" IconUrl="~/res/images/16/4.png" BodyPadding="2px 5px"
ShowBorder="false"> ShowBorder="false">
<Items> <Items>
<x:Label Text="面板二中的文本" runat="server"> <f:Label Text="面板二中的文本" runat="server">
</x:Label> </f:Label>
</Items> </Items>
</x:AccordionPane> </f:AccordionPane>
</Panes> </Panes>
</x:Accordion> </f:Accordion>
</Items> </Items>
</x:Region> </f:Region>
<x:Region ID="Region3" ShowHeader="false" EnableIFrame="true" IFrameUrl="~/accordion/accordion_tree_index.htm" <f:Region ID="Region3" ShowHeader="false" EnableIFrame="true" IFrameUrl="~/accordion/accordion_tree_index.htm"
IFrameName="main" Margins="0 0 0 0" Position="Center" runat="server"> IFrameName="main" Position="Center" runat="server">
</x:Region> </f:Region>
</Regions> </Regions>
</x:RegionPanel> </f:RegionPanel>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/common/menu.xml"></asp:XmlDataSource> <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/common/menu.xml"></asp:XmlDataSource>
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,46 +1,46 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Data; using System.Data;
using System.Text; using System.Text;
namespace FineUI.Examples.accordion namespace FineUI.Examples.accordion
{ {
public partial class accordion_tree : PageBase public partial class accordion_tree : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
// 绑定 XML 数据源到树控件 // 绑定 XML 数据源到树控件
treeMenu.DataSource = XmlDataSource1; treeMenu.DataSource = XmlDataSource1;
treeMenu.DataBind(); treeMenu.DataBind();
ResolveTreeNode(treeMenu.Nodes); ResolveTreeNode(treeMenu.Nodes);
} }
} }
private void ResolveTreeNode(TreeNodeCollection nodes) private void ResolveTreeNode(TreeNodeCollection nodes)
{ {
foreach (TreeNode node in nodes) foreach (TreeNode node in nodes)
{ {
if (node.Nodes.Count == 0) if (node.Nodes.Count == 0)
{ {
if (!String.IsNullOrEmpty(node.NavigateUrl)) if (!String.IsNullOrEmpty(node.NavigateUrl))
{ {
node.Target = "main"; node.Target = "main";
} }
} }
else else
{ {
ResolveTreeNode(node.Nodes); ResolveTreeNode(node.Nodes);
} }
} }
} }
} }
} }

View File

@ -1,78 +1,78 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.accordion { namespace FineUI.Examples.accordion {
public partial class accordion_tree { public partial class accordion_tree {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// RegionPanel1 控件。 /// RegionPanel1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.RegionPanel RegionPanel1; protected global::FineUI.RegionPanel RegionPanel1;
/// <summary> /// <summary>
/// Region2 控件。 /// Region2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Region Region2; protected global::FineUI.Region Region2;
/// <summary> /// <summary>
/// treeMenu 控件。 /// treeMenu 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Tree treeMenu; protected global::FineUI.Tree treeMenu;
/// <summary> /// <summary>
/// Region3 控件。 /// Region3 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Region Region3; protected global::FineUI.Region Region3;
/// <summary> /// <summary>
/// XmlDataSource1 控件。 /// XmlDataSource1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.XmlDataSource XmlDataSource1; protected global::System.Web.UI.WebControls.XmlDataSource XmlDataSource1;
} }
} }

View File

@ -1,15 +1,15 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title></title> <title></title>
</head> </head>
<body> <body>
请注意,本示例如何做到如下几点: 请注意,本示例如何做到如下几点:
<ul> <ul>
<li>如何将树控件放在Accordion控件中 </li> <li>如何将树控件放在Accordion控件中 </li>
<li>如何从XML文件加载树控件 </li> <li>如何从XML文件加载树控件 </li>
<li>如何在后台通过递归改变每个树节点的Target属性 </li> <li>如何在后台通过递归改变每个树节点的Target属性 </li>
<li>树节点的Target属性是如何影响链接的打开位置。 </li> <li>树节点的Target属性是如何影响链接的打开位置。 </li>
</ul> </ul>
</body> </body>
</html> </html>

View File

@ -1,34 +1,37 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="aspnet.aspx.cs" Inherits="FineUI.Examples.aspnet.aspnet" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="aspnet.aspx.cs" Inherits="FineUI.Examples.aspnet.aspnet" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" AjaxAspnetControls="aspBox,aspButton" runat="server" /> <f:PageManager ID="PageManager1" AjaxAspnetControls="aspBox" runat="server" />
<x:ContentPanel ID="ContentPanel1" runat="server" Width="650px" BodyPadding="5px" <f:ContentPanel ID="ContentPanel1" runat="server" Width="650px" BodyPadding="5px"
ShowBorder="true" ShowHeader="true" Title="内容面板"> ShowBorder="true" ShowHeader="true" Title="内容面板">
<x:TextBox runat="server" Width="300px" ID="extBox"> <f:TextBox runat="server" Width="300px" ID="extBox">
</x:TextBox> </f:TextBox>
<br /> <br />
<asp:TextBox runat="server" Width="300px" ID="aspBox"></asp:TextBox> <asp:TextBox runat="server" Width="300px" ID="aspBox"></asp:TextBox>
<br /> <br />
<br /> <f:Button ID="Button1" runat="server" CssClass="marginr" Text="1. FineUI 按钮AJAX"
<x:Button ID="Button1" runat="server" CssClass="inline" Text="1. FineUI 按钮AJAX" OnClick="Button1_Click">
OnClick="Button1_Click"> </f:Button>
</x:Button> <f:Button ID="Button2" runat="server" Text="2. FineUI 按钮" EnableAjax="false" OnClick="Button2_Click">
<x:Button ID="Button2" runat="server" Text="2. FineUI 按钮" EnableAjax="false" OnClick="Button2_Click"> </f:Button>
</x:Button> <br />
<br /> <asp:Button ID="Button3" Text="3. ASP.NET 按钮AJAX" runat="server" OnClick="Button3_Click"
<asp:Button ID="Button3" Text="3. ASP.NET 按钮AJAX" runat="server" OnClick="Button3_Click" UseSubmitBehavior="false" />
UseSubmitBehavior="false" /> <asp:Button ID="Button4" Text="4. ASP.NET 按钮" runat="server" OnClick="Button4_Click" UseSubmitBehavior="true" />
<asp:Button ID="Button4" Text="4. ASP.NET 按钮" runat="server" OnClick="Button4_Click" /> </f:ContentPanel>
</x:ContentPanel> 注意:
<br /> <ul>
注意只有设置ASP.NET按钮的属性UseSubmitBehavior=false点击事件才是AJAX否则点击ASP.NET按钮会导致整个页面回发。 <li>【3. ASP.NET 按钮AJAX】设置了属性UseSubmitBehavior=false点击此按钮是AJAX回发。</li>
</form> <li>【4. ASP.NET 按钮】设置了属性UseSubmitBehavior=true点击此按钮会导致整个页面回发。</li>
</body> <li>由于【4. ASP.NET 按钮】在客户端会被渲染为input[type=submit],所以在两个文本输入框内按回车键都会导致整个页面回发。</li>
</html> </ul>
</form>
</body>
</html>

View File

@ -1,48 +1,48 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Data; using System.Data;
using System.Text; using System.Text;
namespace FineUI.Examples.aspnet namespace FineUI.Examples.aspnet
{ {
public partial class aspnet : PageBase public partial class aspnet : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
} }
} }
protected void Button1_Click(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e)
{ {
aspBox.Text = "1. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString(); aspBox.Text = "1. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString();
extBox.Text = "1. FineUI 输入框 - " + DateTime.Now.ToLongTimeString(); extBox.Text = "1. FineUI 输入框 - " + DateTime.Now.ToLongTimeString();
} }
protected void Button2_Click(object sender, EventArgs e) protected void Button2_Click(object sender, EventArgs e)
{ {
aspBox.Text = "2. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString(); aspBox.Text = "2. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString();
extBox.Text = "2. FineUI 输入框 - " + DateTime.Now.ToLongTimeString(); extBox.Text = "2. FineUI 输入框 - " + DateTime.Now.ToLongTimeString();
} }
protected void Button3_Click(object sender, EventArgs e) protected void Button3_Click(object sender, EventArgs e)
{ {
aspBox.Text = "3. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString(); aspBox.Text = "3. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString();
extBox.Text = "3. FineUI 输入框 - " + DateTime.Now.ToLongTimeString(); extBox.Text = "3. FineUI 输入框 - " + DateTime.Now.ToLongTimeString();
} }
protected void Button4_Click(object sender, EventArgs e) protected void Button4_Click(object sender, EventArgs e)
{ {
aspBox.Text = "4. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString(); aspBox.Text = "4. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString();
extBox.Text = "4. FineUI 输入框 - " + DateTime.Now.ToLongTimeString(); extBox.Text = "4. FineUI 输入框 - " + DateTime.Now.ToLongTimeString();
} }
} }
} }

View File

@ -1,96 +1,96 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.aspnet { namespace FineUI.Examples.aspnet {
public partial class aspnet { public partial class aspnet {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// ContentPanel1 控件。 /// ContentPanel1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.ContentPanel ContentPanel1; protected global::FineUI.ContentPanel ContentPanel1;
/// <summary> /// <summary>
/// extBox 控件。 /// extBox 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.TextBox extBox; protected global::FineUI.TextBox extBox;
/// <summary> /// <summary>
/// aspBox 控件。 /// aspBox 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.TextBox aspBox; protected global::System.Web.UI.WebControls.TextBox aspBox;
/// <summary> /// <summary>
/// Button1 控件。 /// Button1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button1; protected global::FineUI.Button Button1;
/// <summary> /// <summary>
/// Button2 控件。 /// Button2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button2; protected global::FineUI.Button Button2;
/// <summary> /// <summary>
/// Button3 控件。 /// Button3 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Button Button3; protected global::System.Web.UI.WebControls.Button Button3;
/// <summary> /// <summary>
/// Button4 控件。 /// Button4 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Button Button4; protected global::System.Web.UI.WebControls.Button Button4;
} }
} }

View File

@ -1,27 +1,27 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="aspnet_literal.aspx.cs" <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="aspnet_literal.aspx.cs"
Inherits="FineUI.Examples.aspnet.aspnet_literal" %> Inherits="FineUI.Examples.aspnet.aspnet_literal" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" AjaxAspnetControls="Label1,Literal1,Literal2_Container" runat="server" /> <f:PageManager ID="PageManager1" AjaxAspnetControls="Label1,Literal1,Literal2_Container" runat="server" />
<asp:Label ID="Label1" Text="Label1" runat="server"></asp:Label> <asp:Label ID="Label1" Text="Label1" runat="server"></asp:Label>
<br /> <br />
<asp:Literal ID="Literal1" Text="Literal1" runat="server"></asp:Literal> <asp:Literal ID="Literal1" Text="Literal1" runat="server"></asp:Literal>
<br /> <br />
<div id="Literal2_Container"> <div id="Literal2_Container">
<asp:Literal ID="Literal2" Text="Literal2" runat="server"></asp:Literal> <asp:Literal ID="Literal2" Text="Literal2" runat="server"></asp:Literal>
</div> </div>
<br /> <br />
<x:Button ID="Button1" runat="server" Text="更新上面几个文本值" OnClick="Button1_Click"> <f:Button ID="Button1" runat="server" Text="更新上面几个文本值" OnClick="Button1_Click">
</x:Button> </f:Button>
<br /> <br />
注意只有Label1和Literal2的值更新了。 注意只有Label1和Literal2的值更新了。
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,30 +1,30 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Data; using System.Data;
using System.Text; using System.Text;
namespace FineUI.Examples.aspnet namespace FineUI.Examples.aspnet
{ {
public partial class aspnet_literal : PageBase public partial class aspnet_literal : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
} }
} }
protected void Button1_Click(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e)
{ {
Label1.Text = "Label1 - " + DateTime.Now.ToLongTimeString(); Label1.Text = "Label1 - " + DateTime.Now.ToLongTimeString();
Literal1.Text = "Literal1 - " + DateTime.Now.ToLongTimeString(); Literal1.Text = "Literal1 - " + DateTime.Now.ToLongTimeString();
Literal2.Text = "Literal2 - " + DateTime.Now.ToLongTimeString(); Literal2.Text = "Literal2 - " + DateTime.Now.ToLongTimeString();
} }
} }
} }

View File

@ -1,69 +1,69 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.aspnet { namespace FineUI.Examples.aspnet {
public partial class aspnet_literal { public partial class aspnet_literal {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// Label1 控件。 /// Label1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label Label1; protected global::System.Web.UI.WebControls.Label Label1;
/// <summary> /// <summary>
/// Literal1 控件。 /// Literal1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Literal Literal1; protected global::System.Web.UI.WebControls.Literal Literal1;
/// <summary> /// <summary>
/// Literal2 控件。 /// Literal2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Literal Literal2; protected global::System.Web.UI.WebControls.Literal Literal2;
/// <summary> /// <summary>
/// Button1 控件。 /// Button1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button1; protected global::FineUI.Button Button1;
} }
} }

View File

@ -1,198 +1,198 @@
using System; using System;
using System.Drawing; using System.Drawing;
using System.Drawing.Drawing2D; using System.Drawing.Drawing2D;
using System.Drawing.Imaging; using System.Drawing.Imaging;
using System.Drawing.Text; using System.Drawing.Text;
namespace CaptchaImage namespace CaptchaImage
{ {
/// <summary> /// <summary>
/// 这个生成验证码图片的代码来自http://www.codeproject.com/KB/aspnet/CaptchaImage.aspx /// 这个生成验证码图片的代码来自http://www.codeproject.com/KB/aspnet/CaptchaImage.aspx
/// </summary> /// </summary>
public class CaptchaImage public class CaptchaImage
{ {
// Public properties (all read-only). // Public properties (all read-only).
public string Text public string Text
{ {
get { return this.text; } get { return this.text; }
} }
public Bitmap Image public Bitmap Image
{ {
get { return this.image; } get { return this.image; }
} }
public int Width public int Width
{ {
get { return this.width; } get { return this.width; }
} }
public int Height public int Height
{ {
get { return this.height; } get { return this.height; }
} }
// Internal properties. // Internal properties.
private string text; private string text;
private int width; private int width;
private int height; private int height;
private string familyName; private string familyName;
private Bitmap image; private Bitmap image;
// For generating random numbers. // For generating random numbers.
private Random random = new Random(); private Random random = new Random();
// ==================================================================== // ====================================================================
// Initializes a new instance of the CaptchaImage class using the // Initializes a new instance of the CaptchaImage class using the
// specified text, width and height. // specified text, width and height.
// ==================================================================== // ====================================================================
public CaptchaImage(string s, int width, int height) public CaptchaImage(string s, int width, int height)
{ {
this.text = s; this.text = s;
this.SetDimensions(width, height); this.SetDimensions(width, height);
this.GenerateImage(); this.GenerateImage();
} }
// ==================================================================== // ====================================================================
// Initializes a new instance of the CaptchaImage class using the // Initializes a new instance of the CaptchaImage class using the
// specified text, width, height and font family. // specified text, width, height and font family.
// ==================================================================== // ====================================================================
public CaptchaImage(string s, int width, int height, string familyName) public CaptchaImage(string s, int width, int height, string familyName)
{ {
this.text = s; this.text = s;
this.SetDimensions(width, height); this.SetDimensions(width, height);
this.SetFamilyName(familyName); this.SetFamilyName(familyName);
this.GenerateImage(); this.GenerateImage();
} }
// ==================================================================== // ====================================================================
// This member overrides Object.Finalize. // This member overrides Object.Finalize.
// ==================================================================== // ====================================================================
~CaptchaImage() ~CaptchaImage()
{ {
Dispose(false); Dispose(false);
} }
// ==================================================================== // ====================================================================
// Releases all resources used by this object. // Releases all resources used by this object.
// ==================================================================== // ====================================================================
public void Dispose() public void Dispose()
{ {
GC.SuppressFinalize(this); GC.SuppressFinalize(this);
this.Dispose(true); this.Dispose(true);
} }
// ==================================================================== // ====================================================================
// Custom Dispose method to clean up unmanaged resources. // Custom Dispose method to clean up unmanaged resources.
// ==================================================================== // ====================================================================
protected virtual void Dispose(bool disposing) protected virtual void Dispose(bool disposing)
{ {
if (disposing) if (disposing)
// Dispose of the bitmap. // Dispose of the bitmap.
this.image.Dispose(); this.image.Dispose();
} }
// ==================================================================== // ====================================================================
// Sets the image width and height. // Sets the image width and height.
// ==================================================================== // ====================================================================
private void SetDimensions(int width, int height) private void SetDimensions(int width, int height)
{ {
// Check the width and height. // Check the width and height.
if (width <= 0) if (width <= 0)
throw new ArgumentOutOfRangeException("width", width, "Argument out of range, must be greater than zero."); throw new ArgumentOutOfRangeException("width", width, "Argument out of range, must be greater than zero.");
if (height <= 0) if (height <= 0)
throw new ArgumentOutOfRangeException("height", height, "Argument out of range, must be greater than zero."); throw new ArgumentOutOfRangeException("height", height, "Argument out of range, must be greater than zero.");
this.width = width; this.width = width;
this.height = height; this.height = height;
} }
// ==================================================================== // ====================================================================
// Sets the font used for the image text. // Sets the font used for the image text.
// ==================================================================== // ====================================================================
private void SetFamilyName(string familyName) private void SetFamilyName(string familyName)
{ {
// If the named font is not installed, default to a system font. // If the named font is not installed, default to a system font.
try try
{ {
Font font = new Font(this.familyName, 13F); Font font = new Font(this.familyName, 13F);
this.familyName = familyName; this.familyName = familyName;
font.Dispose(); font.Dispose();
} }
catch (Exception) catch (Exception)
{ {
this.familyName = System.Drawing.FontFamily.GenericSerif.Name; this.familyName = System.Drawing.FontFamily.GenericSerif.Name;
} }
} }
// ==================================================================== // ====================================================================
// Creates the bitmap image. // Creates the bitmap image.
// ==================================================================== // ====================================================================
private void GenerateImage() private void GenerateImage()
{ {
// Create a new 32-bit bitmap image. // Create a new 32-bit bitmap image.
Bitmap bitmap = new Bitmap(this.width, this.height, PixelFormat.Format32bppArgb); Bitmap bitmap = new Bitmap(this.width, this.height, PixelFormat.Format32bppArgb);
// Create a graphics object for drawing. // Create a graphics object for drawing.
Graphics g = Graphics.FromImage(bitmap); Graphics g = Graphics.FromImage(bitmap);
g.SmoothingMode = SmoothingMode.AntiAlias; g.SmoothingMode = SmoothingMode.AntiAlias;
Rectangle rect = new Rectangle(0, 0, this.width, this.height); Rectangle rect = new Rectangle(0, 0, this.width, this.height);
// Fill in the background. // Fill in the background.
HatchBrush hatchBrush = new HatchBrush(HatchStyle.SmallConfetti, Color.LightGray, Color.White); HatchBrush hatchBrush = new HatchBrush(HatchStyle.SmallConfetti, Color.LightGray, Color.White);
g.FillRectangle(hatchBrush, rect); g.FillRectangle(hatchBrush, rect);
// Set up the text font. // Set up the text font.
SizeF size; SizeF size;
float fontSize = rect.Height + 1; float fontSize = rect.Height + 1;
Font font; Font font;
// Adjust the font size until the text fits within the image. // Adjust the font size until the text fits within the image.
do do
{ {
fontSize--; fontSize--;
font = new Font(this.familyName, fontSize, FontStyle.Bold); font = new Font(this.familyName, fontSize, FontStyle.Bold);
size = g.MeasureString(this.text, font); size = g.MeasureString(this.text, font);
} while (size.Width > rect.Width); } while (size.Width > rect.Width);
// Set up the text format. // Set up the text format.
StringFormat format = new StringFormat(); StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center; format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center; format.LineAlignment = StringAlignment.Center;
// Create a path using the text and warp it randomly. // Create a path using the text and warp it randomly.
GraphicsPath path = new GraphicsPath(); GraphicsPath path = new GraphicsPath();
path.AddString(this.text, font.FontFamily, (int)font.Style, font.Size, rect, format); path.AddString(this.text, font.FontFamily, (int)font.Style, font.Size, rect, format);
float v = 8F; float v = 8F;
PointF[] points = PointF[] points =
{ {
new PointF(this.random.Next(rect.Width) / v, this.random.Next(rect.Height) / v), new PointF(this.random.Next(rect.Width) / v, this.random.Next(rect.Height) / v),
new PointF(rect.Width - this.random.Next(rect.Width) / v, this.random.Next(rect.Height) / v), new PointF(rect.Width - this.random.Next(rect.Width) / v, this.random.Next(rect.Height) / v),
new PointF(this.random.Next(rect.Width) / v, rect.Height - this.random.Next(rect.Height) / v), new PointF(this.random.Next(rect.Width) / v, rect.Height - this.random.Next(rect.Height) / v),
new PointF(rect.Width - this.random.Next(rect.Width) / v, rect.Height - this.random.Next(rect.Height) / v) new PointF(rect.Width - this.random.Next(rect.Width) / v, rect.Height - this.random.Next(rect.Height) / v)
}; };
Matrix matrix = new Matrix(); Matrix matrix = new Matrix();
matrix.Translate(0F, 0F); matrix.Translate(0F, 0F);
path.Warp(points, rect, matrix, WarpMode.Perspective, 0F); path.Warp(points, rect, matrix, WarpMode.Perspective, 0F);
// Draw the text. // Draw the text.
hatchBrush = new HatchBrush(HatchStyle.LargeConfetti, Color.Green, Color.DarkGray); hatchBrush = new HatchBrush(HatchStyle.LargeConfetti, Color.Green, Color.DarkGray);
g.FillPath(hatchBrush, path); g.FillPath(hatchBrush, path);
// Add some random noise. // Add some random noise.
int m = Math.Max(rect.Width, rect.Height); int m = Math.Max(rect.Width, rect.Height);
for (int i = 0; i < (int)(rect.Width * rect.Height / 30F); i++) for (int i = 0; i < (int)(rect.Width * rect.Height / 30F); i++)
{ {
int x = this.random.Next(rect.Width); int x = this.random.Next(rect.Width);
int y = this.random.Next(rect.Height); int y = this.random.Next(rect.Height);
int w = this.random.Next(m / 50); int w = this.random.Next(m / 50);
int h = this.random.Next(m / 50); int h = this.random.Next(m / 50);
g.FillEllipse(hatchBrush, x, y, w, h); g.FillEllipse(hatchBrush, x, y, w, h);
} }
// Clean up. // Clean up.
font.Dispose(); font.Dispose();
hatchBrush.Dispose(); hatchBrush.Dispose();
g.Dispose(); g.Dispose();
// Set the image. // Set the image.
this.image = bitmap; this.image = bitmap;
} }
} }
} }

View File

@ -1 +1 @@
<%@ WebHandler Language="C#" CodeBehind="captcha.ashx.cs" Class="FineUI.Examples.basic.Captcha.captcha" %> <%@ WebHandler Language="C#" CodeBehind="captcha.ashx.cs" Class="FineUI.Examples.basic.Captcha.captcha" %>

View File

@ -1,53 +1,53 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.Services; using System.Web.Services;
using System.Web.SessionState; using System.Web.SessionState;
using System.Drawing.Imaging; using System.Drawing.Imaging;
namespace FineUI.Examples.basic.Captcha namespace FineUI.Examples.basic.Captcha
{ {
/// <summary> /// <summary>
/// 生成验证码图片 /// 生成验证码图片
/// </summary> /// </summary>
[WebService(Namespace = "http://tempuri.org/")] [WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class captcha : IHttpHandler, IReadOnlySessionState public class captcha : IHttpHandler, IReadOnlySessionState
{ {
public void ProcessRequest(HttpContext context) public void ProcessRequest(HttpContext context)
{ {
int width = 200; int width = 200;
int height = 30; int height = 30;
try try
{ {
width = Convert.ToInt32(context.Request.QueryString["w"]); width = Convert.ToInt32(context.Request.QueryString["w"]);
height = Convert.ToInt32(context.Request.QueryString["h"]); height = Convert.ToInt32(context.Request.QueryString["h"]);
} }
catch (Exception) catch (Exception)
{ {
// Nothing // Nothing
} }
// 从 Session 中读取验证码,并创建图片 // 从 Session 中读取验证码,并创建图片
CaptchaImage.CaptchaImage ci = new CaptchaImage.CaptchaImage(context.Session["CaptchaImageText"].ToString(), width, height, "Consolas"); CaptchaImage.CaptchaImage ci = new CaptchaImage.CaptchaImage(context.Session["CaptchaImageText"].ToString(), width, height, "Consolas");
// 输出图片 // 输出图片
context.Response.Clear(); context.Response.Clear();
context.Response.ContentType = "image/jpeg"; context.Response.ContentType = "image/jpeg";
ci.Image.Save(context.Response.OutputStream, ImageFormat.Jpeg); ci.Image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
ci.Dispose(); ci.Dispose();
} }
public bool IsReusable public bool IsReusable
{ {
get get
{ {
return false; return false;
} }
} }
} }
} }

View File

@ -1,19 +1,20 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="hello.aspx.cs" Inherits="FineUI.Examples.basic.hello" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="hello.aspx.cs" Inherits="FineUI.Examples.basic.hello" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
<x:Button Text="点击弹出对话框" runat="server" ID="btnHello" OnClick="btnHello_Click"> <f:Button Text="点击弹出对话框" runat="server" ID="btnHello" OnClick="btnHello_Click">
</x:Button> </f:Button>
<br /> <br />
<x:Button Text="在顶层窗口弹出对话框" runat="server" ID="btnHello2" OnClick="btnHello2_Click"> <br />
</x:Button> <f:Button Text="在顶层窗口弹出对话框" runat="server" ID="btnHello2" OnClick="btnHello2_Click">
</form> </f:Button>
</body> </form>
</html> </body>
</html>

View File

@ -1,26 +1,26 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
namespace FineUI.Examples.basic namespace FineUI.Examples.basic
{ {
public partial class hello : PageBase public partial class hello : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
} }
protected void btnHello_Click(object sender, EventArgs e) protected void btnHello_Click(object sender, EventArgs e)
{ {
Alert.Show("你好 FineUI", MessageBoxIcon.Warning); Alert.Show("你好 FineUI", MessageBoxIcon.Warning);
} }
protected void btnHello2_Click(object sender, EventArgs e) protected void btnHello2_Click(object sender, EventArgs e)
{ {
Alert.ShowInTop("你好 FineUI", MessageBoxIcon.Information); Alert.ShowInTop("你好 FineUI", MessageBoxIcon.Information);
} }
} }
} }

View File

@ -1,51 +1,51 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.basic { namespace FineUI.Examples.basic {
public partial class hello { public partial class hello {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// btnHello 控件。 /// btnHello 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnHello; protected global::FineUI.Button btnHello;
/// <summary> /// <summary>
/// btnHello2 控件。 /// btnHello2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnHello2; protected global::FineUI.Button btnHello2;
} }
} }

View File

@ -1,14 +1,14 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="hello_aspnet.aspx.cs" Inherits="FineUI.Examples.basic.hello_aspnet" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="hello_aspnet.aspx.cs" Inherits="FineUI.Examples.basic.hello_aspnet" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<asp:Button Text="点击弹出对话框" runat="server" ID="btnHello" OnClick="btnHello_Click" /> <asp:Button Text="点击弹出对话框" runat="server" ID="btnHello" OnClick="btnHello_Click" />
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,21 +1,21 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
namespace FineUI.Examples.basic namespace FineUI.Examples.basic
{ {
public partial class hello_aspnet : System.Web.UI.Page public partial class hello_aspnet : System.Web.UI.Page
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
} }
protected void btnHello_Click(object sender, EventArgs e) protected void btnHello_Click(object sender, EventArgs e)
{ {
Page.ClientScript.RegisterStartupScript(this.GetType(), "alert_hello", "alert('你好 Asp.Net');", true); Page.ClientScript.RegisterStartupScript(this.GetType(), "alert_hello", "alert('你好 Asp.Net');", true);
} }
} }
} }

View File

@ -1,33 +1,33 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.basic { namespace FineUI.Examples.basic {
public partial class hello_aspnet { public partial class hello_aspnet {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// btnHello 控件。 /// btnHello 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Button btnHello; protected global::System.Web.UI.WebControls.Button btnHello;
} }
} }

View File

@ -1,42 +1,47 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login.aspx.cs" Inherits="FineUI.Examples.basic.login" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login.aspx.cs" Inherits="FineUI.Examples.basic.login" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
用户名admin 用户名admin
<br /> <br />
密码admin 密码admin
<br /> <br />
注意在任意文本输入框内按回车键都会触发按钮Type="Submit")的表单提交事件。 <br />
<x:Window ID="Window1" runat="server" Title="登录表单" IsModal="false" EnableClose="false" <br />
WindowPosition="GoldenSection" Width="350px" FooterBarAlign="Right"> 注意:在任意输入框内按回车键都会触发表单的提交(相当于点击【登陆】按钮)。
<Items> <f:Window ID="Window1" runat="server" Title="登录表单" IsModal="false" EnableClose="false"
<x:SimpleForm ID="SimpleForm1" runat="server" ShowBorder="false" BodyPadding="10px" WindowPosition="GoldenSection" Width="350px">
LabelWidth="60px" ShowHeader="false"> <Items>
<Items> <f:SimpleForm ID="SimpleForm1" runat="server" ShowBorder="false" BodyPadding="10px"
<x:TextBox ID="tbxUserName" Label="用户名" Required="true" runat="server"> LabelWidth="60px" ShowHeader="false">
</x:TextBox> <Items>
<x:TextBox ID="tbxPassword" Label="密码" TextMode="Password" Required="true" runat="server"> <f:TextBox ID="tbxUserName" Label="用户名" Required="true" runat="server">
</x:TextBox> </f:TextBox>
</Items> <f:TextBox ID="tbxPassword" Label="密码" TextMode="Password" Required="true" runat="server">
</x:SimpleForm> </f:TextBox>
</Items> </Items>
<Toolbars> </f:SimpleForm>
<x:Toolbar ID="Toolbar1" runat="server" Position="Footer"> </Items>
<Items> <Toolbars>
<x:Button ID="btnLogin" Text="登录" Type="Submit" ValidateForms="SimpleForm1" ValidateTarget="Top" <f:Toolbar ID="Toolbar1" runat="server" ToolbarAlign="Right" Position="Bottom">
runat="server" OnClick="btnLogin_Click"> <Items>
</x:Button> <f:Button ID="btnLogin" Text="登录" Type="Submit" ValidateForms="SimpleForm1" ValidateTarget="Top"
</Items> runat="server" OnClick="btnLogin_Click">
</x:Toolbar> </f:Button>
</Toolbars> <f:Button ID="btnReset" Text="重置" Type="Reset" EnablePostBack="false"
</x:Window> runat="server">
</form> </f:Button>
</body> </Items>
</html> </f:Toolbar>
</Toolbars>
</f:Window>
</form>
</body>
</html>

View File

@ -1,31 +1,31 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Data; using System.Data;
using System.Text; using System.Text;
namespace FineUI.Examples.basic namespace FineUI.Examples.basic
{ {
public partial class login : PageBase public partial class login : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
} }
protected void btnLogin_Click(object sender, EventArgs e) protected void btnLogin_Click(object sender, EventArgs e)
{ {
if (tbxUserName.Text == "admin" && tbxPassword.Text == "admin") if (tbxUserName.Text == "admin" && tbxPassword.Text == "admin")
{ {
Alert.ShowInTop("成功登录!"); Alert.ShowInTop("成功登录!");
} }
else else
{ {
Alert.ShowInTop("用户名或密码错误!", MessageBoxIcon.Error); Alert.ShowInTop("用户名或密码错误!", MessageBoxIcon.Error);
} }
} }
} }
} }

View File

@ -1,87 +1,96 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.basic { namespace FineUI.Examples.basic {
public partial class login { public partial class login {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// Window1 控件。 /// Window1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Window Window1; protected global::FineUI.Window Window1;
/// <summary> /// <summary>
/// SimpleForm1 控件。 /// SimpleForm1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.SimpleForm SimpleForm1; protected global::FineUI.SimpleForm SimpleForm1;
/// <summary> /// <summary>
/// tbxUserName 控件。 /// tbxUserName 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.TextBox tbxUserName; protected global::FineUI.TextBox tbxUserName;
/// <summary> /// <summary>
/// tbxPassword 控件。 /// tbxPassword 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.TextBox tbxPassword; protected global::FineUI.TextBox tbxPassword;
/// <summary> /// <summary>
/// Toolbar1 控件。 /// Toolbar1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Toolbar Toolbar1; protected global::FineUI.Toolbar Toolbar1;
/// <summary> /// <summary>
/// btnLogin 控件。 /// btnLogin 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnLogin; protected global::FineUI.Button btnLogin;
}
} /// <summary>
/// btnReset 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnReset;
}
}

View File

@ -1,55 +1,58 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login_captcha.aspx.cs" <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login_captcha.aspx.cs"
Inherits="FineUI.Examples.basic.login_captcha" %> Inherits="FineUI.Examples.basic.login_captcha" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
用户名admin 用户名admin
<br /> <br />
密码admin 密码admin
<br /> <br />
<br /> <br />
<x:Window ID="Window1" runat="server" Title="登录表单" IsModal="false" EnableClose="false" <f:Window ID="Window1" runat="server" Title="登录表单" IsModal="false" EnableClose="false"
WindowPosition="GoldenSection" Width="350px"> WindowPosition="GoldenSection" Width="350px">
<Items> <Items>
<x:SimpleForm ID="SimpleForm1" runat="server" ShowBorder="false" BodyPadding="10px" <f:SimpleForm ID="SimpleForm1" runat="server" ShowBorder="false" BodyPadding="10px"
LabelWidth="60px" ShowHeader="false"> LabelWidth="60px" ShowHeader="false">
<Items> <Items>
<x:TextBox ID="tbxUserName" Label="用户名" Required="true" runat="server"> <f:TextBox ID="tbxUserName" Label="用户名" Required="true" runat="server">
</x:TextBox> </f:TextBox>
<x:TextBox ID="tbxPassword" Label="密码" TextMode="Password" Required="true" runat="server"> <f:TextBox ID="tbxPassword" Label="密码" TextMode="Password" Required="true" runat="server">
</x:TextBox> </f:TextBox>
<x:TextBox ID="tbxCaptcha" Label="验证码" Required="true" runat="server"> <f:TextBox ID="tbxCaptcha" Label="验证码" Required="true" runat="server">
</x:TextBox> </f:TextBox>
<x:Panel CssStyle="padding-left:65px;" ShowBorder="false" ShowHeader="false" <f:Panel CssStyle="padding-left:65px;" ShowBorder="false" ShowHeader="false"
runat="server"> runat="server">
<Items> <Items>
<x:Image ID="imgCaptcha" CssStyle="float:left;width:160px;" runat="server" ShowEmptyLabel="true"> <f:Image ID="imgCaptcha" CssStyle="float:left;width:160px;" runat="server">
</x:Image> </f:Image>
<x:LinkButton CssStyle="float:left;padding-top:8px;" ID="btnRefresh" Text="看不清?" <f:LinkButton CssStyle="float:left;margin-top:8px;" ID="btnRefresh" Text="看不清?"
runat="server" OnClick="btnRefresh_Click"> runat="server" OnClick="btnRefresh_Click">
</x:LinkButton> </f:LinkButton>
</Items> </Items>
</x:Panel> </f:Panel>
</Items> </Items>
</x:SimpleForm> </f:SimpleForm>
</Items> </Items>
<Toolbars> <Toolbars>
<x:Toolbar ID="Toolbar1" runat="server" Position="Footer"> <f:Toolbar ID="Toolbar1" runat="server" ToolbarAlign="Right" Position="Bottom">
<Items> <Items>
<x:Button ID="btnLogin" Text="登录" Type="Submit" ValidateForms="SimpleForm1" ValidateTarget="Top" <f:Button ID="btnLogin" Text="登录" Type="Submit" ValidateForms="SimpleForm1" ValidateTarget="Top"
runat="server" OnClick="btnLogin_Click"> runat="server" OnClick="btnLogin_Click">
</x:Button> </f:Button>
</Items> <f:Button ID="btnReset" Text="重置" Type="Reset" EnablePostBack="false"
</x:Toolbar> runat="server">
</Toolbars> </f:Button>
</x:Window> </Items>
</form> </f:Toolbar>
</body> </Toolbars>
</html> </f:Window>
</form>
</body>
</html>

View File

@ -1,76 +1,76 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Data; using System.Data;
using System.Text; using System.Text;
namespace FineUI.Examples.basic namespace FineUI.Examples.basic
{ {
public partial class login_captcha : PageBase public partial class login_captcha : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
LoadData(); LoadData();
} }
} }
private void LoadData() private void LoadData()
{ {
InitCaptchaCode(); InitCaptchaCode();
} }
/// <summary> /// <summary>
/// 初始化验证码 /// 初始化验证码
/// </summary> /// </summary>
private void InitCaptchaCode() private void InitCaptchaCode()
{ {
// 创建一个 6 位的随机数并保存在 Session 对象中 // 创建一个 6 位的随机数并保存在 Session 对象中
Session["CaptchaImageText"] = GenerateRandomCode(); Session["CaptchaImageText"] = GenerateRandomCode();
imgCaptcha.ImageUrl = "~/basic/captcha/captcha.ashx?w=150&h=30&t=" + DateTime.Now.Ticks; imgCaptcha.ImageUrl = "~/basic/captcha/captcha.ashx?w=150&h=30&t=" + DateTime.Now.Ticks;
} }
/// <summary> /// <summary>
/// 创建一个 6 位的随机数 /// 创建一个 6 位的随机数
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
private string GenerateRandomCode() private string GenerateRandomCode()
{ {
string s = String.Empty; string s = String.Empty;
Random random = new Random(); Random random = new Random();
for (int i = 0; i < 6; i++) for (int i = 0; i < 6; i++)
{ {
s += random.Next(10).ToString(); s += random.Next(10).ToString();
} }
return s; return s;
} }
protected void btnRefresh_Click(object sender, EventArgs e) protected void btnRefresh_Click(object sender, EventArgs e)
{ {
InitCaptchaCode(); InitCaptchaCode();
} }
protected void btnLogin_Click(object sender, EventArgs e) protected void btnLogin_Click(object sender, EventArgs e)
{ {
if (tbxCaptcha.Text != Session["CaptchaImageText"].ToString()) if (tbxCaptcha.Text != Session["CaptchaImageText"].ToString())
{ {
Alert.ShowInTop("验证码错误!"); Alert.ShowInTop("验证码错误!");
return; return;
} }
if (tbxUserName.Text == "admin" && tbxPassword.Text == "admin") if (tbxUserName.Text == "admin" && tbxPassword.Text == "admin")
{ {
Alert.ShowInTop("成功登录!"); Alert.ShowInTop("成功登录!");
} }
else else
{ {
Alert.ShowInTop("用户名或密码错误!", MessageBoxIcon.Error); Alert.ShowInTop("用户名或密码错误!", MessageBoxIcon.Error);
} }
} }
} }
} }

View File

@ -1,114 +1,123 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.basic { namespace FineUI.Examples.basic {
public partial class login_captcha { public partial class login_captcha {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// Window1 控件。 /// Window1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Window Window1; protected global::FineUI.Window Window1;
/// <summary> /// <summary>
/// SimpleForm1 控件。 /// SimpleForm1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.SimpleForm SimpleForm1; protected global::FineUI.SimpleForm SimpleForm1;
/// <summary> /// <summary>
/// tbxUserName 控件。 /// tbxUserName 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.TextBox tbxUserName; protected global::FineUI.TextBox tbxUserName;
/// <summary> /// <summary>
/// tbxPassword 控件。 /// tbxPassword 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.TextBox tbxPassword; protected global::FineUI.TextBox tbxPassword;
/// <summary> /// <summary>
/// tbxCaptcha 控件。 /// tbxCaptcha 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.TextBox tbxCaptcha; protected global::FineUI.TextBox tbxCaptcha;
/// <summary> /// <summary>
/// imgCaptcha 控件。 /// imgCaptcha 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Image imgCaptcha; protected global::FineUI.Image imgCaptcha;
/// <summary> /// <summary>
/// btnRefresh 控件。 /// btnRefresh 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.LinkButton btnRefresh; protected global::FineUI.LinkButton btnRefresh;
/// <summary> /// <summary>
/// Toolbar1 控件。 /// Toolbar1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Toolbar Toolbar1; protected global::FineUI.Toolbar Toolbar1;
/// <summary> /// <summary>
/// btnLogin 控件。 /// btnLogin 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnLogin; protected global::FineUI.Button btnLogin;
}
} /// <summary>
/// btnReset 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnReset;
}
}

View File

@ -0,0 +1,47 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login_enterkey.aspx.cs" Inherits="FineUI.Examples.basic.login_enterkey" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
用户名admin
<br />
密码admin
<br />
<br />
<br />
注意:在表单内按回车键会导航到下一个控件。
<f:Window ID="Window1" runat="server" Title="登录表单" IsModal="false" EnableClose="false"
WindowPosition="GoldenSection" Width="350px">
<Items>
<f:SimpleForm ID="SimpleForm1" runat="server" ShowBorder="false" BodyPadding="10px"
LabelWidth="60px" ShowHeader="false">
<Items>
<f:TextBox ID="tbxUserName" Label="用户名" Required="true" runat="server" NextFocusControl="tbxPassword">
</f:TextBox>
<f:TextBox ID="tbxPassword" Label="密码" TextMode="Password" Required="true" runat="server" NextFocusControl="btnLogin">
</f:TextBox>
</Items>
</f:SimpleForm>
</Items>
<Toolbars>
<f:Toolbar ID="Toolbar1" runat="server" ToolbarAlign="Right" Position="Bottom">
<Items>
<f:Button ID="btnLogin" Text="登录" Type="Button" ValidateForms="SimpleForm1" ValidateTarget="Top"
runat="server" OnClick="btnLogin_Click">
</f:Button>
<f:Button ID="btnReset" Text="重置" Type="Reset" EnablePostBack="false"
runat="server">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Window>
</form>
</body>
</html>

View File

@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;
namespace FineUI.Examples.basic
{
public partial class login_enterkey : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLogin_Click(object sender, EventArgs e)
{
if (tbxUserName.Text == "admin" && tbxPassword.Text == "admin")
{
Alert.ShowInTop("成功登录!");
}
else
{
Alert.ShowInTop("用户名或密码错误!", MessageBoxIcon.Error);
}
}
}
}

View File

@ -0,0 +1,96 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUI.Examples.basic {
public partial class login_enterkey {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.PageManager PageManager1;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Window Window1;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.SimpleForm SimpleForm1;
/// <summary>
/// tbxUserName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.TextBox tbxUserName;
/// <summary>
/// tbxPassword 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.TextBox tbxPassword;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Toolbar Toolbar1;
/// <summary>
/// btnLogin 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnLogin;
/// <summary>
/// btnReset 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnReset;
}
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,40 +1,40 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button.aspx.cs" Inherits="FineUI.Examples.button.button" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button.aspx.cs" Inherits="FineUI.Examples.button.button" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css"> <style type="text/css">
.redbutton button .redbutton button
{ {
color: #FF0000; color: #FF0000;
} }
</style> </style>
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
<x:Button ID="btnChangeEnable" Text="启用后面的按钮" runat="server" OnClick="btnChangeEnable_Click" <f:Button ID="btnChangeEnable" Text="启用后面的按钮" runat="server" OnClick="btnChangeEnable_Click"
CssClass="inline" /> CssClass="marginr" />
<x:Button ID="btnEnable" Text="禁用的按钮" OnClick="btnEnable_Click" runat="server" <f:Button ID="btnEnable" Text="禁用的按钮" OnClick="btnEnable_Click" runat="server"
Enabled="False" /> Enabled="False" />
<br /> <br />
<br /> <br />
<x:Button ID="btnChangePressed" Text="改变后面按钮的按下状态" runat="server" OnClick="btnChangePressed_Click" <f:Button ID="btnChangePressed" Text="改变后面按钮的按下状态" runat="server" OnClick="btnChangePressed_Click"
CssClass="inline" /> CssClass="marginr" />
<x:Button ID="btnPressed" Text="按下的按钮" runat="server" EnablePress="true" Pressed="true" /> <f:Button ID="btnPressed" Text="按下的按钮" runat="server" EnablePress="true" Pressed="true" />
<br /> <br />
<br /> <br />
<x:Button ID="btnTooltip" Text="这个按钮有提示信息(点击改变提示信息)" ToolTip="这是按钮的提示信息" OnClick="btnTooltip_Click" <f:Button ID="btnTooltip" Text="这个按钮有提示信息(点击改变提示信息)" ToolTip="这是按钮的提示信息" OnClick="btnTooltip_Click"
runat="server"> runat="server">
</x:Button> </f:Button>
<br /> <br />
<br /> <br />
<x:Button ID="Button1" Text="普通按钮" runat="server" EnablePostBack="false" CssClass="inline" /> <f:Button ID="Button1" Text="普通按钮" runat="server" EnablePostBack="false" CssClass="marginr" />
<x:Button ID="Button2" Text="中等大小按钮" runat="server" Size="Medium" EnablePostBack="false" <f:Button ID="Button2" Text="中等大小按钮" runat="server" Size="Medium" EnablePostBack="false"
CssClass="inline" /> CssClass="marginr" />
<x:Button ID="Button3" Text="大按钮" runat="server" Size="Large" EnablePostBack="false" /> <f:Button ID="Button3" Text="大按钮" runat="server" Size="Large" EnablePostBack="false" />
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,46 +1,46 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
namespace FineUI.Examples.button namespace FineUI.Examples.button
{ {
public partial class button : PageBase public partial class button : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
} }
protected void btnChangeEnable_Click(object sender, EventArgs e) protected void btnChangeEnable_Click(object sender, EventArgs e)
{ {
btnEnable.Enabled = true; btnEnable.Enabled = true;
btnEnable.Text = "本按钮已经启用(点击弹出对话框)"; btnEnable.Text = "本按钮已经启用(点击弹出对话框)";
} }
protected void btnEnable_Click(object sender, EventArgs e) protected void btnEnable_Click(object sender, EventArgs e)
{ {
Alert.ShowInTop("你点击了刚刚启用的按钮"); Alert.ShowInTop("你点击了刚刚启用的按钮");
} }
protected void btnTooltip_Click(object sender, EventArgs e) protected void btnTooltip_Click(object sender, EventArgs e)
{ {
btnTooltip.ToolTip = "这是改变后的提示信息"; btnTooltip.ToolTip = "这是改变后的提示信息";
} }
protected void btnChangePressed_Click(object sender, EventArgs e) protected void btnChangePressed_Click(object sender, EventArgs e)
{ {
btnPressed.Pressed = !btnPressed.Pressed; btnPressed.Pressed = !btnPressed.Pressed;
} }
} }
} }

View File

@ -1,105 +1,105 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.button { namespace FineUI.Examples.button {
public partial class button { public partial class button {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// btnChangeEnable 控件。 /// btnChangeEnable 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnChangeEnable; protected global::FineUI.Button btnChangeEnable;
/// <summary> /// <summary>
/// btnEnable 控件。 /// btnEnable 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnEnable; protected global::FineUI.Button btnEnable;
/// <summary> /// <summary>
/// btnChangePressed 控件。 /// btnChangePressed 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnChangePressed; protected global::FineUI.Button btnChangePressed;
/// <summary> /// <summary>
/// btnPressed 控件。 /// btnPressed 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnPressed; protected global::FineUI.Button btnPressed;
/// <summary> /// <summary>
/// btnTooltip 控件。 /// btnTooltip 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnTooltip; protected global::FineUI.Button btnTooltip;
/// <summary> /// <summary>
/// Button1 控件。 /// Button1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button1; protected global::FineUI.Button Button1;
/// <summary> /// <summary>
/// Button2 控件。 /// Button2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button2; protected global::FineUI.Button Button2;
/// <summary> /// <summary>
/// Button3 控件。 /// Button3 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button3; protected global::FineUI.Button Button3;
} }
} }

View File

@ -1,25 +1,25 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_click.aspx.cs" Inherits="FineUI.Examples.button.button_click" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_click.aspx.cs" Inherits="FineUI.Examples.button.button_click" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
<x:Button ID="btnServerClick" Text="服务器端事件" OnClick="btnServerClick_Click" runat="server"> <f:Button ID="btnServerClick" Text="服务器端事件" OnClick="btnServerClick_Click" runat="server">
</x:Button> </f:Button>
<br /> <br />
<br /> <br />
<x:Button ID="btnClientClick" Text="客户端事件" OnClientClick="alert('这是客户端事件');" EnablePostBack="false" <f:Button ID="btnClientClick" Text="客户端事件" OnClientClick="alert('这是客户端事件');" EnablePostBack="false"
CssClass="inline" runat="server"> CssClass="marginr" runat="server">
</x:Button> </f:Button>
<x:Button ID="btnClientClick2" Text="服务器端生成的客户端事件" EnablePostBack="false" runat="server"> <f:Button ID="btnClientClick2" Text="服务器端生成的客户端事件" EnablePostBack="false" runat="server">
</x:Button> </f:Button>
<br /> <br />
<br /> <br />
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,29 +1,29 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
namespace FineUI.Examples.button namespace FineUI.Examples.button
{ {
public partial class button_click : PageBase public partial class button_click : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
btnClientClick2.OnClientClick = Alert.GetShowInTopReference("这是在服务器端生成的客户端事件"); btnClientClick2.OnClientClick = Alert.GetShowInTopReference("这是在服务器端生成的客户端事件");
} }
} }
protected void btnServerClick_Click(object sender, EventArgs e) protected void btnServerClick_Click(object sender, EventArgs e)
{ {
Alert.ShowInTop("这是服务器端事件"); Alert.ShowInTop("这是服务器端事件");
} }
} }
} }

View File

@ -1,60 +1,60 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.button { namespace FineUI.Examples.button {
public partial class button_click { public partial class button_click {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// btnServerClick 控件。 /// btnServerClick 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnServerClick; protected global::FineUI.Button btnServerClick;
/// <summary> /// <summary>
/// btnClientClick 控件。 /// btnClientClick 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnClientClick; protected global::FineUI.Button btnClientClick;
/// <summary> /// <summary>
/// btnClientClick2 控件。 /// btnClientClick2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnClientClick2; protected global::FineUI.Button btnClientClick2;
} }
} }

View File

@ -1,33 +1,36 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_custom.aspx.cs" Inherits="FineUI.Examples.button.button_custom" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_custom.aspx.cs" Inherits="FineUI.Examples.button.button_custom" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css"> <style type="text/css">
.bgbtn { .bgbtn {
background: url(../images/login.png) no-repeat; background-image: url(../res/images/login.png) !important;
width: 320px; width: 320px;
height: 50px; height: 50px;
} border-width: 0;
background-color: transparent;
.bgbtn .x-btn-tl, .bgbtn .x-btn-tr, .bgbtn .x-btn-tc, }
.bgbtn .x-btn-ml, .bgbtn .x-btn-mr, .bgbtn .x-btn-mc,
.bgbtn .x-btn-bl, .bgbtn .x-btn-br, .bgbtn .x-btn-bc { .bgbtn .x-frame-ml, .bgbtn .x-frame-mc, .bgbtn .x-frame-mr,
background-image: none; .bgbtn .x-frame-tl, .bgbtn .x-frame-tc, .bgbtn .x-frame-tr,
} .bgbtn .x-frame-bl, .bgbtn .x-frame-bc, .bgbtn .x-frame-br {
</style> background-image: none;
</head> background-color: transparent;
<body> }
<form id="form1" runat="server"> </style>
<x:PageManager ID="PageManager1" runat="server" /> </head>
<x:Button ID="Button1" Text="普通按钮" runat="server" Size="Large" OnClick="Button1_Click" /> <body>
<br /> <form id="form1" runat="server">
<br /> <f:PageManager ID="PageManager1" runat="server" />
<f:Button ID="Button1" Text="普通按钮" runat="server" Size="Large" OnClick="Button1_Click" />
<x:Button ID="Button2" Text="" CssClass="bgbtn" runat="server" OnClick="Button2_Click" /> <br />
<br />
</form>
</body> <f:Button ID="Button2" Text="" CssClass="bgbtn" runat="server" OnClick="Button2_Click" />
</html>
</form>
</body>
</html>

View File

@ -1,29 +1,29 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
namespace FineUI.Examples.button namespace FineUI.Examples.button
{ {
public partial class button_custom : PageBase public partial class button_custom : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
} }
protected void Button1_Click(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e)
{ {
Alert.ShowInTop("点击了普通按钮"); Alert.ShowInTop("点击了普通按钮");
} }
protected void Button2_Click(object sender, EventArgs e) protected void Button2_Click(object sender, EventArgs e)
{ {
Alert.ShowInTop("点击了自定义按钮"); Alert.ShowInTop("点击了自定义按钮");
} }
} }
} }

View File

@ -1,51 +1,51 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.button { namespace FineUI.Examples.button {
public partial class button_custom { public partial class button_custom {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// Button1 控件。 /// Button1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button1; protected global::FineUI.Button Button1;
/// <summary> /// <summary>
/// Button2 控件。 /// Button2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button2; protected global::FineUI.Button Button2;
} }
} }

View File

@ -1,33 +1,33 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_icon.aspx.cs" Inherits="FineUI.Examples.button.button_icon" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_icon.aspx.cs" Inherits="FineUI.Examples.button.button_icon" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
<x:Button ID="btnIcon1" Text="图标在左侧" Icon="Report" runat="server" CssClass="inline" /> <f:Button ID="btnIcon1" Text="图标在左侧" Icon="Report" runat="server" CssClass="marginr" />
<x:Button ID="btnIcon2" Text="图标在右侧" IconAlign="Right" Icon="Report" runat="server" /> <f:Button ID="btnIcon2" Text="图标在右侧" IconAlign="Right" Icon="Report" runat="server" />
<br /> <br />
<br /> <br />
<x:Button ID="btnIcon3" Text="图标在上面" IconAlign="Top" Icon="Report" runat="server" <f:Button ID="btnIcon3" Text="图标在上面" IconAlign="Top" Icon="Report" runat="server"
CssClass="inline" /> CssClass="marginr" />
<x:Button ID="btnIcon4" Text="图标在下面" IconAlign="Bottom" Icon="Report" runat="server" /> <f:Button ID="btnIcon4" Text="图标在下面" IconAlign="Bottom" Icon="Report" runat="server" />
<br /> <br />
<br /> <br />
<x:Button ID="btnCustomIcon" Text="自定义图标(点击修改图标)" OnClick="btnCustomIcon_Click" <f:Button ID="btnCustomIcon" Text="自定义图标(点击修改图标)" OnClick="btnCustomIcon_Click"
IconUrl="~/images/16/1.png" runat="server" /> IconUrl="~/res/images/16/1.png" runat="server" />
<br /> <br />
<br /> <br />
只有图片的按钮: 只有图片的按钮:
<br /> <br />
<br /> <br />
<x:Button ID="Button1" IconUrl="~/images/16/1.png" CssClass="inline" runat="server" /> <f:Button ID="Button1" IconUrl="~/res/images/16/1.png" CssClass="marginr" runat="server" />
<x:Button ID="Button2" IconUrl="~/images/16/8.png" runat="server" /> <f:Button ID="Button2" IconUrl="~/res/images/16/8.png" runat="server" />
<br /> <br />
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,21 +1,28 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
namespace FineUI.Examples.button namespace FineUI.Examples.button
{ {
public partial class button_icon : PageBase public partial class button_icon : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
} }
protected void btnCustomIcon_Click(object sender, EventArgs e) protected void btnCustomIcon_Click(object sender, EventArgs e)
{ {
btnCustomIcon.IconUrl = "~/images/16/8.png"; if (btnCustomIcon.IconUrl.EndsWith("1.png"))
} {
} btnCustomIcon.IconUrl = "~/res/images/16/8.png";
} }
else
{
btnCustomIcon.IconUrl = "~/res/images/16/1.png";
}
}
}
}

View File

@ -1,96 +1,96 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.button { namespace FineUI.Examples.button {
public partial class button_icon { public partial class button_icon {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// btnIcon1 控件。 /// btnIcon1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnIcon1; protected global::FineUI.Button btnIcon1;
/// <summary> /// <summary>
/// btnIcon2 控件。 /// btnIcon2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnIcon2; protected global::FineUI.Button btnIcon2;
/// <summary> /// <summary>
/// btnIcon3 控件。 /// btnIcon3 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnIcon3; protected global::FineUI.Button btnIcon3;
/// <summary> /// <summary>
/// btnIcon4 控件。 /// btnIcon4 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnIcon4; protected global::FineUI.Button btnIcon4;
/// <summary> /// <summary>
/// btnCustomIcon 控件。 /// btnCustomIcon 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnCustomIcon; protected global::FineUI.Button btnCustomIcon;
/// <summary> /// <summary>
/// Button1 控件。 /// Button1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button1; protected global::FineUI.Button Button1;
/// <summary> /// <summary>
/// Button2 控件。 /// Button2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button2; protected global::FineUI.Button Button2;
} }
} }

View File

@ -1,32 +1,32 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_linkbutton.aspx.cs" <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_linkbutton.aspx.cs"
Inherits="FineUI.Examples.button.button_linkbutton" %> Inherits="FineUI.Examples.button.button_linkbutton" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
<x:LinkButton ID="LinkButton2" Text="客户端事件(服务器生成)" EnablePostBack="false" runat="server"> <f:LinkButton ID="LinkButton2" Text="客户端事件(服务器生成)" EnablePostBack="false" runat="server">
</x:LinkButton> </f:LinkButton>
<br /> <br />
<x:LinkButton ID="LinkButton3" Text="服务器端事件" OnClick="LinkButton3_Click" runat="server"> <f:LinkButton ID="LinkButton3" Text="服务器端事件" OnClick="LinkButton3_Click" runat="server">
</x:LinkButton> </f:LinkButton>
<br /> <br />
<br /> <br />
<x:LinkButton ID="LinkButton1" Enabled="true" Text="客户端事件(在页面中定义)" EnablePostBack="false" <f:LinkButton ID="LinkButton1" Enabled="false" Text="客户端事件(在页面中定义)" EnablePostBack="false"
OnClientClick="clickLinkButton();" runat="server"> OnClientClick="clickLinkButton();" runat="server">
</x:LinkButton> </f:LinkButton>
<br /> <br />
<x:Button ID="btnChangeEnable" Text="启用/禁用最后一个链接按钮" runat="server" OnClick="btnChangeEnable_Click" /> <f:Button ID="btnChangeEnable" Text="启用/禁用最后一个链接按钮" runat="server" OnClick="btnChangeEnable_Click" />
</form> </form>
<script> <script>
function clickLinkButton() { function clickLinkButton() {
top.X.alert("定义在页面中的客户端事件!"); top.F.alert("定义在页面中的客户端事件!");
} }
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,30 +1,30 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
namespace FineUI.Examples.button namespace FineUI.Examples.button
{ {
public partial class button_linkbutton : PageBase public partial class button_linkbutton : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
LinkButton2.OnClientClick = Alert.GetShowInTopReference("这是在服务器端生成的客户端事件"); LinkButton2.OnClientClick = Alert.GetShowInTopReference("这是在服务器端生成的客户端事件");
} }
} }
protected void LinkButton3_Click(object sender, EventArgs e) protected void LinkButton3_Click(object sender, EventArgs e)
{ {
Alert.ShowInTop("这是服务器端事件"); Alert.ShowInTop("这是服务器端事件");
} }
protected void btnChangeEnable_Click(object sender, EventArgs e) protected void btnChangeEnable_Click(object sender, EventArgs e)
{ {
LinkButton1.Enabled = !LinkButton1.Enabled; LinkButton1.Enabled = !LinkButton1.Enabled;
} }
} }
} }

View File

@ -1,69 +1,69 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.button { namespace FineUI.Examples.button {
public partial class button_linkbutton { public partial class button_linkbutton {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// LinkButton2 控件。 /// LinkButton2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.LinkButton LinkButton2; protected global::FineUI.LinkButton LinkButton2;
/// <summary> /// <summary>
/// LinkButton3 控件。 /// LinkButton3 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.LinkButton LinkButton3; protected global::FineUI.LinkButton LinkButton3;
/// <summary> /// <summary>
/// LinkButton1 控件。 /// LinkButton1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.LinkButton LinkButton1; protected global::FineUI.LinkButton LinkButton1;
/// <summary> /// <summary>
/// btnChangeEnable 控件。 /// btnChangeEnable 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnChangeEnable; protected global::FineUI.Button btnChangeEnable;
} }
} }

View File

@ -1,38 +1,38 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_menu.aspx.cs" Inherits="FineUI.Examples.button.button_menu" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_menu.aspx.cs" Inherits="FineUI.Examples.button.button_menu" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
<x:Button ID="btnMenu" Text="中国科学技术大学" EnablePostBack="false" runat="server"> <f:Button ID="btnMenu" Text="中国科学技术大学" EnablePostBack="false" runat="server">
<Menu runat="server"> <Menu runat="server">
<x:MenuHyperLink runat="server" Icon="TagGreen" Target="_blank" NavigateUrl="http://scms.ustc.edu.cn/" <f:MenuHyperLink runat="server" Icon="TagGreen" Target="_blank" NavigateUrl="http://scms.ustc.edu.cn/"
Text="化学与材料科学学院"> Text="化学与材料科学学院">
</x:MenuHyperLink> </f:MenuHyperLink>
<x:MenuHyperLink runat="server" Icon="TagBlue" Target="_blank" NavigateUrl="http://business.ustc.edu.cn/zh_CN/" <f:MenuHyperLink runat="server" Icon="TagBlue" Target="_blank" NavigateUrl="http://business.ustc.edu.cn/zh_CN/"
Text="管理学院"> Text="管理学院">
<Menu runat="server"> <Menu runat="server">
<x:MenuHyperLink runat="server" Icon="TagPink" Target="_blank" NavigateUrl="http://is.ustc.edu.cn/" <f:MenuHyperLink runat="server" Icon="TagPink" Target="_blank" NavigateUrl="http://is.ustc.edu.cn/"
Text="工商管理系"> Text="工商管理系">
</x:MenuHyperLink> </f:MenuHyperLink>
<x:MenuHyperLink runat="server" Icon="TagPurple" Target="_blank" NavigateUrl="http://stat.ustc.edu.cn/" <f:MenuHyperLink runat="server" Icon="TagPurple" Target="_blank" NavigateUrl="http://stat.ustc.edu.cn/"
Text="统计与金融系"> Text="统计与金融系">
</x:MenuHyperLink> </f:MenuHyperLink>
</Menu> </Menu>
</x:MenuHyperLink> </f:MenuHyperLink>
</Menu> </Menu>
</x:Button> </f:Button>
<br /> <br />
<br /> <br />
<x:Button ID="Button1" Text="中国科学技术大学(动态创建下拉菜单)" EnablePostBack="false" runat="server"> <f:Button ID="Button1" Text="中国科学技术大学(动态创建下拉菜单)" EnablePostBack="false" runat="server">
</x:Button> </f:Button>
<br /> <br />
<br /> <br />
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,55 +1,55 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
namespace FineUI.Examples.button namespace FineUI.Examples.button
{ {
public partial class button_menu : PageBase public partial class button_menu : PageBase
{ {
protected void Page_Init(object sender, EventArgs e) protected void Page_Init(object sender, EventArgs e)
{ {
MenuHyperLink menuSCMS = new MenuHyperLink(); MenuHyperLink menuSCMS = new MenuHyperLink();
menuSCMS.Target = "_blank"; menuSCMS.Target = "_blank";
menuSCMS.Text = "化学与材料科学学院"; menuSCMS.Text = "化学与材料科学学院";
menuSCMS.Icon = Icon.TagGreen; menuSCMS.Icon = Icon.TagGreen;
menuSCMS.NavigateUrl = "http://scms.ustc.edu.cn/"; menuSCMS.NavigateUrl = "http://scms.ustc.edu.cn/";
Button1.Menu.Items.Add(menuSCMS); Button1.Menu.Items.Add(menuSCMS);
MenuHyperLink menuBZ = new MenuHyperLink(); MenuHyperLink menuBZ = new MenuHyperLink();
menuBZ.Target = "_blank"; menuBZ.Target = "_blank";
menuBZ.Text = "管理学院"; menuBZ.Text = "管理学院";
menuBZ.Icon = Icon.TagBlue; menuBZ.Icon = Icon.TagBlue;
menuBZ.NavigateUrl = "http://business.ustc.edu.cn/zh_CN/"; menuBZ.NavigateUrl = "http://business.ustc.edu.cn/zh_CN/";
Button1.Menu.Items.Add(menuBZ); Button1.Menu.Items.Add(menuBZ);
MenuHyperLink menuIS = new MenuHyperLink(); MenuHyperLink menuIS = new MenuHyperLink();
menuIS.Target = "_blank"; menuIS.Target = "_blank";
menuIS.Text = "工商管理系"; menuIS.Text = "工商管理系";
menuIS.Icon = Icon.TagPink; menuIS.Icon = Icon.TagPink;
menuIS.NavigateUrl = "http://is.ustc.edu.cn/"; menuIS.NavigateUrl = "http://is.ustc.edu.cn/";
menuBZ.Menu.Items.Add(menuIS); menuBZ.Menu.Items.Add(menuIS);
MenuHyperLink menuSTAT = new MenuHyperLink(); MenuHyperLink menuSTAT = new MenuHyperLink();
menuSTAT.Target = "_blank"; menuSTAT.Target = "_blank";
menuSTAT.Text = "统计与金融系"; menuSTAT.Text = "统计与金融系";
menuSTAT.Icon = Icon.TagPink; menuSTAT.Icon = Icon.TagPink;
menuSTAT.NavigateUrl = "http://stat.ustc.edu.cn/"; menuSTAT.NavigateUrl = "http://stat.ustc.edu.cn/";
menuBZ.Menu.Items.Add(menuSTAT); menuBZ.Menu.Items.Add(menuSTAT);
} }
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
} }
} }
} }

View File

@ -1,51 +1,51 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.button { namespace FineUI.Examples.button {
public partial class button_menu { public partial class button_menu {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// btnMenu 控件。 /// btnMenu 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnMenu; protected global::FineUI.Button btnMenu;
/// <summary> /// <summary>
/// Button1 控件。 /// Button1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button1; protected global::FineUI.Button Button1;
} }
} }

View File

@ -0,0 +1,38 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_menu_menuid.aspx.cs" Inherits="FineUI.Examples.button.button_menu_menuid" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:Button ID="btnMenu" Text="中国科学技术大学" EnablePostBack="false" runat="server" MenuID="Menu1">
</f:Button>
<br />
<br />
<f:Button ID="Button1" Text="中国科学技术大学(和上一个按钮共享同一个菜单)" EnablePostBack="false" MenuID="Menu1" runat="server">
</f:Button>
<f:Menu ID="Menu1" runat="server">
<f:MenuHyperLink ID="MenuHyperLink1" runat="server" Icon="TagGreen" Target="_blank" NavigateUrl="http://scms.ustc.edu.cn/"
Text="化学与材料科学学院">
</f:MenuHyperLink>
<f:MenuHyperLink ID="MenuHyperLink2" runat="server" Icon="TagBlue" Target="_blank" NavigateUrl="http://business.ustc.edu.cn/zh_CN/"
Text="管理学院">
<Menu ID="Menu2" runat="server">
<f:MenuHyperLink ID="MenuHyperLink3" runat="server" Icon="TagPink" Target="_blank" NavigateUrl="http://is.ustc.edu.cn/"
Text="工商管理系">
</f:MenuHyperLink>
<f:MenuHyperLink ID="MenuHyperLink4" runat="server" Icon="TagPurple" Target="_blank" NavigateUrl="http://stat.ustc.edu.cn/"
Text="统计与金融系">
</f:MenuHyperLink>
</Menu>
</f:MenuHyperLink>
</f:Menu>
<br />
<br />
</form>
</body>
</html>

View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUI.Examples.button
{
public partial class button_menu_menuid : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View File

@ -0,0 +1,96 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUI.Examples.button {
public partial class button_menu_menuid {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.PageManager PageManager1;
/// <summary>
/// btnMenu 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnMenu;
/// <summary>
/// Button1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Button1;
/// <summary>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Menu Menu1;
/// <summary>
/// MenuHyperLink1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink1;
/// <summary>
/// MenuHyperLink2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink2;
/// <summary>
/// MenuHyperLink3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink3;
/// <summary>
/// MenuHyperLink4 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink4;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,22 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="source.aspx.cs" Inherits="FineUI.Examples.source" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="source.aspx.cs" Inherits="FineUI.Examples.source" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<style type="text/css"> <style type="text/css">
iframe iframe
{ {
padding: 0px; padding: 0px;
margin: 0px; margin: 0px;
} }
</style> </style>
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" AutoSizePanelID="TabStrip1" runat="server"></x:PageManager> <f:PageManager ID="PageManager1" AutoSizePanelID="TabStrip1" runat="server"></f:PageManager>
<x:TabStrip ID="TabStrip1" ShowBorder="false" TabPosition="Left" runat="server"> <f:TabStrip ID="TabStrip1" ShowBorder="false" TabPosition="Top" runat="server">
</x:TabStrip> </f:TabStrip>
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,149 +1,107 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.IO; using System.IO;
namespace FineUI.Examples namespace FineUI.Examples
{ {
public partial class source : PageBase public partial class source : PageBase
{ {
private static Dictionary<string, string> SOURCE_FILES = new Dictionary<string, string>() { protected void Page_Init(object sender, EventArgs e)
{"grid/grid_iframe.aspx", "~/grid/grid_iframe_window.aspx"}, {
{"tree/databind/tree_document.aspx", "~/tree/databind/website.xml"}, if (!IsPostBack)
{"tree/databind/tree_datasource.aspx", "~/tree/databind/website.xml"}, {
{"tree/databind/tree_sitemap.aspx", "~/tree/databind/Web.sitemap"}, string files = Request.QueryString["files"];
{"aspnet/fileupload.aspx", "~/aspnet/fileupload_iframe.aspx"},
{"iframe/button_iframe.aspx", "~/grid/grid_iframe_window.aspx"}, if (String.IsNullOrEmpty(files))
{"iframe/grid_iframe.aspx", "~/grid/grid_iframe_window.aspx"}, {
{"iframe/iframe_iframe.aspx", "~/iframe/iframe_iframe_window1.aspx;~/iframe/iframe_iframe_window2.aspx"}, return;
{"iframe/parent_postback.aspx", "~/iframe/parent_postback2.aspx;~/iframe/parent_postback3.aspx"}, }
{"iframe/parent_postback_top.aspx", "~/iframe/parent_postback_top2.aspx;~/iframe/parent_postback_top3.aspx"},
{"iframe/triggerbox_iframe.aspx", "~/iframe/triggerbox_iframe_iframe.aspx"}, if (!String.IsNullOrEmpty(files))
{"iframe/passvalue_iframe.aspx", "~/iframe/passvalue_iframe_iframe.aspx"}, {
{"other/accordion_links.aspx", "~/other/accordion_links_iframe.htm"}, string[] fileNames = files.Split(';');
{"usercontrol/userinfo.aspx", "~/usercontrol/UserInfoControl.ascx"},
{"usercontrol/userinfo2.aspx", "~/usercontrol/UserInfoControl.ascx"}, for (int i = 0; i < fileNames.Length; i++)
{"usercontrol/userinfo_dynamic.aspx", "~/usercontrol/UserInfoControl.ascx"}, {
{"iframe/selectprovince1.aspx", "~/iframe/selectprovince1_child.aspx"}, string fileName = fileNames[i];
{"iframe/selectprovince2.aspx", "~/iframe/selectprovince2_child.aspx"}, string shortFileName = GetShortFileName(fileName);
{"iframe/selectprovince3.aspx", "~/iframe/selectprovince3_child.aspx"}, string iframeUrl = "./source_file.aspx?file=" + fileName;
{"iframe/topmenu2/default.aspx", "~/iframe/topmenu2/default.aspx;~/iframe/topmenu2/leftmenu.aspx"},
{"iframe/topmenu3/default.aspx", "~/iframe/topmenu3/default.aspx;~/iframe/topmenu3/leftmenu.aspx"}, Tab tab = new Tab();
{"tabstrip/tabstrip_iframe_disabled.aspx", "~/tabstrip/tabstrip_iframe_disabled_tab1.aspx"} tab.Title = shortFileName;
tab.EnableIFrame = true;
}; tab.IFrameUrl = iframeUrl;
tab.IconUrl = GetIconUrl(tab.IFrameUrl);
protected void Page_Init(object sender, EventArgs e) TabStrip1.Tabs.Add(tab);
{
if (!IsPostBack) // End with .aspx.
{ if (fileName.ToLower().EndsWith(".aspx") || fileName.ToLower().EndsWith(".ascx") || fileName.ToLower().EndsWith(".master"))
string files = Request.QueryString["files"]; {
tab = new FineUI.Tab();
if (String.IsNullOrEmpty(files)) tab.Title = shortFileName + ".cs";
{ tab.EnableIFrame = true;
return; tab.IFrameUrl = iframeUrl + ".cs";
} tab.IconUrl = GetIconUrl(tab.IFrameUrl);
TabStrip1.Tabs.Add(tab);
files = ResolveQueryString(files); }
}
if (!String.IsNullOrEmpty(files)) }
{ }
string[] fileNames = files.Split(';'); }
for (int i = 0; i < fileNames.Length; i++) protected void Page_Load(object sender, EventArgs e)
{ {
string fileName = fileNames[i];
string shortFileName = GetShortFileName(fileName); }
string iframeUrl = "./source_file.aspx?file=" + fileName;
private string GetIconUrl(string url)
FineUI.Tab tab = new FineUI.Tab(); {
tab.Title = shortFileName; string suffix = url.Substring(url.LastIndexOf('.') + 1);
tab.EnableIFrame = true; return "~/res/images/filetype/vs_" + suffix + ".png";
tab.IFrameUrl = iframeUrl; //string fileName = "vs_unknow.png";
tab.IconUrl = GetIconUrl(tab.IFrameUrl); //if (url.EndsWith(".aspx"))
TabStrip1.Tabs.Add(tab); //{
// fileName = "vs_aspx.png";
// End with .aspx. //}
if (fileName.ToLower().EndsWith(".aspx") || fileName.ToLower().EndsWith(".ascx")) //else if (url.EndsWith(".cs"))
{ //{
tab = new FineUI.Tab(); // fileName = "vs_cs.png";
tab.Title = shortFileName + ".cs"; //}
tab.EnableIFrame = true; //else if (url.EndsWith(".xml"))
tab.IFrameUrl = iframeUrl + ".cs"; //{
tab.IconUrl = GetIconUrl(tab.IFrameUrl); // fileName = "vs_xml.png";
TabStrip1.Tabs.Add(tab); //}
} //else if (url.EndsWith(".config"))
} //{
} // fileName = "vs_config.png";
} //}
} //else if (url.EndsWith(".js"))
//{
protected void Page_Load(object sender, EventArgs e) // fileName = "vs_js.png";
{ //}
//else if (url.EndsWith(".css"))
} //{
// fileName = "vs_css.png";
private string GetIconUrl(string url) //}
{ //else if (url.EndsWith(".html") || url.EndsWith(".htm"))
string suffix = url.Substring(url.LastIndexOf('.') + 1); //{
return "~/images/filetype/vs_" + suffix + ".png"; // fileName = "vs_htm.png";
//string fileName = "vs_unknow.png"; //}
//if (url.EndsWith(".aspx")) }
//{
// fileName = "vs_aspx.png"; private string GetShortFileName(string fileName)
//} {
//else if (url.EndsWith(".cs")) int index = fileName.LastIndexOf("/");
//{
// fileName = "vs_cs.png"; if (index >= 0)
//} {
//else if (url.EndsWith(".xml")) return fileName.Substring(index + 1);
//{ }
// fileName = "vs_xml.png";
//} return fileName;
//else if (url.EndsWith(".config")) }
//{ }
// fileName = "vs_config.png"; }
//}
//else if (url.EndsWith(".js"))
//{
// fileName = "vs_js.png";
//}
//else if (url.EndsWith(".css"))
//{
// fileName = "vs_css.png";
//}
//else if (url.EndsWith(".html") || url.EndsWith(".htm"))
//{
// fileName = "vs_htm.png";
//}
}
private string ResolveQueryString(string files)
{
string result = files;
foreach (string key in SOURCE_FILES.Keys)
{
if (files.EndsWith(key))
{
result += ';' + SOURCE_FILES[key];
break;
}
}
return result;
}
private string GetShortFileName(string fileName)
{
int index = fileName.LastIndexOf("/");
if (index >= 0)
{
return fileName.Substring(index + 1);
}
return fileName;
}
}
}

View File

@ -1,42 +1,42 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples { namespace FineUI.Examples {
public partial class source { public partial class source {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// TabStrip1 控件。 /// TabStrip1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.TabStrip TabStrip1; protected global::FineUI.TabStrip TabStrip1;
} }
} }

View File

@ -1,36 +1,37 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="source_file.aspx.cs" Inherits="FineUI.Examples.source_file" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="source_file.aspx.cs" Inherits="FineUI.Examples.source_file" %>
<%@ Register Assembly="Wilco.SyntaxHighlighter" Namespace="Wilco.Web.SyntaxHighlighting" <!DOCTYPE html>
TagPrefix="cc1" %> <html>
<!DOCTYPE html> <head runat="server">
<html> <title></title>
<head runat="server"> <link href="../res/google-code-prettify/prettify.css" rel="stylesheet" />
<title></title> <style type="text/css">
<style type="text/css"> body {
body margin: 0;
{ padding: 0;
margin: 0px; font-size: 13px;
padding: 0px; background-color: White;
font-size: 12px; }
background-color: White;
} pre.prettyprint {
pre span border: none;
{ margin: 0;
font-family: consolas,arial,tahoma,verdana,helvetica; padding: 10px 5px;
} color: #666;
.shl_ln }
{
border-right: 1px solid #999; li.L0, li.L1, li.L2, li.L3, li.L4,
padding-right: 2px; li.L5, li.L6, li.L7, li.L8, li.L9 {
color: #999; list-style-type: decimal !important;
margin-right: 2px; background-color: #fff;
} }
</style> </style>
</head> </head>
<body> <body onload="prettyPrint();">
<form id="form1" runat="server"> <form id="form1" runat="server">
<cc1:SyntaxHighlighter ID="SyntaxHighlighter1" runat="server"> <asp:Literal runat="server" ID="desc"></asp:Literal>
</cc1:SyntaxHighlighter> </form>
</form> <script src="../res/google-code-prettify/prettify.js"></script>
</body> <script src="../res/google-code-prettify/lang-basic.js"></script>
</html> </body>
</html>

View File

@ -1,53 +1,30 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.IO; using System.IO;
namespace FineUI.Examples namespace FineUI.Examples
{ {
public partial class source_file : System.Web.UI.Page public partial class source_file : System.Web.UI.Page
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
string file = Request.QueryString["file"]; string file = Request.QueryString["file"];
string content = File.ReadAllText(Server.MapPath(file)); if (file.StartsWith("http://") || file.StartsWith("https://"))
{
if (!String.IsNullOrEmpty(file)) desc.Text = String.Format("<br/><br/><a href=\"{0}\" target=\"_blank\">在新窗口打开</a>", file);
{ return;
string language = "ASPX"; }
string fileName = file.ToLower();
if (fileName.EndsWith(".aspx")) string content = File.ReadAllText(Server.MapPath(file));
{ desc.Text = "<pre class=\"prettyprint linenums\">" + HttpUtility.HtmlEncode(content) + "</pre>";
language = "ASPX";
} }
else if (fileName.EndsWith(".cs")) }
{ }
language = "C#"; }
}
else if (fileName.EndsWith(".config") || fileName.EndsWith(".sitemap") || fileName.EndsWith(".xml"))
{
language = "XML";
}
else if (fileName.EndsWith(".css"))
{
language = "CSS";
}
else if (fileName.EndsWith(".js"))
{
language = "JavaScript";
}
SyntaxHighlighter1.Mode = Wilco.Web.SyntaxHighlighting.HighlightMode.Source;
SyntaxHighlighter1.Language = language;
SyntaxHighlighter1.Text = content;
}
}
}
}
}

View File

@ -1,33 +1,33 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples { namespace FineUI.Examples {
public partial class source_file { public partial class source_file {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// SyntaxHighlighter1 控件。 /// desc 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::Wilco.Web.SyntaxHighlighting.SyntaxHighlighter SyntaxHighlighter1; protected global::System.Web.UI.WebControls.Literal desc;
} }
} }

View File

@ -1,47 +1,47 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajax.aspx.cs" Inherits="FineUI.Examples.ajax" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajax.aspx.cs" Inherits="FineUI.Examples.ajax" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css"> <style type="text/css">
body body
{ {
font-size: 13px; font-size: 13px;
} }
table td table td
{ {
vertical-align: top; vertical-align: top;
width: 180px; width: 180px;
padding: 0 2px 20px 0; padding: 0 2px 20px 0;
} }
table td .head table td .head
{ {
border-top: solid 1px #8DB2E3; border-top: solid 1px #8DB2E3;
background-color: #D6E3F2; background-color: #D6E3F2;
padding: 5px; padding: 5px;
font-weight: bold; font-weight: bold;
} }
table ul table ul
{ {
margin: 0px; margin: 0px;
list-style-type: none; list-style-type: none;
padding: 5px; padding: 5px;
min-height: 200px; min-height: 200px;
} }
</style> </style>
</head> </head>
<body> <body class="f-body">
<form id="form1" runat="server"> <form id="form1" runat="server">
<br /> <br />
FineUI 有原生的 AJAX 支持,也就是说不需要做任何配置,控件属性在服务器端的改变都能以 AJAX 的方式影响到前端界面的显示。 FineUI 有原生的 AJAX 支持,也就是说不需要做任何配置,控件属性在服务器端的改变都能以 AJAX 的方式影响到前端界面的显示。
<br /> <br />
<br /> <br />
但是,并非控件的所有属性都支持 AJAX 改变,下面列表展示了每个控件有哪些属性支持 AJAX 改变。 但是,并非控件的所有属性都支持 AJAX 改变,下面列表展示了每个控件有哪些属性支持 AJAX 改变。
<br /> <br />
<br /> <br />
<asp:Literal ID="litResult" runat="server"></asp:Literal> <asp:Literal ID="litResult" runat="server"></asp:Literal>
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,102 +1,102 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Text; using System.Text;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace FineUI.Examples namespace FineUI.Examples
{ {
public partial class ajax : System.Web.UI.Page public partial class ajax : System.Web.UI.Page
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
LoadData(); LoadData();
} }
} }
private void LoadData() private void LoadData()
{ {
string content = ReadFile("~/config/ajax_properties.txt"); string content = ReadFile("~/config/ajax_properties.txt");
Dictionary<string, JObject> allControls = new Dictionary<string, JObject>(); Dictionary<string, JObject> allControls = new Dictionary<string, JObject>();
List<string> publicControls = new List<string>(); List<string> publicControls = new List<string>();
JArray ja = JArray.Parse(content); JArray ja = JArray.Parse(content);
foreach (JObject jo in ja) foreach (JObject jo in ja)
{ {
if (jo.Value<bool>("public")) // .getBool("public")) if (jo.Value<bool>("public")) // .getBool("public"))
{ {
publicControls.Add(jo.Value<string>("name")); //jo.getString("name")); publicControls.Add(jo.Value<string>("name")); //jo.getString("name"));
} }
allControls.Add(jo.Value<string>("name"), jo); //jo.getString("name"), jo); allControls.Add(jo.Value<string>("name"), jo); //jo.getString("name"), jo);
} }
publicControls.Sort(); publicControls.Sort();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.Append("<table border=\"0\">"); sb.Append("<table border=\"0\">");
sb.Append("<tr>"); sb.Append("<tr>");
for (int i = 0, count = publicControls.Count; i < count; i++) for (int i = 0, count = publicControls.Count; i < count; i++)
{ {
string name = publicControls[i]; string name = publicControls[i];
sb.Append("<td>"); sb.Append("<td>");
sb.AppendFormat("<div class=\"head\">{0}</div>", name); sb.AppendFormat("<div class=\"head\">{0}</div>", name);
// 计算控件name的所有AJAX属性 // 计算控件name的所有AJAX属性
List<string> ajaxProperties = new List<string>(); List<string> ajaxProperties = new List<string>();
string parentControlName = name; string parentControlName = name;
do do
{ {
JObject control = allControls[parentControlName]; JObject control = allControls[parentControlName];
foreach (string property in control.Value<JArray>("ajax")) // .getJSONArray("ajax").getArrayList()) foreach (string property in control.Value<JArray>("ajax")) // .getJSONArray("ajax").getArrayList())
{ {
if (!ajaxProperties.Contains(property)) if (!ajaxProperties.Contains(property))
{ {
ajaxProperties.Add(property); ajaxProperties.Add(property);
} }
} }
parentControlName = control.Value<string>("parent"); //.getString("parent"); parentControlName = control.Value<string>("parent"); //.getString("parent");
} while (!String.IsNullOrEmpty(parentControlName)); } while (!String.IsNullOrEmpty(parentControlName));
ajaxProperties.Sort(); ajaxProperties.Sort();
sb.Append("<ul class=\"ajax\">"); sb.Append("<ul class=\"ajax\">");
foreach (string property in ajaxProperties) foreach (string property in ajaxProperties)
{ {
sb.AppendFormat("<li>{0}</li>", property); sb.AppendFormat("<li>{0}</li>", property);
} }
sb.Append("</ul>"); sb.Append("</ul>");
sb.Append("</td>"); sb.Append("</td>");
if ((i + 1) % 6 == 0) if ((i + 1) % 6 == 0)
{ {
sb.Append("</tr><tr>"); sb.Append("</tr><tr>");
} }
} }
sb.Append("</tr>"); sb.Append("</tr>");
sb.Append("</table>"); sb.Append("</table>");
litResult.Text = sb.ToString(); litResult.Text = sb.ToString();
} }
private string ReadFile(string filePath) private string ReadFile(string filePath)
{ {
string content = String.Empty; string content = String.Empty;
using (System.IO.StreamReader sr = new System.IO.StreamReader(Server.MapPath(filePath))) using (System.IO.StreamReader sr = new System.IO.StreamReader(Server.MapPath(filePath)))
{ {
content = sr.ReadToEnd(); content = sr.ReadToEnd();
} }
return content; return content;
} }
} }
} }

View File

@ -1,33 +1,33 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples { namespace FineUI.Examples {
public partial class ajax { public partial class ajax {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// litResult 控件。 /// litResult 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Literal litResult; protected global::System.Web.UI.WebControls.Literal litResult;
} }
} }

View File

@ -1,360 +1,360 @@
[{ [{
"name": "ControlBase", "name": "ControlBase",
"ajax": ["Hidden", "Enabled"], "ajax": ["Hidden", "Enabled"],
"parent": "", "parent": "",
"public": false "public": false
}, },
{ {
"name": "Component", "name": "Component",
"ajax": ["CssClass", "CssStyle"], "ajax": ["CssClass", "FormItemClass", "CssStyle"],
"parent": "ControlBase", "parent": "ControlBase",
"public": false "public": false
}, },
{ {
"name": "BoxComponent", "name": "BoxComponent",
"ajax": [], "ajax": [],
"parent": "Component", "parent": "Component",
"public": false "public": false
}, },
{ {
"name": "Container", "name": "Container",
"ajax": [], "ajax": [],
"parent": "BoxComponent", "parent": "BoxComponent",
"public": false "public": false
}, },
{ {
"name": "PanelBase", "name": "PanelBase",
"ajax": ["IFrameUrl"], "ajax": ["IFrameUrl"],
"parent": "Container", "parent": "Container",
"public": false "public": false
}, },
{ {
"name": "CollapsablePanel", "name": "CollapsablePanel",
"ajax": ["Expanded", "Collapsed", "Title"], "ajax": ["Expanded", "Collapsed", "Title"],
"parent": "PanelBase", "parent": "PanelBase",
"public": false "public": false
}, },
{ {
"name": "Field", "name": "Field",
"ajax": ["Readonly"], "ajax": ["Readonly"],
"parent": "BoxComponent", "parent": "BoxComponent",
"public": false "public": false
}, },
{ {
"name": "TextField", "name": "TextField",
"ajax": [], "ajax": [],
"parent": "Field", "parent": "Field",
"public": false "public": false
}, },
{ {
"name": "RealTextField", "name": "RealTextField",
"ajax": ["Text"], "ajax": ["Text"],
"parent": "TextField", "parent": "TextField",
"public": false "public": false
}, },
{ {
"name": "Toolbar", "name": "Toolbar",
"ajax": [], "ajax": [],
"parent": "BoxComponent", "parent": "BoxComponent",
"public": true "public": true
}, },
{ {
"name": "ToolbarFill", "name": "ToolbarFill",
"ajax": [], "ajax": [],
"parent": "Component", "parent": "Component",
"public": true "public": true
}, },
{ {
"name": "ToolbarSeparator", "name": "ToolbarSeparator",
"ajax": [], "ajax": [],
"parent": "Component", "parent": "Component",
"public": true "public": true
}, },
{ {
"name": "ToolbarText", "name": "ToolbarText",
"ajax": ["Text"], "ajax": ["Text"],
"parent": "Component", "parent": "Component",
"public": true "public": true
}, },
{ {
"name": "Button", "name": "Button",
"ajax": ["Text", "Icon", "IconUrl", "ToolTip", "OnClientClick", "ConfirmTitle", "ConfirmText", "ConfirmIcon", "ConfirmTarget", "Pressed"], "ajax": ["Text", "Icon", "IconUrl", "ToolTip", "OnClientClick", "ConfirmTitle", "ConfirmText", "ConfirmIcon", "ConfirmTarget", "Pressed"],
"parent": "Component", "parent": "Component",
"public": true "public": true
}, },
{ {
"name": "Calendar", "name": "Calendar",
"ajax": [], "ajax": [],
"parent": "Component", "parent": "Component",
"public": true "public": true
}, },
{ {
"name": "Menu", "name": "Menu",
"ajax": [], "ajax": [],
"parent": "Component", "parent": "Component",
"public": true "public": true
}, },
{ {
"name": "BaseMenuItem", "name": "BaseMenuItem",
"ajax": [], "ajax": [],
"parent": "Component", "parent": "Component",
"public": false "public": false
}, },
{ {
"name": "MenuItem", "name": "MenuItem",
"ajax": [], "ajax": [],
"parent": "BaseMenuItem", "parent": "BaseMenuItem",
"public": false "public": false
}, },
{ {
"name": "MenuButton", "name": "MenuButton",
"ajax": ["ClickScriptFunction"], "ajax": ["ClickScriptFunction"],
"parent": "MenuItem", "parent": "MenuItem",
"public": true "public": true
}, },
{ {
"name": "MenuHyperLink", "name": "MenuHyperLink",
"ajax": [], "ajax": [],
"parent": "MenuItem", "parent": "MenuItem",
"public": true "public": true
}, },
{ {
"name": "MenuSeparator", "name": "MenuSeparator",
"ajax": [], "ajax": [],
"parent": "BaseMenuItem", "parent": "BaseMenuItem",
"public": true "public": true
}, },
{ {
"name": "MenuText", "name": "MenuText",
"ajax": [], "ajax": [],
"parent": "MenuItem", "parent": "MenuItem",
"public": true "public": true
}, },
{ {
"name": "SplitButton", "name": "SplitButton",
"ajax": [], "ajax": [],
"parent": "Button", "parent": "Button",
"public": true "public": true
}, },
{ {
"name": "PageLoading", "name": "PageLoading",
"ajax": [], "ajax": [],
"parent": "ControlBase", "parent": "ControlBase",
"public": true "public": true
}, },
{ {
"name": "PageManager", "name": "PageManager",
"ajax": [], "ajax": [],
"parent": "ControlBase", "parent": "ControlBase",
"public": true "public": true
}, },
{ {
"name": "Timer", "name": "Timer",
"ajax": [], "ajax": [],
"parent": "ControlBase", "parent": "ControlBase",
"public": true "public": true
}, },
{ {
"name": "CheckBox", "name": "CheckBox",
"ajax": ["Checked"], "ajax": ["Checked"],
"parent": "Field", "parent": "Field",
"public": true "public": true
}, },
{ {
"name": "CheckBoxList", "name": "CheckBoxList",
"ajax": ["SelectedIndexArray", "SelectedValueArray", "SelectedItemArray"], "ajax": ["SelectedIndexArray", "SelectedValueArray", "SelectedItemArray"],
"parent": "Field", "parent": "Field",
"public": true "public": true
}, },
{ {
"name": "HtmlEditor", "name": "HtmlEditor",
"ajax": ["Text"], "ajax": ["Text"],
"parent": "Field", "parent": "Field",
"public": true "public": true
}, },
{ {
"name": "Label", "name": "Label",
"ajax": ["Text"], "ajax": ["Text"],
"parent": "Field", "parent": "Field",
"public": true "public": true
}, },
{ {
"name": "HyperLink", "name": "HyperLink",
"ajax": ["Text", "NavigateUrl", "Target", "OnClientClick"], "ajax": ["Text", "NavigateUrl", "Target", "OnClientClick"],
"parent": "Field", "parent": "Field",
"public": true "public": true
}, },
{ {
"name": "Image", "name": "Image",
"ajax": ["ImageUrl", "ImageWidth", "ImageHeight", "ImageCssClass", "ImageCssStyle", "ImageAlt"], "ajax": ["ImageUrl", "ImageWidth", "ImageHeight", "ImageCssClass", "ImageCssStyle", "ImageAlt"],
"parent": "Field", "parent": "Field",
"public": true "public": true
}, },
{ {
"name": "LinkButton", "name": "LinkButton",
"ajax": ["Text", "ConfirmText", "ConfirmTitle", "ConfirmIcon", "ConfirmTarget", "OnClientClick"], "ajax": ["Text", "ConfirmText", "ConfirmTitle", "ConfirmIcon", "ConfirmTarget", "OnClientClick"],
"parent": "Field", "parent": "Field",
"public": true "public": true
}, },
{ {
"name": "RadioButton", "name": "RadioButton",
"ajax": ["Checked"], "ajax": ["Checked"],
"parent": "Field", "parent": "Field",
"public": true "public": true
}, },
{ {
"name": "RadioButtonList", "name": "RadioButtonList",
"ajax": ["SelectedIndex", "SelectedValue", "SelectedItem"], "ajax": ["SelectedIndex", "SelectedValue", "SelectedItem"],
"parent": "Field", "parent": "Field",
"public": true "public": true
}, },
{ {
"name": "DropDownList", "name": "DropDownList",
"ajax": ["SelectedIndex", "SelectedValue", "SelectedItem", "DataSource", "Items"], "ajax": ["SelectedIndex", "SelectedValue", "SelectedItem", "DataSource", "Items"],
"parent": "TextField", "parent": "TextField",
"public": true "public": true
}, },
{ {
"name": "DatePicker", "name": "DatePicker",
"ajax": ["SelectedDate"], "ajax": ["SelectedDate"],
"parent": "RealTextField", "parent": "RealTextField",
"public": true "public": true
}, },
{ {
"name": "HiddenField", "name": "HiddenField",
"ajax": [], "ajax": [],
"parent": "RealTextField", "parent": "RealTextField",
"public": true "public": true
}, },
{ {
"name": "FileUpload", "name": "FileUpload",
"ajax": [], "ajax": [],
"parent": "RealTextField", "parent": "RealTextField",
"public": true "public": true
}, },
{ {
"name": "NumberBox", "name": "NumberBox",
"ajax": [], "ajax": [],
"parent": "RealTextField", "parent": "RealTextField",
"public": true "public": true
}, },
{ {
"name": "TextArea", "name": "TextArea",
"ajax": [], "ajax": [],
"parent": "RealTextField", "parent": "RealTextField",
"public": true "public": true
}, },
{ {
"name": "TextBox", "name": "TextBox",
"ajax": [], "ajax": [],
"parent": "RealTextField", "parent": "RealTextField",
"public": true "public": true
}, },
{ {
"name": "TriggerBox", "name": "TriggerBox",
"ajax": [], "ajax": [],
"parent": "RealTextField", "parent": "RealTextField",
"public": true "public": true
}, },
{ {
"name": "TwinTriggerBox", "name": "TwinTriggerBox",
"ajax": ["ShowTrigger1", "ShowTrigger2"], "ajax": ["ShowTrigger1", "ShowTrigger2"],
"parent": "RealTextField", "parent": "RealTextField",
"public": true "public": true
}, },
{ {
"name": "RegionPanel", "name": "RegionPanel",
"ajax": [], "ajax": [],
"parent": "PanelBase", "parent": "PanelBase",
"public": true "public": true
}, },
{ {
"name": "Region", "name": "Region",
"ajax": [], "ajax": [],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "Accordion", "name": "Accordion",
"ajax": [], "ajax": ["ActivePaneIndex"],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "AccordionPane", "name": "AccordionPane",
"ajax": [], "ajax": [],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "AccordionLink", "name": "AccordionLink",
"ajax": [], "ajax": [],
"parent": "ControlBase", "parent": "ControlBase",
"public": true "public": true
}, },
{ {
"name": "ContentPanel", "name": "ContentPanel",
"ajax": [], "ajax": [],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "Form", "name": "Form",
"ajax": [], "ajax": [],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "FormRow", "name": "FormRow",
"ajax": [], "ajax": [],
"parent": "ControlBase", "parent": "ControlBase",
"public": true "public": true
}, },
{ {
"name": "GroupPanel", "name": "GroupPanel",
"ajax": [], "ajax": [],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "Panel", "name": "Panel",
"ajax": [], "ajax": [],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "SimpleForm", "name": "SimpleForm",
"ajax": [], "ajax": [],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "Tree", "name": "Tree",
"ajax": ["Nodes", "SelectedNodeIDArray"], "ajax": ["Nodes", "SelectedNodeIDArray"],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "Window", "name": "Window",
"ajax": [], "ajax": [],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "Grid", "name": "Grid",
"ajax": ["PageIndex", "PageSize", "RecordCount", "SortColumnIndex", "SortDirection", "SelectedRowIndexArray", "DataSource"], "ajax": ["PageIndex", "PageSize", "RecordCount", "SortColumnIndex", "SortDirection", "SelectedRowIndexArray", "DataSource"],
"parent": "CollapsablePanel", "parent": "CollapsablePanel",
"public": true "public": true
}, },
{ {
"name": "TabStrip", "name": "TabStrip",
"ajax": ["ActiveTabIndex"], "ajax": ["ActiveTabIndex"],
"parent": "PanelBase", "parent": "PanelBase",
"public": true "public": true
}, },
{ {
"name": "Tab", "name": "Tab",
"ajax": [], "ajax": [],
"parent": "PanelBase", "parent": "PanelBase",
"public": true "public": true
}] }]

View File

@ -1,63 +1,63 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>如何在IIS6中启用GZIP压缩</title> <title>如何在IIS6中启用GZIP压缩</title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style> <style>
body body
{ {
font-size: 13px; font-size: 13px;
} }
ol li ol li
{ {
margin-bottom: 20px; margin-bottom: 20px;
} }
.title .title
{ {
font-size: 14px; font-size: 14px;
font-weight: bold; font-weight: bold;
} }
</style> </style>
</head> </head>
<body> <body class="f-body">
<div class="title"> <div class="title">
如何在IIS6中启用GZIP压缩 如何在IIS6中启用GZIP压缩
</div> </div>
<div style="margin: 10px 0;"> <div style="margin: 10px 0;">
启用GZIP压缩可以大大减少网络传输的数据量比如使用FineUI的网站首次下载的JavaScript由未启用的650K左右减少为启用GZIP后的250k左右。 启用GZIP压缩可以大大减少网络传输的数据量比如使用FineUI v3.x的网站首次下载的JavaScript由未启用的650K左右减少为启用GZIP后的250k左右。
</div> </div>
<ol> <ol>
<li>展开IIS管理器在网站菜单上点击右键点击属性菜单选择服务选项卡按下图选中启用压缩的复选框。 <li>展开IIS管理器在网站菜单上点击右键点击属性菜单选择服务选项卡按下图选中启用压缩的复选框。
<br /> <br />
<img src="../images/enable_gzip_iis6_1.png" /> <img src="../res/images/enable_gzip_iis6_1.png" />
<br /> <br />
<img src="../images/enable_gzip_iis6_2.png" /> <img src="../res/images/enable_gzip_iis6_2.png" />
<br /> <br />
</li> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&DisplayLang=en">这里</a>下载IIS <li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&DisplayLang=en">这里</a>下载IIS
6.0资源工具包安装后运行Metabase Explorer。 6.0资源工具包安装后运行Metabase Explorer。
<br /> <br />
<img src="../images/enable_gzip_iis6_3.png" /> <img src="../res/images/enable_gzip_iis6_3.png" />
<br /> <br />
</li> </li>
<li>展开 LM>W3SVC>Filters>Compression你需要如下编辑 gzip 和 deflate 两个菜单。 <li>展开 LM>W3SVC>Filters>Compression你需要如下编辑 gzip 和 deflate 两个菜单。
<br /> <br />
HcScriptFileExtensions:asp,dll,aspx,axd,asmx,php,exe HcScriptFileExtensions:asp,dll,aspx,axd,asmx,php,exe
<br /> <br />
HcDynamicCompressionLevel:10 HcDynamicCompressionLevel:10
<br /> <br />
HcFileExtensions:htm,html,js,css HcFileExtensions:htm,html,js,css
<br /> <br />
<img src="../images/enable_gzip_iis6_4.png" /> <img src="../res/images/enable_gzip_iis6_4.png" />
<br /> <br />
</li> </li>
<li>重启IIS。 <li>重启IIS。
<br /> <br />
<img src="../images/enable_gzip_iis6_5.png" /> <img src="../res/images/enable_gzip_iis6_5.png" />
</li> </li>
</ol> </ol>
<div> <div>
原文链接:<a href="http://www.codeproject.com/Articles/31073/Enable-Gzip-compression-in-IIS-6-0-for-ASP-NET-2-0">http://www.codeproject.com/Articles/31073/Enable-Gzip-compression-in-IIS-6-0-for-ASP-NET-2-0</a> 原文链接:<a href="http://www.codeproject.com/Articles/31073/Enable-Gzip-compression-in-IIS-6-0-for-ASP-NET-2-0">http://www.codeproject.com/Articles/31073/Enable-Gzip-compression-in-IIS-6-0-for-ASP-NET-2-0</a>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,25 +1,25 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="icons.aspx.cs" Inherits="FineUI.Examples.icons" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="icons.aspx.cs" Inherits="FineUI.Examples.icons" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css"> <style type="text/css">
body { body {
padding: 10px; padding: 10px;
color: #333; color: #333;
} }
img { img {
padding: 0 10px 10px 0; padding: 0 10px 10px 0;
} }
</style> </style>
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<img src="../images/icons.gif" alt="FineUI Icons" /> <img src="../res/images/icons.gif" alt="FineUI Icons" />
<%--<asp:Literal EnableViewState="false" runat="server" ID="litIcons"></asp:Literal>--%> <%--<asp:Literal EnableViewState="false" runat="server" ID="litIcons"></asp:Literal>--%>
</form> </form>
</body> </body>
</html> </html>

View File

@ -1,49 +1,49 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Text; using System.Text;
namespace FineUI.Examples namespace FineUI.Examples
{ {
public partial class icons : PageBase public partial class icons : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
//LoadData(); //LoadData();
} }
} }
//private void LoadData() //private void LoadData()
//{ //{
// StringBuilder sb = new StringBuilder(); // StringBuilder sb = new StringBuilder();
// int index = 0; // int index = 0;
// sb.Append("<table><tr>"); // sb.Append("<table><tr>");
// foreach (string icon in Enum.GetNames(typeof(FineUI.IconType))) // foreach (string icon in Enum.GetNames(typeof(FineUI.IconType)))
// { // {
// //string iconName = FineUI.IconTypeName.GetName((FineUI.IconType)Enum.Parse(typeof(FineUI.IconType), icon)); // //string iconName = FineUI.IconTypeName.GetName((FineUI.IconType)Enum.Parse(typeof(FineUI.IconType), icon));
// //string iconUrl = FineUI.ResourceHelper.GetWebResourceUrl(Page, String.Format("FineUI.res.box.icons.{0}", iconName)); // //string iconUrl = FineUI.ResourceHelper.GetWebResourceUrl(Page, String.Format("FineUI.res.box.icons.{0}", iconName));
// FineUI.IconType iconType = (FineUI.IconType)Enum.Parse(typeof(FineUI.IconType), icon); // FineUI.IconType iconType = (FineUI.IconType)Enum.Parse(typeof(FineUI.IconType), icon);
// if (iconType != FineUI.IconType.None) // if (iconType != FineUI.IconType.None)
// { // {
// string iconUrl = FineUI.IconTypeName.GetIconUrl(iconType); // string iconUrl = FineUI.IconTypeName.GetIconUrl(iconType);
// sb.AppendFormat("<td><span style=\"padding-left:20px;background-image:url({0});background-repeat:no-repeat;\">{1}</span></td>", iconUrl, icon); // sb.AppendFormat("<td><span style=\"padding-left:20px;background-image:url({0});background-repeat:no-repeat;\">{1}</span></td>", iconUrl, icon);
// } // }
// if (index % 5 == 0 && index != 0) // if (index % 5 == 0 && index != 0)
// { // {
// sb.Append("</tr><tr>"); // sb.Append("</tr><tr>");
// } // }
// index++; // index++;
// } // }
// sb.Append("</tr><table>"); // sb.Append("</tr><table>");
// litIcons.Text = sb.ToString(); // litIcons.Text = sb.ToString();
//} //}
} }
} }

View File

@ -1,24 +1,24 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples { namespace FineUI.Examples {
public partial class icons { public partial class icons {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
} }
} }

View File

@ -1,10 +1,10 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body class="f-body">
<img src="../images/icons.gif" alt="FineUI Icons" /> <img src="../res/images/icons.gif" alt="FineUI Icons" />
</body> </body>
</html> </html>

View File

@ -1,33 +1,33 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css"> <style type="text/css">
body { body {
font-size: 13px; font-size: 13px;
} }
ul li { ul li {
margin-bottom: 5px; margin-bottom: 5px;
} }
</style> </style>
</head> </head>
<body> <body class="f-body">
<div> <div>
安装工具箱 安装工具箱
</div> </div>
<ul class="example"> <ol class="example">
<li>打开 Visual Studio新建一个 Web 项目; </li> <li>打开 Visual Studio新建一个 Web 项目; </li>
<li>打开 Default.aspx 页面;</li> <li>打开 Default.aspx 页面;</li>
<li>打开工具箱在空白处点击右键选择“添加选项卡”输入“FineUI” </li> <li>打开工具箱在空白处点击右键选择“添加选项卡”输入“FineUI” </li>
<li>在“FineUI”选项卡内单击右键选择“选择项...”; </li> <li>在“FineUI”选项卡内单击右键选择“选择项...”; </li>
<li>在弹出的窗口的下面,选择“浏览...”按钮;</li> <li>在弹出的窗口的下面,选择“浏览...”按钮;</li>
<li>打开“FineUI.dll”并确定 </li> <li>打开“FineUI.dll”并确定 </li>
<li>完成后的截图: <li>完成后的截图:
<br /> <br />
<img alt="FineUI toolbox" src="../images/toolbox.png" /> <img alt="FineUI toolbox" src="../res/images/toolbox.png" />
</li> </li>
</ul> </ol>
</body> </body>
</html> </html>

View File

@ -1,97 +1,120 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title></title> <title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css"> <style type="text/css">
body { body {
font-size: 13px; font-size: 13px;
} }
ul li { ul li {
margin-bottom: 5px; margin-bottom: 5px;
} }
</style> </style>
</head> </head>
<body> <body class="f-body">
<div> <div>
在开发项目之前一定要配置好 Web.config 在开发项目之前请配置好 Web.config
</div> </div>
<ul> <ol>
<li>打开 web.config在 configuration 配置节: <li><strong>设置 configuration 配置节:</strong>
<br /> <br />
<pre style="font-style: italic;"> <pre style="font-style: italic;">
&lt;configSections&gt; &lt;configSections&gt;
&lt;section name="FineUI" type="FineUI.ConfigSection, FineUI"/&gt; &lt;section name="FineUI" type="FineUI.ConfigSection, FineUI"/&gt;
&lt;/configSections&gt; &lt;/configSections&gt;
&lt;!-- 可用的配置项(这里列的都是默认值):Language="zh_CN" AjaxTimeout="60" EnableAjax="true" Theme="blue" FormMessageTarget="qtip" FormOffsetRight="20" FormLabelWidth="100" FormLabelSeparator="" IconBasePath="~/icon" EnableAjaxLoading="true" AjaxLoadingType="default" CustomTheme="" CustomThemeBasePath="~/theme" --&gt; &lt;!-- 可用的配置项(这里列的都是默认值):
&lt;FineUI DebugMode="false" /&gt; Theme="Neptune"
</pre> Language="zh_CN"
FineUI 配置节中的参数: AjaxTimeout="120"
<br /> EnableAjax="true"
<ul> DebugMode="false"
<li>Theme: 控件主题目前内置了四种主题风格Neptune/Blue/Gray/Access默认值Neptune</li> FormMessageTarget="Qtip"
<li>Language: 控件语言en/zh_CN/zh_TW/...默认值zh_CN</li> FormOffsetRight="0"
<li>FormMessageTarget: 表单字段错误提示信息的显示位置Side/Qtip默认值Side</li> FormLabelWidth="100"
<li>FormOffsetRight: 表单字段右侧距离边界的宽度默认值5px</li> FormLabelSeparator=""
<li>FormLabelWidth: 表单字段标签的宽度默认值100px</li> FormLabelAlign="Left"
<li>FormLabelSeparator: 表单字段标签与内容的分隔符(默认值:""</li> EnableAjaxLoading="true"
<li>EnableAjax: 是否启用AJAX默认值true</li> AjaxLoadingType="Default"
<li>AjaxTimeout: AJAX超时时间单位默认值60s</li> CustomTheme=""
<!--<li>EnableBigFont: 是否启用大字体将ExtJS默认11px的字体全部改为12px否则显示的中文字体太小默认值false</li>--> IconBasePath="~/res/icon"
<li>DebugMode: 是否开发模式启用时格式化输出页面JavaScript代码便于调试默认值false</li> CustomThemeBasePath="~/res/theme"
<li>EnableAjaxLoading: 是否启用Ajax提示默认值true</li> JSBasePath="~/extjs"
<li>AjaxLoadingType: Ajax提示类型默认在页面顶部显示黄色提示框mask则显示extjs默认的加载提示default/mask默认值default</li> IEEdge="true"
</ul> --&gt;
<br /> &lt;FineUI DebugMode="false" /&gt;
<br /> </pre>
</li> FineUI 配置节中的参数:
<li>在 system.web 配置节: <br />
<pre style="font-style: italic;"> <ul>
&lt;pages&gt; <li>Theme: 控件主题,内置 4 种主题风格Neptune/Blue/Gray/Access默认值Neptune</li>
&lt;controls&gt; <li>Language: 控件语言en/zh_CN/zh_TW默认值zh_CN</li>
&lt;add assembly="FineUI" namespace="FineUI" tagPrefix="x"/&gt; <li>FormMessageTarget: 表单字段错误提示信息的显示位置Title/Side/Qtip默认值Side</li>
&lt;/controls&gt; <li>FormOffsetRight: 表单字段右侧距离边界的宽度默认值0px</li>
&lt;/pages&gt; <li>FormLabelWidth: 表单字段标签的宽度默认值100px</li>
<li>FormLabelSeparator: 表单字段标签与内容的分隔符(默认值:""</li>
&lt;httpModules&gt; <li>EnableAjax: 是否启用AJAX默认值true</li>
&lt;add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI"/&gt; <li>AjaxTimeout: Ajax超时时间单位默认值120s</li>
&lt;/httpModules&gt; <li>DebugMode: 是否开发模式启用时格式化输出页面的JavaScript代码便于调试默认值false</li>
<li>EnableAjaxLoading: 是否启用Ajax提示默认值true</li>
&lt;httpHandlers&gt; <li>AjaxLoadingType: Ajax提示类型默认在页面顶部显示黄色提示框Default/Mask默认值Default</li>
&lt;add verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI"/&gt; </ul>
&lt;/httpHandlers&gt; <br />
</pre> <br />
</li> </li>
<li>完成。</li> <li><strong>设置 system.web 配置节:</strong>
</ul> <pre style="font-style: italic;">
<br /> &lt;pages&gt;
<div style="font-weight: bold; color: Red;"> &lt;controls&gt;
特别提醒 &lt;add assembly="FineUI" namespace="FineUI" tagPrefix="f"/&gt;
</div> &lt;/controls&gt;
<br /> &lt;/pages&gt;
基于.Net 4.5的项目一定要为Web.config中&lt;page&gt;标签添加controlRenderingCompatibilityVersion和clientIDMode两个属性。
<pre style="font-style: italic;"> &lt;httpModules&gt;
&lt;pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"&gt; &lt;add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI"/&gt;
&lt;controls&gt; &lt;/httpModules&gt;
&lt;add assembly="FineUI" namespace="FineUI" tagPrefix="ext" /&gt;
&lt;/controls&gt; &lt;httpHandlers&gt;
&lt;/pages&gt; &lt;add verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI" validate="false"/&gt;
</pre> &lt;/httpHandlers&gt;
<br />
<div style="font-weight: bold; color: Red;"> </pre>
注意引用的Newtonsoft.Json.dll版本 </li>
</div> <li><strong>完成。</strong></li>
<br /> </ol>
FineUI.dll只有一个For Net2.0的版本无论你的项目是2.0、3.5、4.0、4.5都只需要引用同一个FineUI.dll即可。 <br />
<br /> <div style="font-weight: bold; color: Red;">
<br /> 特别提醒
Newtonsoft.Json.dll为每个.Net版本创建不同的DLL比如你的项目是基于.Net 2.0的就要引用json.net\Net20\Newtonsoft.Json.dll如果你的项目是基于.Net </div>
4.0的就要引用json.net\Net40\Newtonsoft.Json.dll。 <br />
<br /> 基于.Net 4.5的项目一定要为Web.config中&lt;page&gt;标签添加controlRenderingCompatibilityVersion和clientIDMode两个属性。
<br /> <pre style="font-style: italic;">
<br /> &lt;pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"&gt;
<br /> &lt;controls&gt;
</body> &lt;add assembly="FineUI" namespace="FineUI" tagPrefix="f" /&gt;
</html> &lt;/controls&gt;
&lt;/pages&gt;
</pre>
<br />
<div style="font-weight: bold; color: Red;">
注意引用的Newtonsoft.Json.dll版本
</div>
<br />
FineUI.dll只有一个版本无论你的项目是2.0、3.5、4.0、4.5都只需要引用同一个FineUI.dll即可。
<br />
<br />
Newtonsoft.Json.dll为每个.Net版本创建不同的DLL比如你的项目是基于.Net 2.0的就要引用json.net\Net20\Newtonsoft.Json.dll如果你的项目是基于.Net
4.0的就要引用json.net\Net40\Newtonsoft.Json.dll。
<br />
<br />
<br />
<div style="font-weight: bold; color: Red;">
更多常见问题:<a href="http://fineui.com/bbs/forum.php?mod=viewthread&tid=655" target="_blank">http://fineui.com/bbs/forum.php?mod=viewthread&tid=655</a>
</div>
<br />
<br />
<br />
</body>
</html>

View File

@ -1,189 +1,193 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>FineUI版本发布周期</title> <title>FineUI版本发布周期</title>
<link href="../css/main.css" rel="stylesheet" type="text/css" /> <link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style> <style>
body { body {
font-size: 13px; font-size: 13px;
} }
#desc { #desc {
font-weight: bold; font-weight: bold;
text-align: left; text-align: left;
margin: 20px 0 10px; margin: 20px 0 10px;
font-size: 14px; font-size: 14px;
} }
</style> </style>
</head> </head>
<body> <body class="f-body">
<div id="desc"> <div id="desc">
</div> </div>
<div id="chart_div"> <div id="chart_div">
</div> </div>
<script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript"> <script type="text/javascript">
google.load("visualization", "1", { google.load("visualization", "1", {
packages: ["corechart"] packages: ["corechart"]
}); });
google.setOnLoadCallback(drawChart); google.setOnLoadCallback(drawChart);
function drawChart() { function drawChart() {
var vs = preprocessVersions(), v, count = vs.length, chart, data; var vs = preprocessVersions(), v, count = vs.length, chart, data;
data = new google.visualization.DataTable(); data = new google.visualization.DataTable();
data.addColumn('string', '版本'); data.addColumn('string', '版本');
data.addColumn('number', '版本间隔天数'); data.addColumn('number', '版本间隔天数');
data.addRows(count); data.addRows(count);
for (var i = count - 1, j = 0; i >= 0; i--, j++) { for (var i = count - 1, j = 0; i >= 0; i--, j++) {
v = vs[i]; v = vs[i];
data.setValue(j, 1, v[2]); data.setValue(j, 1, v[2]);
data.setValue(j, 0, v[1] + " (" + v[0] + ")"); data.setValue(j, 0, v[1] + " (" + v[0] + ")");
} }
chart = new google.visualization.BarChart(document.getElementById('chart_div')); chart = new google.visualization.BarChart(document.getElementById('chart_div'));
chart.draw(data, { chart.draw(data, {
height: 2500, height: 2500,
width: 900, width: 900,
fontSize: 13, fontSize: 13,
title: 'FineUI版本发布周期', title: 'FineUI版本发布周期',
vAxis: { vAxis: {
title: 'FineUI版本' title: 'FineUI版本'
}, },
chartArea: { chartArea: {
top: 30, top: 30,
left: 200 left: 200
} }
}); });
document.getElementById('desc').innerHTML = 'FineUI版本发布周期总计发布了 ' + vs.length + ' 个版本)'; document.getElementById('desc').innerHTML = 'FineUI版本发布周期总计发布了 ' + vs.length + ' 个版本)';
} }
function preprocessVersions() { function preprocessVersions() {
var data = [ var data = [
["v0.1 preview", "2008-04-11"], ["v0.1 preview", "2008-04-11"],
["v0.1 preview2", "2008-04-25"], ["v0.1 preview2", "2008-04-25"],
["v0.1 beta1", "2008-04-30"], ["v0.1 beta1", "2008-04-30"],
["v0.1 beta2", "2008-05-08"], ["v0.1 beta2", "2008-05-08"],
["v0.1 beta3", "2008-05-14"], ["v0.1 beta3", "2008-05-14"],
["v0.1 beta4", "2008-05-20"], ["v0.1 beta4", "2008-05-20"],
["v0.1 beta5", "2008-05-23"], ["v0.1 beta5", "2008-05-23"],
["v0.1 beta6", "2008-05-27"], ["v0.1 beta6", "2008-05-27"],
["v0.1 beta7", "2008-05-29"], ["v0.1 beta7", "2008-05-29"],
["v0.1 beta8", "2008-05-30"], ["v0.1 beta8", "2008-05-30"],
["v0.1 beta9", "2008-06-03"], ["v0.1 beta9", "2008-06-03"],
["v0.1 beta10", "2008-06-05"], ["v0.1 beta10", "2008-06-05"],
["v0.1 beta12", "2008-06-10"], ["v0.1 beta12", "2008-06-10"],
["v0.2 beta1", "2008-06-12"], ["v0.2 beta1", "2008-06-12"],
["v0.2 beta2", "2008-06-13"], ["v0.2 beta2", "2008-06-13"],
["v0.2 beta3", "2008-06-16"], ["v0.2 beta3", "2008-06-16"],
["v0.2 beta4", "2008-06-17"], ["v0.2 beta4", "2008-06-17"],
["v0.2 beta6", "2008-06-19"], ["v0.2 beta6", "2008-06-19"],
["v0.2 beta7", "2008-06-20"], ["v0.2 beta7", "2008-06-20"],
["v0.2 beta8", "2008-06-23"], ["v0.2 beta8", "2008-06-23"],
["v0.2 beta9", "2008-06-25"], ["v0.2 beta9", "2008-06-25"],
["v0.2 beta10", "2008-06-27"], ["v0.2 beta10", "2008-06-27"],
["v0.2 beta11", "2008-06-30"], ["v0.2 beta11", "2008-06-30"],
["v0.2 beta12", "2008-07-02"], ["v0.2 beta12", "2008-07-02"],
["v0.3 beta1", "2008-07-03"], ["v0.3 beta1", "2008-07-03"],
["v0.3 beta2", "2008-07-07"], ["v0.3 beta2", "2008-07-07"],
["v0.3 beta3", "2008-07-08"], ["v0.3 beta3", "2008-07-08"],
["v0.3 beta4", "2008-07-09"], ["v0.3 beta4", "2008-07-09"],
["v0.3 beta5", "2008-07-12"], ["v0.3 beta5", "2008-07-12"],
["v0.3 beta6", "2008-07-14"], ["v0.3 beta6", "2008-07-14"],
["v0.3 beta8", "2008-07-16"], ["v0.3 beta8", "2008-07-16"],
["v0.3 beta9", "2008-07-22"], ["v0.3 beta9", "2008-07-22"],
["v0.3 beta10", "2008-07-23"], ["v0.3 beta10", "2008-07-23"],
["v0.3 beta11", "2008-07-24"], ["v0.3 beta11", "2008-07-24"],
["v0.3 beta12", "2008-07-31"], ["v0.3 beta12", "2008-07-31"],
["v0.4 beta1", "2008-08-05"], ["v0.4 beta1", "2008-08-05"],
["v0.4 beta2", "2008-08-08"], ["v0.4 beta2", "2008-08-08"],
["v0.4 beta3", "2008-08-12"], ["v0.4 beta3", "2008-08-12"],
["v0.4 beta4", "2008-08-13"], ["v0.4 beta4", "2008-08-13"],
["v0.4 beta5", "2008-08-15"], ["v0.4 beta5", "2008-08-15"],
["v0.4 beta6", "2008-08-19"], ["v0.4 beta6", "2008-08-19"],
["v1.0", "2008-08-26"], ["v1.0", "2008-08-26"],
["v1.1 beta1", "2008-08-29"], ["v1.1 beta1", "2008-08-29"],
["v1.1 beta3", "2008-08-31"], ["v1.1 beta3", "2008-08-31"],
["v1.1 beta4", "2008-09-01"], ["v1.1 beta4", "2008-09-01"],
["v1.1 beta5", "2008-09-02"], ["v1.1 beta5", "2008-09-02"],
["v1.1 beta6", "2008-09-04"], ["v1.1 beta6", "2008-09-04"],
["v1.1 beta7", "2008-09-08"], ["v1.1 beta7", "2008-09-08"],
["v1.1", "2008-09-09"], ["v1.1", "2008-09-09"],
["v1.2 beta1", "2008-09-19"], ["v1.2 beta1", "2008-09-19"],
["v1.2 beta2", "2008-09-22"], ["v1.2 beta2", "2008-09-22"],
["v1.2 beta3", "2008-09-25"], ["v1.2 beta3", "2008-09-25"],
["v1.2 beta4", "2008-09-27"], ["v1.2 beta4", "2008-09-27"],
["v1.2 beta5", "2008-10-15"], ["v1.2 beta5", "2008-10-15"],
["v1.2 beta6", "2008-10-20"], ["v1.2 beta6", "2008-10-20"],
["v1.2 beta7", "2008-10-28"], ["v1.2 beta7", "2008-10-28"],
["v1.2 beta8", "2009-02-23"], ["v1.2 beta8", "2009-02-23"],
["v1.2 beta9", "2009-02-27"], ["v1.2 beta9", "2009-02-27"],
["v1.3.0", "2009-03-03"], ["v1.3.0", "2009-03-03"],
["v1.3.1", "2009-03-25"], ["v1.3.1", "2009-03-25"],
["v2.0 beta1", "2009-07-05"], ["v2.0 beta1", "2009-07-05"],
["v2.0 beta2", "2009-07-13"], ["v2.0 beta2", "2009-07-13"],
["v2.0 beta3", "2009-07-22"], ["v2.0 beta3", "2009-07-22"],
["v2.0 beta4", "2009-08-02"], ["v2.0 beta4", "2009-08-02"],
["v2.0 beta5", "2009-08-09"], ["v2.0 beta5", "2009-08-09"],
["v2.0.6", "2009-08-14"], ["v2.0.6", "2009-08-14"],
["v2.0.7", "2009-08-25"], ["v2.0.7", "2009-08-25"],
["v2.0.8", "2009-08-29"], ["v2.0.8", "2009-08-29"],
["v2.0.9", "2009-09-01"], ["v2.0.9", "2009-09-01"],
["v2.1.0", "2009-09-06"], ["v2.1.0", "2009-09-06"],
["v2.1.1", "2009-09-15"], ["v2.1.1", "2009-09-15"],
["v2.1.2", "2009-09-27"], ["v2.1.2", "2009-09-27"],
["v2.1.3", "2009-10-19"], ["v2.1.3", "2009-10-19"],
["v2.1.4", "2009-11-17"], ["v2.1.4", "2009-11-17"],
["v2.1.5", "2009-11-21"], ["v2.1.5", "2009-11-21"],
["v2.1.6", "2009-11-26"], ["v2.1.6", "2009-11-26"],
["v2.1.7", "2009-12-01"], ["v2.1.7", "2009-12-01"],
["v2.1.8", "2009-12-06"], ["v2.1.8", "2009-12-06"],
["v2.1.9", "2010-01-06"], ["v2.1.9", "2010-01-06"],
["v2.2.0", "2010-01-31"], ["v2.2.0", "2010-01-31"],
["v2.2.1", "2010-03-28"], ["v2.2.1", "2010-03-28"],
["v2.3.1", "2010-06-30"], ["v2.3.1", "2010-06-30"],
["v2.3.2", "2010-09-29"], ["v2.3.2", "2010-09-29"],
["v2.3.3", "2011-02-22"], ["v2.3.3", "2011-02-22"],
["v2.3.4", "2011-05-02"], ["v2.3.4", "2011-05-02"],
["v2.3.5", "2011-05-09"], ["v2.3.5", "2011-05-09"],
["v3.0.0", "2012-01-28"], ["v3.0.0", "2012-01-28"],
["v3.0.1", "2012-02-05"], ["v3.0.1", "2012-02-05"],
["v3.1.0", "2012-03-04"], ["v3.1.0", "2012-03-04"],
["v3.1.1", "2012-04-02"], ["v3.1.1", "2012-04-02"],
["v3.1.2", "2012-04-04"], ["v3.1.2", "2012-04-04"],
["v3.1.3", "2012-04-08"], ["v3.1.3", "2012-04-08"],
["v3.1.4", "2012-04-24"], ["v3.1.4", "2012-04-24"],
["v3.1.5", "2012-05-06"], ["v3.1.5", "2012-05-06"],
["v3.1.6", "2012-05-20"], ["v3.1.6", "2012-05-20"],
["v3.1.7", "2012-06-03"], ["v3.1.7", "2012-06-03"],
["v3.1.8", "2012-06-24"], ["v3.1.8", "2012-06-24"],
["v3.1.9", "2012-08-18"], ["v3.1.9", "2012-08-18"],
["v3.2.0", "2012-11-18"], ["v3.2.0", "2012-11-18"],
["v3.2.1", "2012-11-25"], ["v3.2.1", "2012-11-25"],
["v3.2.2", "2012-12-03"], ["v3.2.2", "2012-12-03"],
["v3.2.3", "2013-01-09"], ["v3.2.3", "2013-01-09"],
["v3.2.4", "2013-03-23"], ["v3.2.4", "2013-03-23"],
["v3.2.5", "2013-04-27"], ["v3.2.5", "2013-04-27"],
["v3.2.6", "2013-05-21"], ["v3.2.6", "2013-05-21"],
["v3.3.0", "2013-06-17"], ["v3.3.0", "2013-06-17"],
["v3.3.1", "2013-07-29"], ["v3.3.1", "2013-07-29"],
["v4.0.1", "2013-10-28"] ["v4.0.1 beta", "2013-10-28"],
]; ["v3.3.2", "2013-11-21"],
["v4.0.2 beta", "2013-12-14"],
// 初始化第一个数据 ["v3.3.3", "2014-01-20"],
data[0][2] = 0; ["v4.0.3 beta", "2014-01-20"]
];
var i = 1, count = data.length;
for (; i < count; i++) { // 初始化第一个数据
data[i][2] = (new Date(data[i][1]) - new Date(data[i - 1][1])) / (24 * 60 * 60 * 1000); data[0][2] = 0;
}
var i = 1, count = data.length;
return data; for (; i < count; i++) {
} data[i][2] = (new Date(data[i][1]) - new Date(data[i - 1][1])) / (24 * 60 * 60 * 1000);
}
</script> return data;
</body> }
</html>
</script>
</body>
</html>

View File

@ -1,169 +1,558 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="FineUI.Examples._default" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="FineUI.Examples._default" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title>FineUI 在线示例 - 基于 ExtJS 的专业 ASP.NET 控件库</title> <title>FineUI开源版在线示例 - 基于 ExtJS 的开源 ASP.NET 控件库</title>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<meta name="Title" content="基于 ExtJS 的专业 ASP.NET 控件库,拥有原生的 AJAX 支持和华丽的UI效果 (ExtJS based ASP.NET Controls with native AJAX Support and rich UI effects)" /> <meta name="Title" content="基于 ExtJS 的开源 ASP.NET 控件库(ExtJS based open source ASP.NET Controls)" />
<meta name="Description" content="FineUI 的使命是创建 No JavaScriptNo CSSNo UpdatePanelNo ViewStateNo WebServices 的网站应用程序" /> <meta name="Description" content="FineUI 的使命是创建 No JavaScriptNo CSSNo UpdatePanelNo ViewStateNo WebServices 的网站应用程序" />
<meta name="Keywords" content="extjs,ext,asp.net,control,asp.net 2.0,ajax,web2.0" /> <meta name="Keywords" content="开源,ASP.NET,控件库,ExtJS,AJAX,Web2.0" />
<link href="css/default.css" rel="stylesheet" type="text/css" /> <style>
</head> #header {
<body> position: relative;
<form id="form1" runat="server"> padding: 10px 10px 8px;
<x:PageManager ID="PageManager1" AutoSizePanelID="RegionPanel1" runat="server"></x:PageManager> }
<x:RegionPanel ID="RegionPanel1" ShowBorder="false" runat="server">
<Regions> #header a.logo {
<x:Region ID="Region1" Margins="0 0 0 0" ShowBorder="false" Height="50px" ShowHeader="false" display: inline-block;
Position="Top" Layout="Fit" runat="server"> margin-right: 5px;
<Items> }
<x:ContentPanel ShowBorder="false" CssClass="jumbotron" ShowHeader="false" ID="ContentPanel1"
runat="server"> #header a.title {
<div class="title"> font-weight: bold;
<a href="http://fineui.com/" title="FineUI首页" class="logo"> font-size: 24px;
<img src="./images/logo/logo2.gif" alt="FineUI Logo" /></a> text-decoration: none;
<a href="./default.aspx">FineUI在线示例</a> line-height: 36px;
</div> color: #fff;
<div class="config"> }
<x:Button ID="Button2" EnablePostBack="false" Icon="Cog" Text="设置" runat="server">
<Menu ID="Menu1" runat="server">
<x:MenuButton ID="btnExpandAll" IconUrl="~/images/expand-all.gif" Text="展开菜单" EnablePostBack="false" #header .themeroller {
runat="server"> position: absolute;
</x:MenuButton> top: 10px;
<x:MenuButton ID="btnCollapseAll" IconUrl="~/images/collapse-all.gif" Text="折叠菜单" right: 10px;
EnablePostBack="false" runat="server"> }
</x:MenuButton>
<x:MenuSeparator ID="MenuSeparator1" runat="server"> #header .themeroller a {
</x:MenuSeparator> font-size: 20px;
<x:MenuButton EnablePostBack="false" Text="菜单样式" ID="MenuStyle" runat="server"> text-decoration: none;
<Menu ID="Menu3" runat="server"> line-height: 36px;
<x:MenuCheckBox Text="树菜单" ID="MenuStyleTree" Checked="true" GroupName="MenuStyle" color: #fff;
AutoPostBack="true" OnCheckedChanged="MenuStyle_CheckedChanged" runat="server"> }
</x:MenuCheckBox>
<x:MenuCheckBox Text="手风琴+树菜单" ID="MenuStyleAccordion" GroupName="MenuStyle" AutoPostBack="true"
OnCheckedChanged="MenuStyle_CheckedChanged" runat="server"> #logo {
</x:MenuCheckBox> position: absolute;
</Menu> bottom: 20px;
</x:MenuButton> right: 0;
<x:MenuButton EnablePostBack="false" Text="语言" ID="MenuLang" runat="server"> filter: alpha(opacity=80);
<Menu ID="Menu2" runat="server"> -moz-opacity: 0.8;
<x:MenuCheckBox Text="简体中文" ID="MenuLangZHCN" Checked="true" GroupName="MenuLang" opacity: 0.8;
AutoPostBack="true" OnCheckedChanged="MenuLang_CheckedChanged" runat="server"> z-index: 100000;
</x:MenuCheckBox> }
<x:MenuCheckBox Text="繁體中文" ID="MenuLangZHTW" GroupName="MenuLang" AutoPostBack="true"
OnCheckedChanged="MenuLang_CheckedChanged" runat="server"> .isnew {
</x:MenuCheckBox> color: red;
<x:MenuCheckBox Text="English" ID="MenuLangEN" GroupName="MenuLang" AutoPostBack="true" }
OnCheckedChanged="MenuLang_CheckedChanged" runat="server">
</x:MenuCheckBox> .bottomtable {
</Menu> width: 100%;
</x:MenuButton> font-size: 12px;
<x:MenuButton ID="MenuTheme" EnablePostBack="false" Text="主题" runat="server"> }
<Menu ID="Menu4" runat="server">
<x:MenuCheckBox Text="Neptune" ID="MenuThemeNeptune" Checked="true" GroupName="MenuTheme" /* 修正选项卡标题中放置红色[New!]时,底部出现的一行空白线 */
AutoPostBack="true" OnCheckedChanged="MenuTheme_CheckedChanged" runat="server"> .f-theme-neptune .x-tab .x-tab-inner {
</x:MenuCheckBox> line-height: 16px !important;
<x:MenuCheckBox Text="Blue" ID="MenuThemeBlue" GroupName="MenuTheme" }
AutoPostBack="true" OnCheckedChanged="MenuTheme_CheckedChanged" runat="server">
</x:MenuCheckBox>
<x:MenuCheckBox Text="Gray" ID="MenuThemeGray" GroupName="MenuTheme" AutoPostBack="true" /* 主题相关样式 - neptune */
OnCheckedChanged="MenuTheme_CheckedChanged" runat="server"> .f-theme-neptune #header,
</x:MenuCheckBox> .f-theme-neptune .bottomtable,
<x:MenuCheckBox Text="Access" ID="MenuThemeAccess" GroupName="MenuTheme" AutoPostBack="true" .f-theme-neptune .x-splitter {
OnCheckedChanged="MenuTheme_CheckedChanged" runat="server"> background-color: #1475BB;
</x:MenuCheckBox> color: #fff;
</Menu> }
</x:MenuButton>
<x:MenuSeparator ID="MenuSeparator2" runat="server"> .f-theme-neptune #header a,
</x:MenuSeparator> .f-theme-neptune .bottomtable a {
<x:MenuHyperLink runat="server" Text="转到英文示例" NavigateUrl="http://fineui.com/demo_en/" Target="_blank"></x:MenuHyperLink> color: #fff;
</Menu> }
</x:Button>
</div>
</x:ContentPanel> /* 主题相关样式 - blue */
</Items> .f-theme-blue #header,
</x:Region> .f-theme-blue .bottomtable {
<x:Region ID="Region2" Split="true" Width="200px" ShowHeader="true" Title="示例菜单" background-color: #DFE8F6;
EnableCollapse="true" Layout="Fit" Position="Left" runat="server"> color: #000;
</x:Region> }
<x:Region ID="mainRegion" ShowHeader="false" Layout="Fit" Margins="0 0 0 0" Position="Center"
runat="server"> .f-theme-blue #header a,
<Items> .f-theme-blue .bottomtable a {
<x:TabStrip ID="mainTabStrip" EnableTabCloseMenu="true" EnableFrame="false" ShowBorder="false" runat="server"> color: #000;
<Tabs> }
<x:Tab Title="首页" Layout="Fit" Icon="House" CssClass="maincontent" runat="server">
<Toolbars> /* 主题相关样式 - gray */
<x:Toolbar runat="server"> .f-theme-gray #header,
<Items> .f-theme-gray .bottomtable {
<x:ToolbarFill ID="ToolbarFill2" runat="server"> background-color: #E0E0E0;
</x:ToolbarFill> color: #333;
<x:Button ID="btnGotoOpenSourceSite" Icon="DiskDownload" Text="下载全部示例" OnClientClick="window.open('http://fineui.codeplex.com/', '_blank');" }
EnablePostBack="false" runat="server">
</x:Button> .f-theme-gray #header a,
<x:ToolbarSeparator ID="ToolbarSeparator1" runat="server"> .f-theme-gray .bottomtable a {
</x:ToolbarSeparator> color: #333;
<x:Button Icon="PageGo" Text="官网首页" EnablePostBack="false" OnClientClick="window.open('http://fineui.com/', '_blank');" }
runat="server">
</x:Button> /* 主题相关样式 - access */
<x:ToolbarSeparator ID="ToolbarSeparator2" runat="server"> .f-theme-access #header,
</x:ToolbarSeparator> .f-theme-access .bottomtable {
<x:Button ID="Button1" Icon="PageGo" Text="论坛交流" OnClientClick="window.open('http://fineui.com/bbs/', '_blank');" background-color: #3F4757;
EnablePostBack="false" runat="server"> color: #fff;
</x:Button> }
</Items>
</x:Toolbar> .f-theme-access #header a,
</Toolbars> .f-theme-access .bottomtable a {
<Items> color: #fff;
<x:ContentPanel ShowBorder="false" BodyPadding="10px" ShowHeader="false" AutoScroll="true" }
runat="server">
<h2>关于FineUI</h2> .f-theme-access .maincontent .x-panel-body {
基于 ExtJS 的专业 ASP.NET 控件库。 background-image: none;
}
<br /> </style>
<h2>FineUI的使命</h2> </head>
创建 No JavaScriptNo CSSNo UpdatePanelNo ViewStateNo WebServices 的网站应用程序。 <body>
<form id="form1" runat="server">
<br /> <f:PageManager ID="PageManager1" AutoSizePanelID="RegionPanel1" runat="server"></f:PageManager>
<h2>支持的浏览器</h2> <f:RegionPanel ID="RegionPanel1" ShowBorder="false" runat="server">
IE 7.0+、Firefox 3.6+、Chrome 3.0+、Opera 10.5+、Safari 3.0+ <Regions>
<f:Region ID="Region1" ShowBorder="false" ShowHeader="false"
<br /> Position="Top" Layout="Fit" runat="server">
<h2>授权协议</h2> <Content>
Apache License v2.0ExtJS 库在 <a target="_blank" href="http://www.sencha.com/license">GPL v3</a> 协议下发布) <div id="header">
<table>
<br /> <tr>
<h2>相关链接</h2> <td>
首页:<a target="_blank" style="font-weight: bold;" href="http://fineui.com/">http://fineui.com/</a> <a class="logo" href="http://fineui.com/" title="FineUI首页">
<br /> <img src="./res/images/logo/logo2.gif" alt="FineUI Logo" />
论坛:<a target="_blank" href="http://fineui.com/bbs/">http://fineui.com/bbs/</a> </a>
<br /> </td>
示例:<a target="_blank" href="http://fineui.com/demo/">http://fineui.com/demo/</a> <td>
<br /> <a class="title" href="./default.aspx">FineUI开源版在线示例</a>
文档:<a target="_blank" href="http://fineui.com/doc/">http://fineui.com/doc/</a> </td>
<br /> </tr>
下载:<a target="_blank" href="http://fineui.codeplex.com/">http://fineui.codeplex.com/</a> </table>
<br /> <div class="themeroller">
<br /> <a href="http://fineui.com/demo_pro" target="_blank" title="转到专业版示例">专业版示例
<br /> </a>
FineUI 不再内置 ExtJS 库,请手工添加 ExtJS 库:<a target="_blank" href="http://fineui.com/bbs/forum.php?mod=viewthread&tid=3218">http://fineui.com/bbs/forum.php?mod=viewthread&tid=3218</a> </div>
</div>
</x:ContentPanel> </Content>
</Items> </f:Region>
</x:Tab> <f:Region ID="leftPanel" RegionSplit="true" Width="220px" ShowHeader="true" ShowBorder="true" Title="全部示例"
</Tabs> EnableCollapse="true" Layout="Fit" Collapsed="false" RegionPosition="Left" runat="server">
</x:TabStrip> </f:Region>
</Items> <f:Region ID="mainRegion" ShowHeader="false" Layout="Fit" ShowBorder="true" Position="Center"
</x:Region> runat="server">
</Regions> <Items>
</x:RegionPanel> <f:TabStrip ID="mainTabStrip" EnableTabCloseMenu="true" ShowBorder="false" runat="server">
<x:Window ID="windowSourceCode" Icon="PageWhiteCode" Title="源代码" Hidden="true" EnableIFrame="true" <Tabs>
runat="server" IsModal="true" Width="950px" Height="550px" EnableClose="true" <f:Tab Title="首页" Layout="Fit" Icon="House" CssClass="maincontent" runat="server">
EnableMaximize="true" EnableResize="true"> <Toolbars>
</x:Window> <f:Toolbar runat="server">
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/common/menu.xml"></asp:XmlDataSource> <Items>
</form> <f:ToolbarFill ID="ToolbarFill2" runat="server">
<img src="images/logo/logo3.png" alt="FineUI 图标" id="logo" /> </f:ToolbarFill>
<script src="./js/default.js" type="text/javascript"></script> <f:Button ID="btnGotoOpenSourceSite" Icon="DiskDownload" Text="下载全部源码" OnClientClick="window.open('http://fineui.codeplex.com/', '_blank');"
</body> EnablePostBack="false" runat="server">
</html> </f:Button>
<f:ToolbarSeparator ID="ToolbarSeparator2" runat="server">
</f:ToolbarSeparator>
<f:Button ID="Button1" Icon="PageGo" Text="论坛交流" OnClientClick="window.open('http://fineui.com/bbs/', '_blank');"
EnablePostBack="false" runat="server">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Items>
<f:ContentPanel ShowBorder="false" BodyPadding="10px" ShowHeader="false" AutoScroll="true"
runat="server">
<h2>FineUI开源版</h2>
基于 ExtJS 的开源 ASP.NET 控件库
<br />
<h2>FineUI的使命</h2>
创建 No JavaScriptNo CSSNo UpdatePanelNo ViewStateNo WebServices 的网站应用程序
<br />
<h2>支持的浏览器</h2>
Chrome、Firefox、Safari、IE 8.0+
<br />
<h2>授权协议</h2>
Apache License v2.0ExtJS 库在 <a target="_blank" href="http://www.sencha.com/license">GPL v3</a> 协议下发布)
<br />
<h2>相关链接</h2>
首页:<a target="_blank" href="http://fineui.com/">http://fineui.com/</a>
<br />
论坛:<a target="_blank" href="http://fineui.com/bbs/">http://fineui.com/bbs/</a>
<br />
示例:<a target="_blank" href="http://fineui.com/demo/">http://fineui.com/demo/</a>
<br />
文档:<a target="_blank" href="http://fineui.com/doc/">http://fineui.com/doc/</a>
<br />
下载:<a target="_blank" href="http://fineui.codeplex.com/">http://fineui.codeplex.com/</a>
<br />
<br />
<br />
FineUI 不再内置 ExtJS 库,请手工添加 ExtJS 库:<a target="_blank" href="http://fineui.com/bbs/forum.php?mod=viewthread&tid=3218">http://fineui.com/bbs/forum.php?mod=viewthread&tid=3218</a>
<div style="position: fixed; bottom: 30px; right: 10px; text-align: center; border: solid 1px #ddd; padding: 10px; background-color: #efefef;">
<div style="margin-bottom: 5px;">
扫描二维码,关注 FineUI 微信公众号
</div>
<img src="http://fineui.com/images/weixin_fineui.jpg" style="width: 150px;" alert="关注 FineUI 微信公众号">
</div>
</f:ContentPanel>
</Items>
</f:Tab>
</Tabs>
</f:TabStrip>
</Items>
</f:Region>
<f:Region ID="bottomPanel" RegionPosition="Bottom" ShowBorder="false" ShowHeader="false" EnableCollapse="false" runat="server" Layout="Fit">
<Items>
<f:ContentPanel runat="server" ShowBorder="false" ShowHeader="false">
<table class="bottomtable">
<tr>
<td style="width: 300px;">&nbsp;版本:<a target="_blank" href="http://fineui.com/version">v<asp:Literal runat="server" ID="litVersion"></asp:Literal></a>
&nbsp;&nbsp; <a target="_blank" href="http://wp.qq.com/wpa/qunwpa?idkey=5a98eb42b742a1edaf22826648d5f61bc16ed08e0253976bc8d30f97508c09c7">QQ公开群</a></td>
<td style="text-align: center;">Copyright &copy; 2014 合肥三生石上软件有限公司</td>
<td style="width: 300px; text-align: right;">在线人数:<asp:Literal runat="server" ID="litOnlineUserCount"></asp:Literal>&nbsp;</td>
</tr>
</table>
</f:ContentPanel>
</Items>
</f:Region>
</Regions>
</f:RegionPanel>
<f:Window ID="windowSourceCode" Icon="PageWhiteCode" Title="源代码" Hidden="true" EnableIFrame="true"
runat="server" IsModal="true" Width="950px" Height="550px" EnableClose="true"
EnableMaximize="true" EnableResize="true">
</f:Window>
<f:Menu ID="menuSettings" runat="server">
<f:MenuButton ID="btnExpandAll" IconUrl="~/res/images/expand-all.gif" Text="展开菜单" EnablePostBack="false"
runat="server">
</f:MenuButton>
<f:MenuButton ID="btnCollapseAll" IconUrl="~/res/images/collapse-all.gif" Text="折叠菜单"
EnablePostBack="false" runat="server">
</f:MenuButton>
<f:MenuSeparator ID="MenuSeparator4" runat="server">
</f:MenuSeparator>
<f:MenuCheckBox runat="server" ID="cbxShowOnlyNew" Text="仅显示最新示例">
</f:MenuCheckBox>
<f:MenuSeparator ID="MenuSeparator1" runat="server">
</f:MenuSeparator>
<f:MenuButton EnablePostBack="false" Text="菜单样式" ID="MenuStyle" runat="server">
<Menu runat="server">
<f:MenuCheckBox Text="树菜单" ID="MenuStyleTree" Checked="true" GroupName="MenuStyle" runat="server">
</f:MenuCheckBox>
<f:MenuCheckBox Text="手风琴+树菜单" ID="MenuStyleAccordion" GroupName="MenuStyle" runat="server">
</f:MenuCheckBox>
</Menu>
</f:MenuButton>
<f:MenuButton EnablePostBack="false" Text="语言" ID="MenuLang" runat="server">
<Menu ID="Menu2" runat="server">
<f:MenuCheckBox Text="简体中文" ID="MenuLangZHCN" Checked="true" GroupName="MenuLang" runat="server">
</f:MenuCheckBox>
<f:MenuCheckBox Text="繁體中文" ID="MenuLangZHTW" GroupName="MenuLang" runat="server">
</f:MenuCheckBox>
<f:MenuCheckBox Text="English" ID="MenuLangEN" GroupName="MenuLang" runat="server">
</f:MenuCheckBox>
</Menu>
</f:MenuButton>
<f:MenuButton ID="MenuTheme" EnablePostBack="false" Text="主题" runat="server">
<Menu ID="Menu4" runat="server">
<f:MenuCheckBox Text="Neptune" ID="MenuThemeNeptune" Checked="true" GroupName="MenuTheme" runat="server">
</f:MenuCheckBox>
<f:MenuCheckBox Text="Blue" ID="MenuThemeBlue" GroupName="MenuTheme" runat="server">
</f:MenuCheckBox>
<f:MenuCheckBox Text="Gray" ID="MenuThemeGray" GroupName="MenuTheme" runat="server">
</f:MenuCheckBox>
<f:MenuCheckBox Text="Access" ID="MenuThemeAccess" GroupName="MenuTheme" runat="server">
</f:MenuCheckBox>
</Menu>
</f:MenuButton>
<f:MenuSeparator ID="MenuSeparator2" runat="server">
</f:MenuSeparator>
<f:MenuHyperLink ID="MenuHyperLink2" runat="server" Text="转到 v3.x 中文示例" NavigateUrl="http://fineui.com/demo_v3/" Target="_blank">
</f:MenuHyperLink>
<f:MenuHyperLink ID="MenuHyperLink1" runat="server" Text="转到 v3.x 英文示例" NavigateUrl="http://fineui.com/demo_en/" Target="_blank">
</f:MenuHyperLink>
<f:MenuSeparator ID="MenuSeparator3" runat="server">
</f:MenuSeparator>
<f:MenuHyperLink ID="MenuHyperLink3" runat="server" Text="转到专业版示例" NavigateUrl="http://fineui.com/demo_pro/" Target="_blank">
</f:MenuHyperLink>
</f:Menu>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" EnableCaching="false" DataFile="~/common/menu.xml"></asp:XmlDataSource>
</form>
<!--
<img src="./res/images/logo/logo3.png" alt="FineUI 图标" id="logo" />
-->
<script src="./res/js/jquery.min.js"></script>
<script>
var btnExpandAllClientID = '<%= btnExpandAll.ClientID %>';
var btnCollapseAllClientID = '<%= btnCollapseAll.ClientID %>';
var leftPanelClientID = '<%= leftPanel.ClientID %>';
var mainTabStripClientID = '<%= mainTabStrip.ClientID %>';
var windowSourceCodeClientID = '<%= windowSourceCode.ClientID %>';
var menuSettingsClientID = '<%= menuSettings.ClientID %>';
var cbxShowOnlyNewClientID = '<%= cbxShowOnlyNew.ClientID %>';
var MenuStyleClientID = '<%= MenuStyle.ClientID %>';
var MenuLangClientID = '<%= MenuLang.ClientID %>';
var MenuThemeClientID = '<%= MenuTheme.ClientID %>';
F.ready(function () {
var btnExpandAll = F(btnExpandAllClientID);
var btnCollapseAll = F(btnCollapseAllClientID);
var leftPanel = F(leftPanelClientID);
var mainTabStrip = F(mainTabStripClientID);
var windowSourceCode = F(windowSourceCodeClientID);
var menuSettings = F(menuSettingsClientID);
var cbxShowOnlyNew = F(cbxShowOnlyNewClientID);
var MenuStyle = F(MenuStyleClientID);
var MenuLang = F(MenuLangClientID);
var MenuTheme = F(MenuThemeClientID);
var mainMenu = leftPanel.items.getAt(0);
var menuType = 'accordion';
if (mainMenu.isXType('treepanel')) {
menuType = 'menu';
}
// 当前展开的手风琴面板
function getExpandedPanel() {
var panel = null;
mainMenu.items.each(function (item) {
if (!item.getCollapsed()) {
panel = item;
}
});
return panel;
}
// 点击展开菜单
btnExpandAll.on('click', function () {
if (menuType == 'menu') {
// 左侧为树控件
mainMenu.expandAll();
} else {
// 左侧为树控件+手风琴控件
var expandedPanel = getExpandedPanel();
if (expandedPanel) {
expandedPanel.items.getAt(0).expandAll();
}
}
});
// 点击折叠菜单
btnCollapseAll.on('click', function () {
if (menuType == 'menu') {
// 左侧为树控件
mainMenu.collapseAll();
} else {
// 左侧为树控件+手风琴控件
var expandedPanel = getExpandedPanel();
if (expandedPanel) {
expandedPanel.items.getAt(0).collapseAll();
}
}
});
// 点击仅显示最新示例
cbxShowOnlyNew.on('click', function () {
var checked = this.checked;
if (checked) {
F.cookie('ShowOnlyNew_v4', checked, {
expires: 100 // 单位:天
});
} else {
F.removeCookie('ShowOnlyNew_v4');
}
top.window.location.reload();
});
// 点击菜单样式
function MenuStyleItemCheckChange(cmp, checked) {
if (checked) {
var menuStyle = 'accordion';
if (cmp.id.indexOf('MenuStyleTree') >= 0) {
menuStyle = 'tree';
}
F.cookie('MenuStyle_v4', menuStyle, {
expires: 100 // 单位:天
});
top.window.location.reload();
}
}
MenuStyle.menu.items.each(function (item, index) {
item.on('checkchange', MenuStyleItemCheckChange);
});
// 切换语言
function MenuLangItemCheckChange(cmp, checked) {
if (checked) {
var lang = 'en';
if (cmp.id.indexOf('MenuLangZHCN') >= 0) {
lang = 'zh_CN';
} else if (cmp.id.indexOf('MenuLangZHTW') >= 0) {
lang = 'zh_TW';
}
F.cookie('Language_v4', lang, {
expires: 100 // 单位:天
});
top.window.location.reload();
}
}
MenuLang.menu.items.each(function (item, index) {
item.on('checkchange', MenuLangItemCheckChange);
});
// 切换主题
function MenuThemeItemCheckChange(cmp, checked) {
if (checked) {
var lang = 'neptune';
if (cmp.id.indexOf('MenuThemeBlue') >= 0) {
lang = 'blue';
} else if (cmp.id.indexOf('MenuThemeGray') >= 0) {
lang = 'gray';
} else if (cmp.id.indexOf('MenuThemeAccess') >= 0) {
lang = 'access';
}
F.cookie('Theme_v4', lang, {
expires: 100 // 单位:天
});
top.window.location.reload();
}
}
MenuTheme.menu.items.each(function (item, index) {
item.on('checkchange', MenuThemeItemCheckChange);
});
function createToolbar(tabConfig) {
// 由工具栏上按钮获得当前标签页中的iframe节点
function getCurrentIFrameNode(btn) {
return $('#' + btn.id).parents('.f-tab').find('iframe');
}
var sourcecodeButton = new Ext.Button({
text: '源代码',
type: 'button',
icon: './res/icon/page_white_code.png',
listeners: {
click: function () {
var iframeNode = getCurrentIFrameNode(this);
var iframeWnd = iframeNode[0].contentWindow
var files = [iframeNode.attr('src')];
var sourcefilesNode = $(iframeWnd.document).find('head meta[name=sourcefiles]');
if (sourcefilesNode.length) {
$.merge(files, sourcefilesNode.attr('content').split(';'));
}
windowSourceCode.f_show('./common/source.aspx?files=' + encodeURIComponent(files.join(';')));
}
}
});
var openNewWindowButton = new Ext.Button({
text: '新标签页中打开',
type: 'button',
icon: './res/icon/tab_go.png',
listeners: {
click: function () {
var iframeNode = getCurrentIFrameNode(this);
window.open(iframeNode.attr('src'), '_blank');
}
}
});
var refreshButton = new Ext.Button({
text: '刷新',
type: 'button',
icon: './res/icon/reload.png',
listeners: {
click: function () {
var iframeNode = getCurrentIFrameNode(this);
iframeNode[0].contentWindow.location.reload();
}
}
});
var toolbar = new Ext.Toolbar({
items: ['->', sourcecodeButton, '-', refreshButton, '-', openNewWindowButton]
});
tabConfig['tbar'] = toolbar;
}
// 初始化主框架中的树(或者Accordion+Tree)和选项卡互动,以及地址栏的更新
// treeMenu 主框架中的树控件实例,或者内嵌树控件的手风琴控件实例
// mainTabStrip 选项卡实例
// createToolbar 创建选项卡前的回调函数接受tabConfig参数
// updateLocationHash: 切换Tab时是否更新地址栏Hash值
// refreshWhenExist 添加选项卡时如果选项卡已经存在是否刷新内部IFrame
// refreshWhenTabChange: 切换选项卡时是否刷新内部IFrame
F.util.initTreeTabStrip(mainMenu, mainTabStrip, createToolbar, true, false, false);
// 添加示例标签页
window.addExampleTab = function (id, url, text, icon, refreshWhenExist) {
// 动态添加一个标签页
// mainTabStrip 选项卡实例
// id 选项卡ID
// url: 选项卡IFrame地址
// text 选项卡标题
// icon 选项卡图标
// addTabCallback 创建选项卡前的回调函数接受tabConfig参数
// refreshWhenExist 添加选项卡时如果选项卡已经存在是否刷新内部IFrame
F.util.addMainTab(mainTabStrip, id, url, text, icon, null, refreshWhenExist);
};
// 移除选中标签页
window.removeActiveTab = function () {
var activeTab = mainTabStrip.getActiveTab();
mainTabStrip.removeTab(activeTab.id);
};
// 添加工具图标,并在点击时显示上下文菜单
leftPanel.addTool({
type: 'gear',
//tooltip: '系统设置',
handler: function (event) {
menuSettings.showBy(this);
}
});
});
</script>
</body>
</html>

View File

@ -1,413 +1,391 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Xml; using System.Xml;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace FineUI.Examples namespace FineUI.Examples
{ {
public partial class _default : PageBase public partial class _default : PageBase
{ {
#region Page_Init #region Page_Init
protected void Page_Init(object sender, EventArgs e) private string _menuType = "menu";
{ private bool _showOnlyNew = false;
string menuType = "menu"; private int _examplesCount = 0;
HttpCookie menuCookie = Request.Cookies["MenuStyle"];
if (menuCookie != null) protected void Page_Init(object sender, EventArgs e)
{ {
menuType = menuCookie.Value; HttpCookie menuCookie = Request.Cookies["MenuStyle_v4"];
} if (menuCookie != null)
{
// 注册客户端脚本服务器端控件ID和客户端ID的映射关系 _menuType = menuCookie.Value;
JObject ids = GetClientIDS(btnExpandAll, btnCollapseAll, windowSourceCode, mainTabStrip); }
if (menuType == "accordion") // 从Cookie中读取是否仅显示最新示例
{ HttpCookie menuShowOnlyNew = Request.Cookies["ShowOnlyNew_v4"];
Accordion accordionMenu = InitAccordionMenu(); if (menuShowOnlyNew != null)
ids.Add("mainMenu", accordionMenu.ClientID); {
ids.Add("menuType", "accordion"); _showOnlyNew = Convert.ToBoolean(menuShowOnlyNew.Value);
} }
else
{
Tree treeMenu = InitTreeMenu(); if (_menuType == "accordion")
ids.Add("mainMenu", treeMenu.ClientID); {
ids.Add("menuType", "menu"); InitAccordionMenu();
} }
else
ids.Add("theme", PageManager.Instance.Theme.ToString()); {
InitTreeMenu();
// 只在页面第一次加载时注册客户端用到的脚本 }
if (!Page.IsPostBack)
{
string idsScriptStr = String.Format("window.IDS={0};", ids.ToString(Newtonsoft.Json.Formatting.None)); if (_showOnlyNew)
PageContext.RegisterStartupScript(idsScriptStr); {
} leftPanel.Title = String.Format("最新示例({0}", _examplesCount);
} }
else
private Accordion InitAccordionMenu() {
{ leftPanel.Title = String.Format("全部示例({0}", _examplesCount);
Accordion accordionMenu = new Accordion(); }
accordionMenu.ID = "accordionMenu";
accordionMenu.EnableFill = true; }
accordionMenu.ShowBorder = false;
accordionMenu.ShowHeader = false; private Accordion InitAccordionMenu()
Region2.Items.Add(accordionMenu); {
Accordion accordionMenu = new Accordion();
accordionMenu.ID = "accordionMenu";
XmlDocument xmlDoc = XmlDataSource1.GetXmlDocument(); accordionMenu.ShowBorder = false;
XmlNodeList xmlNodes = xmlDoc.SelectNodes("/Tree/TreeNode"); accordionMenu.ShowHeader = false;
foreach (XmlNode xmlNode in xmlNodes) leftPanel.Items.Add(accordionMenu);
{
if (xmlNode.HasChildNodes)
{ XmlDocument xmlDoc = XmlDataSource1.GetXmlDocument();
AccordionPane accordionPane = new AccordionPane(); XmlNodeList xmlNodes = xmlDoc.SelectNodes("/Tree/TreeNode");
accordionPane.Title = xmlNode.Attributes["Text"].Value; foreach (XmlNode xmlNode in xmlNodes)
accordionPane.Layout = Layout.Fit; {
accordionPane.ShowBorder = false; if (xmlNode.HasChildNodes)
accordionPane.BodyPadding = "2px 0 0 0"; {
accordionMenu.Items.Add(accordionPane); AccordionPane accordionPane = new AccordionPane();
accordionPane.Title = xmlNode.Attributes["Text"].Value;
Tree innerTree = new Tree(); accordionPane.Layout = Layout.Fit;
innerTree.EnableArrows = true; accordionPane.ShowBorder = false;
innerTree.ShowBorder = false; accordionPane.BodyPadding = "2px 0 0 0";
innerTree.ShowHeader = false; accordionMenu.Items.Add(accordionPane);
innerTree.EnableIcons = false;
innerTree.AutoScroll = true; Tree innerTree = new Tree();
accordionPane.Items.Add(innerTree); innerTree.ShowBorder = false;
innerTree.ShowHeader = false;
XmlDocument innerXmlDoc = new XmlDocument(); innerTree.EnableIcons = true;
innerXmlDoc.LoadXml(String.Format("<?xml version=\"1.0\" encoding=\"utf-8\" ?><Tree>{0}</Tree>", xmlNode.InnerXml)); innerTree.AutoScroll = true;
innerTree.EnableSingleClickExpand = true;
// 绑定AccordionPane内部的树控件 accordionPane.Items.Add(innerTree);
innerTree.DataSource = innerXmlDoc;
innerTree.DataBind(); XmlDocument doc = new XmlDocument();
doc.LoadXml(String.Format("<?xml version=\"1.0\" encoding=\"utf-8\" ?><Tree>{0}</Tree>", xmlNode.InnerXml));
// 重新设置每个节点的图标 ResolveXmlDocument(doc);
ResolveTreeNode(innerTree.Nodes);
} // 绑定AccordionPane内部的树控件
} innerTree.NodeDataBound += treeMenu_NodeDataBound;
innerTree.PreNodeDataBound += treeMenu_PreNodeDataBound;
return accordionMenu; innerTree.DataSource = doc;
} innerTree.DataBind();
}
private Tree InitTreeMenu() }
{
Tree treeMenu = new Tree(); return accordionMenu;
treeMenu.ID = "treeMenu"; }
treeMenu.EnableArrows = true;
treeMenu.ShowBorder = false; private Tree InitTreeMenu()
treeMenu.ShowHeader = false; {
treeMenu.EnableIcons = false; Tree treeMenu = new Tree();
treeMenu.AutoScroll = true; treeMenu.ID = "treeMenu";
Region2.Items.Add(treeMenu); treeMenu.ShowBorder = false;
treeMenu.ShowHeader = false;
// 绑定 XML 数据源到树控件 treeMenu.EnableIcons = true;
treeMenu.DataSource = XmlDataSource1; treeMenu.AutoScroll = true;
treeMenu.DataBind(); treeMenu.EnableSingleClickExpand = true;
leftPanel.Items.Add(treeMenu);
// 重新设置每个节点的图标
ResolveTreeNode(treeMenu.Nodes); XmlDocument doc = XmlDataSource1.GetXmlDocument();
ResolveXmlDocument(doc);
return treeMenu;
} // 绑定 XML 数据源到树控件
treeMenu.NodeDataBound += treeMenu_NodeDataBound;
treeMenu.PreNodeDataBound += treeMenu_PreNodeDataBound;
private JObject GetClientIDS(params ControlBase[] ctrls) treeMenu.DataSource = doc;
{ treeMenu.DataBind();
JObject jo = new JObject();
foreach (ControlBase ctrl in ctrls) return treeMenu;
{ }
jo.Add(ctrl.ID, ctrl.ClientID);
} #region ResolveXmlDocument
return jo; private void ResolveXmlDocument(XmlDocument doc)
} {
ResolveXmlDocument(doc, doc.DocumentElement.ChildNodes);
#endregion }
#region Page_Load private int ResolveXmlDocument(XmlDocument doc, XmlNodeList nodes)
{
protected void Page_Load(object sender, EventArgs e) // nodes 中渲染到页面上的节点个数
{ int nodeVisibleCount = 0;
if (!IsPostBack)
{ foreach (XmlNode node in nodes)
InitMenuStyleButton(); {
InitLangMenuButton(); // Only process Xml elements (ignore comments, etc)
InitThemeMenuButton(); if (node.NodeType == XmlNodeType.Element)
{
//// 显示源代码按钮 XmlAttribute removedAttr;
//btnSourceCode.OnClientClick = windowSourceCode.GetShowReference("./common/source.aspx?files=~/default.aspx;~/common/menu.xml;~/Web.config;~/Code/PageBase.cs;~/js/default.js;~/css/default.css");
// 是否叶子节点
} bool isLeaf = node.ChildNodes.Count == 0;
}
// 所有过滤条件均是对叶子节点而言,而是否显示目录,要看是否存在叶子节点
private void InitMenuStyleButton() if (isLeaf)
{ {
string menuStyleID = "MenuStyleTree"; // 如果仅显示最新示例
if (_showOnlyNew)
HttpCookie menuStyleCookie = Request.Cookies["MenuStyle"]; {
if (menuStyleCookie != null) XmlAttribute isNewAttr = node.Attributes["IsNew"];
{ if (isNewAttr == null)
switch (menuStyleCookie.Value) {
{ removedAttr = doc.CreateAttribute("Removed");
case "menu": removedAttr.Value = "true";
menuStyleID = "MenuStyleTree";
break; node.Attributes.Append(removedAttr);
case "accordion":
menuStyleID = "MenuStyleAccordion"; }
break; }
} }
}
// 存在子节点
if (!isLeaf)
SetSelectedMenuID(MenuStyle, menuStyleID); {
} // 递归
int childVisibleCount = ResolveXmlDocument(doc, node.ChildNodes);
private void InitLangMenuButton() if (childVisibleCount == 0)
{ {
string langMenuID = "MenuLangZHCN"; removedAttr = doc.CreateAttribute("Removed");
removedAttr.Value = "true";
string langValue = PageManager1.Language.ToString().ToLower();
switch (langValue) node.Attributes.Append(removedAttr);
{ }
case "zh_cn": }
langMenuID = "MenuLangZHCN";
break;
case "zh_tw": removedAttr = node.Attributes["Removed"];
langMenuID = "MenuLangZHTW"; if (removedAttr == null)
break; {
case "en": nodeVisibleCount++;
langMenuID = "MenuLangEN"; }
break; }
} }
return nodeVisibleCount;
SetSelectedMenuID(MenuLang, langMenuID); }
}
#endregion
private void InitThemeMenuButton()
{ /// <summary>
string themeMenuID = "MenuThemeBlue"; /// 树节点的绑定后事件
/// </summary>
string themeValue = PageManager1.Theme.ToString().ToLower(); /// <param name="sender"></param>
switch (themeValue) /// <param name="e"></param>
{ private void treeMenu_NodeDataBound(object sender, TreeNodeEventArgs e)
case "blue": {
themeMenuID = "MenuThemeBlue"; string isNewHtml = GetIsNewHtml(e.XmlNode);
break; if (!String.IsNullOrEmpty(isNewHtml))
case "gray": {
themeMenuID = "MenuThemeGray"; e.Node.Text += isNewHtml;
break; }
case "access":
themeMenuID = "MenuThemeAccess"; // 如果仅显示最新示例 并且 当前节点不是子节点,则展开当前节点
break; if (_showOnlyNew && !e.Node.Leaf)
case "neptune": {
themeMenuID = "MenuThemeNeptune"; e.Node.Expanded = true;
break; }
}
}
SetSelectedMenuID(MenuTheme, themeMenuID);
}
/// <summary>
#endregion /// 树节点的预绑定事件
/// </summary>
#region Event /// <param name="sender"></param>
/// <param name="e"></param>
protected void MenuLang_CheckedChanged(object sender, CheckedEventArgs e) private void treeMenu_PreNodeDataBound(object sender, TreePreNodeEventArgs e)
{ {
// 单选框菜单按钮的CheckedChanged事件会触发两次一次是取消选中的菜单项另一次是选中的菜单项 /*
// 不处理取消选中菜单项的事件,从而防止此函数重复执行两次 // 如果仅显示最新示例
if (!e.Checked) if (showOnlyNew)
{ {
return; string isNewHtml = GetIsNewHtml(e.XmlNode);
} if (String.IsNullOrEmpty(isNewHtml))
{
string langValue = FineUI.Language.ZH_CN.ToString(); e.Cancelled = true;
string langID = GetSelectedMenuID(MenuLang); }
}
switch (langID)
{ // 更新示例总数
case "MenuLangZHCN": if (e.XmlNode.ChildNodes.Count == 0)
langValue = FineUI.Language.ZH_CN.ToString(); {
break; examplesCount++;
case "MenuLangZHTW": }
langValue = FineUI.Language.ZH_TW.ToString(); */
break;
case "MenuLangEN": // 是否叶子节点
langValue = FineUI.Language.EN.ToString(); bool isLeaf = e.XmlNode.ChildNodes.Count == 0;
break;
} XmlAttribute removedAttr = e.XmlNode.Attributes["Removed"];
if (removedAttr != null)
SaveToCookieAndRefresh("Language", langValue); {
} e.Cancelled = true;
}
protected void MenuTheme_CheckedChanged(object sender, CheckedEventArgs e)
{ if (isLeaf && !e.Cancelled)
// 单选框菜单按钮的CheckedChanged事件会触发两次一次是取消选中的菜单项另一次是选中的菜单项 {
// 不处理取消选中菜单项的事件,从而防止此函数重复执行两次 _examplesCount++;
if (!e.Checked) }
{ }
return;
}
private string GetIsNewHtml(XmlNode node)
string themeValue = FineUI.Theme.Neptune.ToString(); {
string themeID = GetSelectedMenuID(MenuTheme); string result = String.Empty;
switch (themeID) XmlAttribute isNewAttr = node.Attributes["IsNew"];
{ if (isNewAttr != null)
case "MenuThemeNeptune": {
themeValue = FineUI.Theme.Neptune.ToString(); if (Convert.ToBoolean(isNewAttr.Value))
break; {
case "MenuThemeBlue": result = "&nbsp;<span class=\"isnew\">New!</span>";
themeValue = FineUI.Theme.Blue.ToString(); }
break; }
case "MenuThemeGray":
themeValue = FineUI.Theme.Gray.ToString(); return result;
break; }
case "MenuThemeAccess":
themeValue = FineUI.Theme.Access.ToString();
break; #endregion
}
#region Page_Load
SaveToCookieAndRefresh("Theme", themeValue);
} protected void Page_Load(object sender, EventArgs e)
{
protected void MenuStyle_CheckedChanged(object sender, CheckedEventArgs e) if (!IsPostBack)
{ {
// 单选框菜单按钮的CheckedChanged事件会触发两次一次是取消选中的菜单项另一次是选中的菜单项 InitMenuStyleButton();
// 不处理取消选中菜单项的事件,从而防止此函数重复执行两次 InitLangMenuButton();
if (!e.Checked) InitThemeMenuButton();
{ InitMenuShowOnlyNew();
return;
} litVersion.Text = FineUI.GlobalConfig.ProductVersion;
litOnlineUserCount.Text = Application["OnlineUserCount"].ToString();
string menuValue = "menu"; }
string menuStyleID = GetSelectedMenuID(MenuStyle); }
switch (menuStyleID) private void InitMenuShowOnlyNew()
{ {
case "MenuStyleTree": cbxShowOnlyNew.Checked = _showOnlyNew;
menuValue = "tree";
break; }
case "MenuStyleAccordion":
menuValue = "accordion";
break; private void InitMenuStyleButton()
{
} string menuStyleID = "MenuStyleTree";
SaveToCookieAndRefresh("MenuStyle", menuValue);
} HttpCookie menuStyleCookie = Request.Cookies["MenuStyle_v4"];
if (menuStyleCookie != null)
private string GetSelectedMenuID(MenuButton menuButton) {
{ switch (menuStyleCookie.Value)
foreach (MenuItem item in menuButton.Menu.Items) {
{ case "menu":
if (item is MenuCheckBox && (item as MenuCheckBox).Checked) menuStyleID = "MenuStyleTree";
{ break;
return item.ID; case "accordion":
} menuStyleID = "MenuStyleAccordion";
} break;
return null; }
} }
private void SetSelectedMenuID(MenuButton menuButton, string selectedMenuID)
{ SetSelectedMenuID(MenuStyle, menuStyleID);
foreach (MenuItem item in menuButton.Menu.Items) }
{
MenuCheckBox menu = (item as MenuCheckBox);
if (menu != null && menu.ID == selectedMenuID) private void InitLangMenuButton()
{ {
menu.Checked = true; string langMenuID = "MenuLangZHCN";
}
else string langValue = PageManager1.Language.ToString().ToLower();
{ switch (langValue)
menu.Checked = false; {
} case "zh_cn":
} langMenuID = "MenuLangZHCN";
} break;
case "zh_tw":
langMenuID = "MenuLangZHTW";
private void SaveToCookieAndRefresh(string cookieName, string cookieValue) break;
{ case "en":
HttpCookie cookie = new HttpCookie(cookieName, cookieValue); langMenuID = "MenuLangEN";
cookie.Expires = DateTime.Now.AddYears(1); break;
Response.Cookies.Add(cookie); }
PageContext.Refresh();
} SetSelectedMenuID(MenuLang, langMenuID);
}
private void InitThemeMenuButton()
#endregion {
string themeMenuID = "MenuThemeBlue";
#region Tree
string themeValue = PageManager1.Theme.ToString().ToLower();
/// <summary> switch (themeValue)
/// 重新设置每个节点的图标 {
/// </summary> case "blue":
/// <param name="nodes"></param> themeMenuID = "MenuThemeBlue";
private void ResolveTreeNode(TreeNodeCollection nodes) break;
{ case "gray":
foreach (TreeNode node in nodes) themeMenuID = "MenuThemeGray";
{ break;
if (node.Nodes.Count == 0) case "access":
{ themeMenuID = "MenuThemeAccess";
if (!String.IsNullOrEmpty(node.NavigateUrl)) break;
{ case "neptune":
node.IconUrl = GetIconForTreeNode(node.NavigateUrl); themeMenuID = "MenuThemeNeptune";
} break;
} }
else
{ SetSelectedMenuID(MenuTheme, themeMenuID);
ResolveTreeNode(node.Nodes); }
}
}
} private void SetSelectedMenuID(MenuButton menuButton, string selectedMenuID)
{
/// <summary> foreach (MenuItem item in menuButton.Menu.Items)
/// 根据链接地址返回相应的图标 {
/// </summary> MenuCheckBox menu = (item as MenuCheckBox);
/// <param name="url"></param> if (menu != null && menu.ID == selectedMenuID)
/// <returns></returns> {
private string GetIconForTreeNode(string url) menu.Checked = true;
{ }
url = url.ToLower(); else
int paramsIndex = url.IndexOf("?"); {
if (paramsIndex >= 0) menu.Checked = false;
{ }
url = url.Substring(0, paramsIndex); }
} }
int lastDotIndex = url.LastIndexOf('.');
if (lastDotIndex >= 0) #endregion
{
url = url.Substring(lastDotIndex + 1);
} }
}
string fileType = url;
string iconUrl = "~/images/filetype/vs_unknow.png";
if (fileType == "txt")
{
iconUrl = "~/images/filetype/vs_txt.png";
}
else if (fileType == "aspx")
{
iconUrl = "~/images/filetype/vs_aspx.png";
}
else if (fileType == "htm" || fileType == "html")
{
iconUrl = "~/images/filetype/vs_htm.png";
}
return iconUrl;
}
#endregion
}
}

View File

@ -1,303 +1,366 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples { namespace FineUI.Examples {
public partial class _default { public partial class _default {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// RegionPanel1 控件。 /// RegionPanel1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.RegionPanel RegionPanel1; protected global::FineUI.RegionPanel RegionPanel1;
/// <summary> /// <summary>
/// Region1 控件。 /// Region1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Region Region1; protected global::FineUI.Region Region1;
/// <summary> /// <summary>
/// ContentPanel1 控件。 /// leftPanel 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.ContentPanel ContentPanel1; protected global::FineUI.Region leftPanel;
/// <summary> /// <summary>
/// Button2 控件。 /// mainRegion 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button2; protected global::FineUI.Region mainRegion;
/// <summary> /// <summary>
/// btnExpandAll 控件。 /// mainTabStrip 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuButton btnExpandAll; protected global::FineUI.TabStrip mainTabStrip;
/// <summary> /// <summary>
/// btnCollapseAll 控件。 /// ToolbarFill2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuButton btnCollapseAll; protected global::FineUI.ToolbarFill ToolbarFill2;
/// <summary> /// <summary>
/// MenuSeparator1 控件。 /// btnGotoOpenSourceSite 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuSeparator MenuSeparator1; protected global::FineUI.Button btnGotoOpenSourceSite;
/// <summary> /// <summary>
/// MenuStyle 控件。 /// ToolbarSeparator2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuButton MenuStyle; protected global::FineUI.ToolbarSeparator ToolbarSeparator2;
/// <summary> /// <summary>
/// MenuStyleTree 控件。 /// Button1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuCheckBox MenuStyleTree; protected global::FineUI.Button Button1;
/// <summary> /// <summary>
/// MenuStyleAccordion 控件。 /// bottomPanel 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuCheckBox MenuStyleAccordion; protected global::FineUI.Region bottomPanel;
/// <summary> /// <summary>
/// MenuLang 控件。 /// litVersion 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuButton MenuLang; protected global::System.Web.UI.WebControls.Literal litVersion;
/// <summary> /// <summary>
/// MenuLangZHCN 控件。 /// litOnlineUserCount 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuCheckBox MenuLangZHCN; protected global::System.Web.UI.WebControls.Literal litOnlineUserCount;
/// <summary> /// <summary>
/// MenuLangZHTW 控件。 /// windowSourceCode 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuCheckBox MenuLangZHTW; protected global::FineUI.Window windowSourceCode;
/// <summary> /// <summary>
/// MenuLangEN 控件。 /// menuSettings 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuCheckBox MenuLangEN; protected global::FineUI.Menu menuSettings;
/// <summary> /// <summary>
/// MenuTheme 控件。 /// btnExpandAll 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuButton MenuTheme; protected global::FineUI.MenuButton btnExpandAll;
/// <summary> /// <summary>
/// MenuThemeNeptune 控件。 /// btnCollapseAll 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuCheckBox MenuThemeNeptune; protected global::FineUI.MenuButton btnCollapseAll;
/// <summary> /// <summary>
/// MenuThemeBlue 控件。 /// MenuSeparator4 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuCheckBox MenuThemeBlue; protected global::FineUI.MenuSeparator MenuSeparator4;
/// <summary> /// <summary>
/// MenuThemeGray 控件。 /// cbxShowOnlyNew 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuCheckBox MenuThemeGray; protected global::FineUI.MenuCheckBox cbxShowOnlyNew;
/// <summary> /// <summary>
/// MenuThemeAccess 控件。 /// MenuSeparator1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuCheckBox MenuThemeAccess; protected global::FineUI.MenuSeparator MenuSeparator1;
/// <summary> /// <summary>
/// MenuSeparator2 控件。 /// MenuStyle 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.MenuSeparator MenuSeparator2; protected global::FineUI.MenuButton MenuStyle;
/// <summary> /// <summary>
/// Region2 控件。 /// MenuStyleTree 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Region Region2; protected global::FineUI.MenuCheckBox MenuStyleTree;
/// <summary> /// <summary>
/// mainRegion 控件。 /// MenuStyleAccordion 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Region mainRegion; protected global::FineUI.MenuCheckBox MenuStyleAccordion;
/// <summary> /// <summary>
/// mainTabStrip 控件。 /// MenuLang 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.TabStrip mainTabStrip; protected global::FineUI.MenuButton MenuLang;
/// <summary> /// <summary>
/// ToolbarFill2 控件。 /// MenuLangZHCN 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.ToolbarFill ToolbarFill2; protected global::FineUI.MenuCheckBox MenuLangZHCN;
/// <summary> /// <summary>
/// btnGotoOpenSourceSite 控件。 /// MenuLangZHTW 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnGotoOpenSourceSite; protected global::FineUI.MenuCheckBox MenuLangZHTW;
/// <summary> /// <summary>
/// ToolbarSeparator1 控件。 /// MenuLangEN 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.ToolbarSeparator ToolbarSeparator1; protected global::FineUI.MenuCheckBox MenuLangEN;
/// <summary> /// <summary>
/// ToolbarSeparator2 控件。 /// MenuTheme 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.ToolbarSeparator ToolbarSeparator2; protected global::FineUI.MenuButton MenuTheme;
/// <summary> /// <summary>
/// Button1 控件。 /// MenuThemeNeptune 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button Button1; protected global::FineUI.MenuCheckBox MenuThemeNeptune;
/// <summary> /// <summary>
/// windowSourceCode 控件。 /// MenuThemeBlue 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Window windowSourceCode; protected global::FineUI.MenuCheckBox MenuThemeBlue;
/// <summary> /// <summary>
/// XmlDataSource1 控件。 /// MenuThemeGray 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.XmlDataSource XmlDataSource1; protected global::FineUI.MenuCheckBox MenuThemeGray;
}
} /// <summary>
/// MenuThemeAccess 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuCheckBox MenuThemeAccess;
/// <summary>
/// MenuSeparator2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuSeparator MenuSeparator2;
/// <summary>
/// MenuHyperLink2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink2;
/// <summary>
/// MenuHyperLink1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink1;
/// <summary>
/// MenuSeparator3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuSeparator MenuSeparator3;
/// <summary>
/// MenuHyperLink3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink3;
/// <summary>
/// XmlDataSource1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.XmlDataSource XmlDataSource1;
}
}

View File

@ -1,31 +1,32 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dropdownlist_compositelist.aspx.cs" <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dropdownlist_compositelist.aspx.cs"
Inherits="FineUI.Examples.dropdownlist.dropdownlist_compositelist" %> Inherits="FineUI.Examples.dropdownlist.dropdownlist_compositelist" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../../css/main.css" rel="stylesheet" type="text/css" /> <link href="../../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableFrame="true" EnableCollapse="true" <f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True"> ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items> <Items>
<x:DropDownList runat="server" ID="DropDownList1"> <f:DropDownList runat="server" ID="DropDownList1">
</x:DropDownList> </f:DropDownList>
<x:Button ID="btnSelectItem6" Text="选中“选项 6”" runat="server" OnClick="btnSelectItem6_Click" <f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="inline"> CssClass="marginr">
</x:Button> </f:Button>
<x:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click"> <f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</x:Button> </f:Button>
<x:Label runat="server" ID="labResult">
</x:Label> </Items>
</Items> </f:SimpleForm>
</x:SimpleForm> <br />
<br /> <f:Label runat="server" ID="labResult">
<br /> </f:Label>
</form> <br />
</body> </form>
</html> </body>
</html>

View File

@ -1,89 +1,93 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Data; using System.Data;
namespace FineUI.Examples.dropdownlist namespace FineUI.Examples.dropdownlist
{ {
public partial class dropdownlist_compositelist : PageBase public partial class dropdownlist_compositelist : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
BindEnumrableToDropDownList(); BindEnumrableToDropDownList();
} }
} }
#region CustomClass #region CustomClass
public class CustomClass public class CustomClass
{ {
private string _id; private string _id;
public string ID public string ID
{ {
get { return _id; } get { return _id; }
set { _id = value; } set { _id = value; }
} }
private string _name; private string _name;
public string Name public string Name
{ {
get { return _name; } get { return _name; }
set { _name = value; } set { _name = value; }
} }
public CustomClass(string id, string name) public CustomClass(string id, string name)
{ {
_id = id; _id = id;
_name = name; _name = name;
} }
} }
#endregion #endregion
#region BindEnumrableToDropDownList #region BindEnumrableToDropDownList
private void BindEnumrableToDropDownList() private void BindEnumrableToDropDownList()
{ {
List<CustomClass> myList = new List<CustomClass>(); List<CustomClass> myList = new List<CustomClass>();
myList.Add(new CustomClass("1", "选项 1")); myList.Add(new CustomClass("1", "可选项1"));
myList.Add(new CustomClass("2", "选项 2")); myList.Add(new CustomClass("2", "可选项2"));
myList.Add(new CustomClass("3", "选项 3")); myList.Add(new CustomClass("3", "可选项3"));
myList.Add(new CustomClass("4", "选项 4")); myList.Add(new CustomClass("4", "可选项4"));
myList.Add(new CustomClass("5", "选项 5")); myList.Add(new CustomClass("5", "可选项5"));
myList.Add(new CustomClass("6", "选项 6")); myList.Add(new CustomClass("6", "可选项6"));
myList.Add(new CustomClass("7", "选项 7")); myList.Add(new CustomClass("7", "可选择项7"));
myList.Add(new CustomClass("8", "选项 8")); myList.Add(new CustomClass("8", "可选择项8"));
myList.Add(new CustomClass("9", "选项 9")); myList.Add(new CustomClass("9", "可选择项9"));
DropDownList1.DataTextField = "Name"; DropDownList1.DataTextField = "Name";
DropDownList1.DataValueField = "ID"; DropDownList1.DataValueField = "ID";
DropDownList1.DataSource = myList; DropDownList1.DataSource = myList;
DropDownList1.DataBind(); DropDownList1.DataBind();
} }
#endregion #endregion
#region Events #region Events
protected void btnSelectItem6_Click(object sender, EventArgs e) protected void btnSelectItem6_Click(object sender, EventArgs e)
{ {
DropDownList1.SelectedValue = "6"; DropDownList1.SelectedValue = "6";
} }
protected void btnGetSelection_Click(object sender, EventArgs e) protected void btnGetSelection_Click(object sender, EventArgs e)
{ {
if (DropDownList1.SelectedItem != null) if (DropDownList1.SelectedItem != null)
{ {
labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue); labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue);
} }
} else
{
#endregion labResult.Text = "无选中项";
}
} }
}
#endregion
}
}

View File

@ -1,78 +1,78 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.dropdownlist { namespace FineUI.Examples.dropdownlist {
public partial class dropdownlist_compositelist { public partial class dropdownlist_compositelist {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// SimpleForm1 控件。 /// SimpleForm1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.SimpleForm SimpleForm1; protected global::FineUI.SimpleForm SimpleForm1;
/// <summary> /// <summary>
/// DropDownList1 控件。 /// DropDownList1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.DropDownList DropDownList1; protected global::FineUI.DropDownList DropDownList1;
/// <summary> /// <summary>
/// btnSelectItem6 控件。 /// btnSelectItem6 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnSelectItem6; protected global::FineUI.Button btnSelectItem6;
/// <summary> /// <summary>
/// btnGetSelection 控件。 /// btnGetSelection 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnGetSelection; protected global::FineUI.Button btnGetSelection;
/// <summary> /// <summary>
/// labResult 控件。 /// labResult 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Label labResult; protected global::FineUI.Label labResult;
} }
} }

View File

@ -1,29 +1,30 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dropdownlist_datatable.aspx.cs" <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dropdownlist_datatable.aspx.cs"
Inherits="FineUI.Examples.dropdownlist.dropdownlist_datatable" %> Inherits="FineUI.Examples.dropdownlist.dropdownlist_datatable" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../../css/main.css" rel="stylesheet" type="text/css" /> <link href="../../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableFrame="true" EnableCollapse="true" <f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True"> ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items> <Items>
<x:DropDownList runat="server" ID="DropDownList1" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> <f:DropDownList runat="server" ID="DropDownList1" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</x:DropDownList> </f:DropDownList>
<x:Button ID="btnSelectItem6" Text="选中“选项 6”" runat="server" OnClick="btnSelectItem6_Click"> <f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click">
</x:Button> </f:Button>
<x:Label runat="server" ID="labResult">
</x:Label> </Items>
</Items> </f:SimpleForm>
</x:SimpleForm> <br />
<br /> <f:Label runat="server" ID="labResult">
<br /> </f:Label>
注:这个下拉列表在选择项改变时自动回发。 <br />
</form> 注:这个下拉列表在选择项改变时自动回发。
</body> </form>
</html> </body>
</html>

View File

@ -1,106 +1,110 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Data; using System.Data;
namespace FineUI.Examples.dropdownlist namespace FineUI.Examples.dropdownlist
{ {
public partial class dropdownlist_datatable : PageBase public partial class dropdownlist_datatable : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
BindDataTableToDropDownList(); BindDataTableToDropDownList();
} }
} }
#region BindDataTableToDropDownList #region BindDataTableToDropDownList
private void BindDataTableToDropDownList() private void BindDataTableToDropDownList()
{ {
DataTable table = new DataTable(); DataTable table = new DataTable();
DataColumn column1 = new DataColumn("MyText", typeof(String)); DataColumn column1 = new DataColumn("MyText", typeof(String));
DataColumn column2 = new DataColumn("MyValue", typeof(String)); DataColumn column2 = new DataColumn("MyValue", typeof(String));
table.Columns.Add(column1); table.Columns.Add(column1);
table.Columns.Add(column2); table.Columns.Add(column2);
DataRow row = table.NewRow(); DataRow row = table.NewRow();
row[0] = "选项 1"; row[0] = "可选项1";
row[1] = "1"; row[1] = "1";
table.Rows.Add(row); table.Rows.Add(row);
row = table.NewRow(); row = table.NewRow();
row[0] = "选项 2"; row[0] = "可选项2";
row[1] = "2"; row[1] = "2";
table.Rows.Add(row); table.Rows.Add(row);
row = table.NewRow(); row = table.NewRow();
row[0] = "选项 3"; row[0] = "可选项3";
row[1] = "3"; row[1] = "3";
table.Rows.Add(row); table.Rows.Add(row);
row = table.NewRow(); row = table.NewRow();
row[0] = "选项 4"; row[0] = "可选项4";
row[1] = "4"; row[1] = "4";
table.Rows.Add(row); table.Rows.Add(row);
row = table.NewRow(); row = table.NewRow();
row[0] = "选项 5"; row[0] = "可选项5";
row[1] = "5"; row[1] = "5";
table.Rows.Add(row); table.Rows.Add(row);
row = table.NewRow(); row = table.NewRow();
row[0] = "选项 6"; row[0] = "可选项6";
row[1] = "6"; row[1] = "6";
table.Rows.Add(row); table.Rows.Add(row);
row = table.NewRow(); row = table.NewRow();
row[0] = "选项 7"; row[0] = "可选择项7";
row[1] = "7"; row[1] = "7";
table.Rows.Add(row); table.Rows.Add(row);
row = table.NewRow(); row = table.NewRow();
row[0] = "选项 8"; row[0] = "可选择项8";
row[1] = "8"; row[1] = "8";
table.Rows.Add(row); table.Rows.Add(row);
row = table.NewRow(); row = table.NewRow();
row[0] = "选项 9"; row[0] = "可选择项9";
row[1] = "9"; row[1] = "9";
table.Rows.Add(row); table.Rows.Add(row);
row = table.NewRow(); row = table.NewRow();
row[0] = "这是一个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选项"; row[0] = "这是一个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选项";
row[1] = "10"; row[1] = "10";
table.Rows.Add(row); table.Rows.Add(row);
DropDownList1.DataTextField = "MyText"; DropDownList1.DataTextField = "MyText";
DropDownList1.DataValueField = "MyValue"; DropDownList1.DataValueField = "MyValue";
DropDownList1.DataSource = table; DropDownList1.DataSource = table;
DropDownList1.DataBind(); DropDownList1.DataBind();
} }
#endregion #endregion
#region Events #region Events
protected void btnSelectItem6_Click(object sender, EventArgs e) protected void btnSelectItem6_Click(object sender, EventArgs e)
{ {
DropDownList1.SelectedValue = "6"; DropDownList1.SelectedValue = "6";
} }
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{ {
if (DropDownList1.SelectedItem != null) if (DropDownList1.SelectedItem != null)
{ {
labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue); labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue);
} }
} else
{
#endregion labResult.Text = "无选中项";
}
} }
}
#endregion
}
}

View File

@ -1,69 +1,69 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.dropdownlist { namespace FineUI.Examples.dropdownlist {
public partial class dropdownlist_datatable { public partial class dropdownlist_datatable {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// SimpleForm1 控件。 /// SimpleForm1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.SimpleForm SimpleForm1; protected global::FineUI.SimpleForm SimpleForm1;
/// <summary> /// <summary>
/// DropDownList1 控件。 /// DropDownList1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.DropDownList DropDownList1; protected global::FineUI.DropDownList DropDownList1;
/// <summary> /// <summary>
/// btnSelectItem6 控件。 /// btnSelectItem6 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnSelectItem6; protected global::FineUI.Button btnSelectItem6;
/// <summary> /// <summary>
/// labResult 控件。 /// labResult 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Label labResult; protected global::FineUI.Label labResult;
} }
} }

View File

@ -1,31 +1,32 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dropdownlist_simplelist.aspx.cs" <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dropdownlist_simplelist.aspx.cs"
Inherits="FineUI.Examples.dropdownlist.dropdownlist_simplelist" %> Inherits="FineUI.Examples.dropdownlist.dropdownlist_simplelist" %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head runat="server"> <head runat="server">
<title></title> <title></title>
<link href="../../css/main.css" rel="stylesheet" type="text/css" /> <link href="../../res/css/main.css" rel="stylesheet" type="text/css" />
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" /> <f:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableFrame="true" EnableCollapse="true" <f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True"> ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items> <Items>
<x:DropDownList runat="server" ID="DropDownList1"> <f:DropDownList runat="server" ID="DropDownList1">
</x:DropDownList> </f:DropDownList>
<x:Button ID="btnSelectItem6" Text="选中“选项 6”" runat="server" OnClick="btnSelectItem6_Click" <f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="inline"> CssClass="marginr">
</x:Button> </f:Button>
<x:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click"> <f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</x:Button> </f:Button>
<x:Label runat="server" ID="labResult">
</x:Label> </Items>
</Items> </f:SimpleForm>
</x:SimpleForm> <br />
<br /> <f:Label runat="server" ID="labResult">
<br /> </f:Label>
</form> <br />
</body> </form>
</html> </body>
</html>

View File

@ -1,60 +1,64 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using System.Data; using System.Data;
namespace FineUI.Examples.dropdownlist namespace FineUI.Examples.dropdownlist
{ {
public partial class dropdownlist_simplelist : PageBase public partial class dropdownlist_simplelist : PageBase
{ {
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
{ {
BindStringListToDropDownList(); BindStringListToDropDownList();
} }
} }
#region BindStringListToDropDownList #region BindStringListToDropDownList
private void BindStringListToDropDownList() private void BindStringListToDropDownList()
{ {
List<string> strList = new List<string>(); List<string> strList = new List<string>();
strList.Add("选项 1"); strList.Add("可选项1");
strList.Add("选项 2"); strList.Add("可选项2");
strList.Add("选项 3"); strList.Add("可选项3");
strList.Add("选项 4"); strList.Add("可选项4");
strList.Add("选项 5"); strList.Add("可选项5");
strList.Add("选项 6"); strList.Add("可选项6");
strList.Add("选项 7"); strList.Add("可选择项7");
strList.Add("选项 8"); strList.Add("可选择项8");
strList.Add("选项 9"); strList.Add("可选择项9");
strList.Add("这是一个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选项"); strList.Add("这是一个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选项");
DropDownList1.DataSource = strList; DropDownList1.DataSource = strList;
DropDownList1.DataBind(); DropDownList1.DataBind();
} }
#endregion #endregion
#region Events #region Events
protected void btnSelectItem6_Click(object sender, EventArgs e) protected void btnSelectItem6_Click(object sender, EventArgs e)
{ {
DropDownList1.SelectedValue = "选项 6"; DropDownList1.SelectedValue = "可选项6";
} }
protected void btnGetSelection_Click(object sender, EventArgs e) protected void btnGetSelection_Click(object sender, EventArgs e)
{ {
if (DropDownList1.SelectedItem != null) if (DropDownList1.SelectedItem != null)
{ {
labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue); labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue);
} }
} else
{
#endregion labResult.Text = "无选中项";
}
} }
}
#endregion
}
}

View File

@ -1,78 +1,78 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <自动生成> // <自动生成>
// 此代码由工具生成。 // 此代码由工具生成。
// //
// 对此文件的更改可能会导致不正确的行为,并且如果 // 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。 // 重新生成代码,这些更改将会丢失。
// </自动生成> // </自动生成>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FineUI.Examples.dropdownlist { namespace FineUI.Examples.dropdownlist {
public partial class dropdownlist_simplelist { public partial class dropdownlist_simplelist {
/// <summary> /// <summary>
/// form1 控件。 /// form1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1; protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary> /// <summary>
/// PageManager1 控件。 /// PageManager1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.PageManager PageManager1; protected global::FineUI.PageManager PageManager1;
/// <summary> /// <summary>
/// SimpleForm1 控件。 /// SimpleForm1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.SimpleForm SimpleForm1; protected global::FineUI.SimpleForm SimpleForm1;
/// <summary> /// <summary>
/// DropDownList1 控件。 /// DropDownList1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.DropDownList DropDownList1; protected global::FineUI.DropDownList DropDownList1;
/// <summary> /// <summary>
/// btnSelectItem6 控件。 /// btnSelectItem6 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnSelectItem6; protected global::FineUI.Button btnSelectItem6;
/// <summary> /// <summary>
/// btnGetSelection 控件。 /// btnGetSelection 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Button btnGetSelection; protected global::FineUI.Button btnGetSelection;
/// <summary> /// <summary>
/// labResult 控件。 /// labResult 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUI.Label labResult; protected global::FineUI.Label labResult;
} }
} }

Some files were not shown because too many files have changed in this diff Show More