This commit is contained in:
三生石上 2017-09-05 11:30:31 +08:00
parent ebd91661d7
commit 62ef818ff0
3703 changed files with 260867 additions and 0 deletions

File diff suppressed because it is too large Load Diff

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

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

View File

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

View File

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
<section name="FineUI" type="FineUI.ConfigSection, FineUI" requirePermission="false" />
</configSections>
<!-- 可用的配置项(这里列的都是默认值):
Theme="Default"
Language="zh_CN"
DebugMode="false"
FormMessageTarget="Qtip"
FormOffsetRight="0"
FormLabelWidth="100"
FormLabelSeparator=""
FormLabelAlign="Left"
FormRedStarPosition="AfterText"
EnableAjax="true"
EnableAjaxLoading="true"
AjaxTimeout="120"
AjaxLoadingType="Default"
AjaxLoadingText=""
ShowAjaxLoadingMaskText=false
AjaxLoadingMaskText=""
CustomTheme=""
CustomThemeBasePath="~/res/themes"
IconBasePath="~/res/icon"
JSBasePath="~/res/js"
IEEdge="true"
EnableShim="false"
EnableCompactMode="false"
-->
<FineUI DebugMode="true" Theme="Cupertino" />
<appSettings />
<connectionStrings />
<system.web>
<!-- Net4.0以上的项目一定要为pages节点加上这两个属性controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID" -->
<pages>
<controls>
<add assembly="FineUI" namespace="FineUI" tagPrefix="f" />
</controls>
</pages>
<!-- 请求正文的最大值: 512000K = 500M -->
<httpRuntime maxRequestLength="512000" />
<customErrors mode="Off" />
<compilation debug="true" />
<!--
在虚拟主机中运行ASP.NET程序要添加如下配置项否则在页面回发时可能出现“验证视图状态 MAC 失败”的错误。
如何生成MachineKeyhttp://blogs.msdn.com/b/amb/archive/2012/07/31/easiest-way-to-generate-machinekey.aspx
<machineKey decryptionKey="7E2D92E82700F80C72AA0F6FBE42CCDB76A9A29805355115,IsolateApps" validationKey="40C295F1C6E7332867DD50EBAD174E3A5EF52212070B15519FAB47C00B9EEFA18F24643EFB59FC10946F75CE2EF2DB2D6437BA23CF55A1E358FA32FB25DFFE74,IsolateApps" />
-->
<!--
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" loginUrl="~/default.aspx" timeout="120" defaultUrl="~/main.aspx" protection="All" path="/"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
-->
</system.web>
<!--
<location path="res.axd">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
-->
<system.webServer>
<modules>
<add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI"/>
</modules>
<handlers>
<add name="FineUIResourceHandler" verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI"/>
</handlers>
</system.webServer>
</configuration>

View File

@ -0,0 +1,47 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="accordion.aspx.cs" Inherits="FineUI.Examples.accordion.accordion" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</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" 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>
<br />
<br />
<f:Button ID="Button2" Text="展开下一个面板" runat="server" OnClick="Button2_Click">
</f:Button>
</form>
</body>
</html>

View File

@ -0,0 +1,34 @@
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 : 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 Button2_Click(object sender, EventArgs e)
{
var nextIndex = Accordion1.ActivePaneIndex + 1;
if (nextIndex >= Accordion1.Panes.Count)
{
nextIndex = 0;
}
Accordion1.ActivePaneIndex = nextIndex;
}
}
}

View File

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

View File

@ -0,0 +1,43 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="accordion_autopostback.aspx.cs" Inherits="FineUI.Examples.accordion.accordion_autopostback" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</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

@ -0,0 +1,47 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="accordion_fill.aspx.cs" Inherits="FineUI.Examples.accordion.accordion_fill" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:Accordion ID="Accordion1" Title="手风琴控件(禁用填充)" runat="server" Width="300px" Height="450px"
EnableFill="false" EnableActiveOnTop="false" ShowCollapseTool="true"
ShowBorder="True" ActivePaneIndex="1" EnableCollapse="true" >
<Panes>
<f:AccordionPane ID="AccordionPane1" runat="server" Title="面板一" IconUrl="~/res/images/16/1.png"
BodyPadding="2px 5px">
<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">
<Items>
<f:Label ID="Label2" Text="面板二中的文本<br/>balabala<br/>balabala<br/>balabala<br/>balabala" EncodeText="false" runat="server">
</f:Label>
</Items>
</f:AccordionPane>
<f:AccordionPane ID="AccordionPane3" runat="server" Title="面板三" IconUrl="~/res/images/16/7.png"
BodyPadding="2px 5px">
<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>
<br />
<br />
<f:Button ID="Button2" Text="展开下一个面板" runat="server" OnClick="Button2_Click">
</f:Button>
</form>
</body>
</html>

View File

@ -0,0 +1,34 @@
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_fill : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
ShowNotify(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

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

View File

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

View File

@ -0,0 +1,25 @@
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 ExtAspNet.Examples.accordion
{
public partial class accordion_links : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
}
}

View File

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

View File

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

View File

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

View File

@ -0,0 +1,46 @@
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_tree : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 绑定 XML 数据源到树控件
treeMenu.DataSource = XmlDataSource1;
treeMenu.DataBind();
ResolveTreeNode(treeMenu.Nodes);
}
}
private void ResolveTreeNode(TreeNodeCollection nodes)
{
foreach (TreeNode node in nodes)
{
if (node.Nodes.Count == 0)
{
if (!String.IsNullOrEmpty(node.NavigateUrl))
{
node.Target = "main";
}
}
else
{
ResolveTreeNode(node.Nodes);
}
}
}
}
}

View File

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

View File

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

View File

@ -0,0 +1,24 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestWindow.aspx.cs" Inherits="FineUI.Examples.aspnet.TestWindow" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<style>
form
{
height:800px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:Button ID="btnTest" Text="点击此按钮查看alert是否报错" runat="server" OnClick="btnTest_Click">
</x:Button>
<input type="button" onclick="document.getElementById('ok').innerHTML = 'OK';" value="PPP" />
<div id="ok"></div>
<div id="container1"></div>
</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.aspnet
{
public partial class TestWindow : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnTest_Click(object sender, EventArgs e)
{
FineUI.Alert.Show("出现滚动条后,出错了吗?");
}
}
}

View File

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

View File

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

View File

@ -0,0 +1,48 @@
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.aspnet
{
public partial class aspnet : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void Button1_Click(object sender, EventArgs e)
{
aspBox.Text = "1. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString();
extBox.Text = "1. FineUI 输入框 - " + DateTime.Now.ToLongTimeString();
}
protected void Button2_Click(object sender, EventArgs e)
{
aspBox.Text = "2. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString();
extBox.Text = "2. FineUI 输入框 - " + DateTime.Now.ToLongTimeString();
}
protected void Button3_Click(object sender, EventArgs e)
{
aspBox.Text = "3. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString();
extBox.Text = "3. FineUI 输入框 - " + DateTime.Now.ToLongTimeString();
}
protected void Button4_Click(object sender, EventArgs e)
{
aspBox.Text = "4. ASP.NET 输入框 - " + DateTime.Now.ToLongTimeString();
extBox.Text = "4. FineUI 输入框 - " + DateTime.Now.ToLongTimeString();
}
}
}

View File

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

View File

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

View File

@ -0,0 +1,30 @@
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.aspnet
{
public partial class aspnet_literal : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Label1 - " + DateTime.Now.ToLongTimeString();
Literal1.Text = "Literal1 - " + DateTime.Now.ToLongTimeString();
Literal2.Text = "Literal2 - " + DateTime.Now.ToLongTimeString();
}
}
}

View File

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

View File

@ -0,0 +1,44 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ckeditor.aspx.cs" ValidateRequest="false"
Inherits="FineUI.Examples.aspnet.ckeditor" %>
<%@ Register Assembly="CKEditor.NET" Namespace="CKEditor.NET" TagPrefix="CKEditor" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:ContentPanel ID="ContentPanel1" runat="server" BodyPadding="5px" Width="850px" EnableFrame="true" EnableCollapse="true"
ShowBorder="true" ShowHeader="true" Title="内容面板">
<CKEditor:CKEditorControl ID="CKEditor1" runat="server" Height="300px" BasePath="~/ckeditor">
&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;
</CKEditor:CKEditorControl>
</x:ContentPanel>
<br />
<x:Button ID="Button2" runat="server" CssClass="inline" Text="设置 CKEditor 的值" OnClick="Button2_Click">
</x:Button>
<x:Button ID="Button1" runat="server" Text="获取 CKEditor 的值" OnClick="Button1_Click">
</x:Button>
</form>
<script type="text/javascript">
var editorClientID = '<%= CKEditor1.ClientID %>';
var containerClientID = '<%= ContentPanel1.ClientID %>';
function onReady() {
window.setTimeout(function () {
X(containerClientID).updateLayout();
}, 500);
}
// 更新编辑器内容
function updateCKEditor(content) {
var editor = CKEDITOR.instances[editorClientID];
editor.setData(content);
}
</script>
</body>
</html>

View File

@ -0,0 +1,62 @@
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.aspnet
{
public partial class ckeditor : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//CKEditor1.config.toolbar = new object[]
// {
// new object[] { "Source", "-", "Save", "NewPage", "Preview", "-", "Templates" },
// new object[] { "Cut", "Copy", "Paste", "PasteText", "PasteFromWord", "-", "Print", "SpellChecker", "Scayt" },
// new object[] { "Undo", "Redo", "-", "Find", "Replace", "-", "SelectAll", "RemoveFormat" },
// new object[] { "Form", "Checkbox", "Radio", "TextField", "Textarea", "Select", "Button", "ImageButton", "HiddenField" },
// "/",
// new object[] { "Bold", "Italic", "Underline", "Strike", "-", "Subscript", "Superscript" },
// new object[] { "NumberedList", "BulletedList", "-", "Outdent", "Indent", "Blockquote", "CreateDiv" },
// new object[] { "JustifyLeft", "JustifyCenter", "JustifyRight", "JustifyBlock" },
// new object[] { "BidiLtr", "BidiRtl" },
// new object[] { "Link", "Unlink", "Anchor" },
// new object[] { "Image", "Flash", "Table", "HorizontalRule", "Smiley", "SpecialChar", "PageBreak", "Iframe" },
// "/",
// new object[] { "Styles", "Format", "Font", "FontSize" },
// new object[] { "TextColor", "BGColor" },
// new object[] { "Maximize", "ShowBlocks", "-", "About" }
// };
//CKEditor1.config.toolbar = new object[]
// {
// new object[] { "Bold", "Italic", "-", "NumberedList", "BulletedList", "-", "Link", "Unlink", "-", "About" },
// new object[] { "Cut", "Copy", "Paste", "PasteText", "PasteFromWord", "-", "Print", "SpellChecker", "Scayt" },
// };
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Alert.ShowInTop(HttpUtility.HtmlEncode(CKEditor1.Text));
}
protected void Button2_Click(object sender, EventArgs e)
{
string content = "<p><strong>FineUI</strong> - 基于 ExtJS 的专业 ASP.NET 2.0 控件库,拥有完善的 AJAX 支持和丰富的界面效果。</p>";
PageContext.RegisterStartupScript(String.Format("updateCKEditor({0});", JsHelper.Enquote(content)));
}
}
}

View File

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

View File

@ -0,0 +1,34 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="fckeditor.aspx.cs" ValidateRequest="false"
Inherits="FineUI.Examples.aspnet.fckeditor2" %>
<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:ContentPanel ID="ContentPanel1" runat="server" BodyPadding="5px" EnableFrame="true" EnableCollapse="true"
ShowBorder="true" ShowHeader="true" Width="850px" Title="内容面板">
<FCKeditorV2:FCKeditor ID="FCKeditor1" BasePath="~/fckeditor/" Height="300px" Value="" runat="server">
</FCKeditorV2:FCKeditor>
</x:ContentPanel>
<br />
<x:Button ID="Button2" runat="server" CssClass="inline" Text="设置 FCKEditor 的值"
OnClick="Button2_Click">
</x:Button>
<x:Button ID="Button1" runat="server" Text="获取 FCKEditor 的值" OnClick="Button1_Click">
</x:Button>
</form>
<script type="text/javascript">
// 更新编辑器内容
function updateFCKEditor(content) {
var editor = FCKeditorAPI.GetInstance('<%= FCKeditor1.UniqueID %>');
editor.SetData(content);
}
</script>
</body>
</html>

View File

@ -0,0 +1,38 @@
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.aspnet
{
public partial class fckeditor2 : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FCKeditor1.Value = "<p>This is some <strong>sample text</strong>. You are using <a href=\"http://www.fckeditor.net/\">FCKEditor</a>.</p>";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Alert.ShowInTop(HttpUtility.HtmlEncode(FCKeditor1.Value));
}
protected void Button2_Click(object sender, EventArgs e)
{
string content = "<p><strong>FineUI</strong> - 基于 ExtJS 的专业 ASP.NET 2.0 控件库,拥有完善的 AJAX 支持和丰富的界面效果。</p>";
PageContext.RegisterStartupScript(String.Format("updateFCKEditor({0});", JsHelper.Enquote(content)));
}
}
}

View File

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

View File

@ -0,0 +1,36 @@
<%@ Page Language="C#" AutoEventWireup="true" ValidateRequest="false" CodeBehind="fileupload.aspx.cs"
Inherits="FineUI.Examples.aspnet.fileupload2" %>
<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" EnableAjax="false" />
<x:ContentPanel ID="ContentPanel1" runat="server" Width="800px" BodyPadding="5px"
ShowHeader="true" Title="内容面板">
Asp.Net上传控件
<asp:FileUpload ID="FileUpload1" runat="server"></asp:FileUpload>
<br />
<br />
<FCKeditorV2:FCKeditor ID="FCKeditor1" runat="server" BasePath="~/fckeditor/" Height="300px">
</FCKeditorV2:FCKeditor>
<br />
<asp:Button ID="btnCloseWindow2" runat="server" Text="上传文件并获取 FCKEditor 的值"
OnClick="btnCloseWindow2_Click"></asp:Button>
<br />
<br />
注意:在页面上使用 asp:FileUpload 控件时,必须设置 PageManager 的 EnableAjax 为 false。
<br />
<br />
<div style="color:Red; font-weight: bold;">
推荐使用 FineUI 提供的 FileUpload 控件,这样就不需要设置 EnableAjax 为 false 了。
</div>
</x:ContentPanel>
</form>
</body>
</html>

View File

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUI.Examples.aspnet
{
public partial class fileupload2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void btnCloseWindow2_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
FileUpload1.SaveAs(Server.MapPath("~/upload/" + FileUpload1.FileName));
}
Alert.ShowInTop("FCKEditor的值" + HttpUtility.HtmlEncode(FCKeditor1.Value));
}
}
}

View File

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

View File

@ -0,0 +1,35 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="FineUI.Examples.aspnet.test" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" AjaxAspnetControls="Label1,Literal1,Literal2_Container"
runat="server" />
<asp:Label ID="Label1" Text="Label1" runat="server"></asp:Label>
<br />
<asp:Literal ID="Literal1" Text="Literal1" runat="server"></asp:Literal>
<br />
<div id="Literal2_Container">
<asp:Literal ID="Literal2" Text="Literal2" runat="server"></asp:Literal>
</div>
<br />
<x:Button ID="Button1" runat="server" Text="点击此按钮弹出一个带滚动条的window" OnClick="Button1_Click">
</x:Button>
<br />
<x:Window ID="EditTaskWin" Title="测试window里滚动条" Hidden="true" EnableIFrame="true"
runat="server" IsModal="true" Width="650px" Height="300px" EnableClose="true"
EnableMaximize="true" Target="Parent" WindowPosition="Center">
</x:Window>
<div style="width: 486px; height: 566px; border: solid 1px red;">
<iframe frameborder="0" src="./TestWindow.htm" name="x1_3337cc1b7b50416b883681252a6dd644"
style="overflow:auto;height:100%;width:100%; border: solid 1px green;">
</iframe>
</div>
</form>
</body>
</html>

View File

@ -0,0 +1,32 @@
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.aspnet
{
public partial class test : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void Button1_Click(object sender, EventArgs e)
{
//Label1.Text = "Label1 - " + DateTime.Now.ToLongTimeString();
//Literal1.Text = "Literal1 - " + DateTime.Now.ToLongTimeString();
//Literal2.Text = "Literal2 - " + DateTime.Now.ToLongTimeString();
EditTaskWin.IFrameUrl = "TestWindow.aspx";
EditTaskWin.Hidden = false;
}
}
}

View File

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

View File

@ -0,0 +1,83 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ueditor.aspx.cs" ValidateRequest="false"
Inherits="FineUI.Examples.aspnet.ueditor" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="../ueditor/themes/default/ueditor.css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:ContentPanel ID="ContentPanel1" runat="server" BodyPadding="5px" Width="900px" EnableFrame="true" EnableCollapse="true"
ShowBorder="true" ShowHeader="true" Title="内容面板">
<textarea name="UEditor1" id="UEditor1">
</textarea>
</x:ContentPanel>
<br />
<x:Button ID="Button2" runat="server" CssClass="inline" Text="设置 CKEditor 的值" OnClick="Button2_Click">
</x:Button>
<x:Button ID="Button1" runat="server" Text="获取 CKEditor 的值" OnClick="Button1_Click">
</x:Button>
</form>
<script type="text/javascript">
window.UEDITOR_HOME_URL = '<%= ResolveUrl("~/ueditor/") %>';
</script>
<script src="../jqueryui/js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script type="text/javascript" src="../ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="../ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
var editor;
var containerClientID = '<%= ContentPanel1.ClientID %>';
function onReady() {
editor = new UE.ui.Editor({
initialFrameWidth: '100%',
initialFrameHeight: 300,
initialContent: '<p>关于FineUI<br>基于 ExtJS 的专业 ASP.NET 2.0 控件库。<br><br>FineUI的使命<br>创建 No JavaScriptNo CSSNo UpdatePanelNo ViewStateNo WebServices 的网站应用程序。<br><br>支持的浏览器<br>IE 7.0+、Firefox 3.6+、Chrome 3.0+、Opera 10.5+、Safari 3.0+<br><br>授权协议<br>Apache License 2.0 (Apache)<br><br>相关链接<br>论坛http://fineui.com/bbs/<br>示例http://fineui.com/demo/<br>文档http://fineui.com/doc/<br>下载http://fineui.codeplex.com/</p>',
focus: true
});
editor.render("UEditor1");
updateLayout();
}
// 更新外部容器的布局
function updateLayout() {
editorPromise(editor).then(function () {
window.setTimeout(function () {
X(containerClientID).updateLayout();
}, 100);
});
}
function editorPromise(editor) {
var dfd = $.Deferred();
if (editor.isReady) {
dfd.resolve();
} else {
editor.ready(function () {
dfd.resolve();
});
}
return dfd.promise();
}
// 提交数据之前同步到表单隐藏字段
X.util.beforeAjaxPostBackScript = function () {
editor.sync();
};
// 更新编辑器内容
function updateUEditor(content) {
editorPromise(editor).then(function () {
editor.setContent(content);
});
}
</script>
</body>
</html>

View File

@ -0,0 +1,41 @@
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.aspnet
{
public partial class ueditor : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//string content = "初始化内容";
//PageContext.RegisterStartupScript(String.Format("updateUEditor({0});", JsHelper.Enquote(content)));
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string ueditorContent = Request.Form["UEditor1"].ToString();
Alert.ShowInTop(HttpUtility.HtmlEncode(ueditorContent));
}
protected void Button2_Click(object sender, EventArgs e)
{
string content = "<p><strong>FineUI</strong> - 基于 ExtJS 的专业 ASP.NET 控件库,拥有完善的 AJAX 支持和丰富的界面效果。</p>";
PageContext.RegisterStartupScript(String.Format("updateUEditor({0});", JsHelper.Enquote(content)));
}
}
}

View File

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

View File

@ -0,0 +1,151 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ueditor_two.aspx.cs" ValidateRequest="false"
Inherits="FineUI.Examples.aspnet.ueditor_two" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="../ueditor/themes/default/ueditor.css" />
<style>
table.mytable {
width: 100%;
border-collapse: collapse;
}
table.mytable td {
padding: 0;
vertical-align: top;
}
table.mytable td.first {
width: 85px;
}
table.mytable td.second {
padding-right: 5px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" LabelWidth="80px" Width="900px" EnableFrame="true" EnableCollapse="true"
Title="添加文章" runat="server">
<Items>
<x:TextBox ID="tbxTitle" Label="文章标题" Required="true" runat="server">
</x:TextBox>
<x:ContentPanel ID="ContentPanel1" runat="server" ShowBorder="false" ShowHeader="false">
<table class="mytable">
<tr>
<td class="first">文章正文: </td>
<td class="second">
<textarea name="UEditor1" id="UEditor1">
</textarea>
</td>
</tr>
<tr>
<td class="first" style="padding-top: 5px;">文章摘要:</td>
<td class="second" style="padding-top: 5px;">
<textarea name="UEditor2" id="UEditor2">
</textarea>
</td>
</tr>
</table>
</x:ContentPanel>
</Items>
<Toolbars>
<x:Toolbar runat="server" Position="Footer">
<Items>
<x:Button ID="Button1" runat="server" ValidateForms="SimpleForm1"
Text="获取文章内容" OnClick="Button1_Click">
</x:Button>
<x:Button ID="Button2" runat="server" Text="更新文章摘要" OnClick="Button2_Click">
</x:Button>
</Items>
</x:Toolbar>
</Toolbars>
</x:SimpleForm>
<x:Label runat="server" ID="labResult" EncodeText="false">
</x:Label>
<br />
</form>
<script type="text/javascript">
window.UEDITOR_HOME_URL = '<%= ResolveUrl("~/ueditor/") %>';
</script>
<script src="../jqueryui/js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script type="text/javascript" src="../ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="../ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
var editor1, editor2;
var formClientID = '<%= SimpleForm1.ClientID %>';
function onReady() {
editor1 = new UE.ui.Editor({
initialFrameWidth: '100%',
initialFrameHeight: 100,
initialContent: '<p>关于FineUI<br>基于 ExtJS 的专业 ASP.NET 2.0 控件库。<br><br>FineUI的使命<br>创建 No JavaScriptNo CSSNo UpdatePanelNo ViewStateNo WebServices 的网站应用程序。<br><br>支持的浏览器<br>IE 7.0+、Firefox 3.6+、Chrome 3.0+、Opera 10.5+、Safari 3.0+<br><br>授权协议<br>Apache License 2.0 (Apache)<br><br>相关链接<br>论坛http://fineui.com/bbs/<br>示例http://fineui.com/demo/<br>文档http://fineui.com/doc/<br>下载http://fineui.codeplex.com/</p>'
});
editor1.render("UEditor1");
editor2 = new UE.ui.Editor({
initialFrameWidth: '100%',
initialFrameHeight: 80,
initialContent: '',
toolbars: [['fullscreen', 'source', '|', 'undo', 'redo', '|',
'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',
'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain']]
});
editor2.render("UEditor2");
updateLayout();
}
function editorPromise(editor) {
var dfd = $.Deferred();
if (editor.isReady) {
dfd.resolve();
} else {
editor.ready(function () {
dfd.resolve();
});
}
return dfd.promise();
}
// 提交数据之前同步到表单隐藏字段
X.util.beforeAjaxPostBackScript = function () {
editor1.sync();
editor2.sync();
};
// 更新外部容器的布局
function updateLayout() {
$.when(editorPromise(editor1), editorPromise(editor2)).then(function () {
window.setTimeout(function () {
X(formClientID).updateLayout();
}, 100);
});
}
// 更新编辑器内容
function updateUEditor1(content) {
editorPromise(editor1).then(function () {
editor1.setContent(content);
});
}
function updateUEditor2(content) {
editorPromise(editor2).then(function () {
editor2.setContent(content);
});
}
</script>
</body>
</html>

View File

@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;
using System.Text.RegularExpressions;
namespace FineUI.Examples.aspnet
{
public partial class ueditor_two : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string editor1Content = Request.Form["UEditor1"].ToString();
string editor2Content = Request.Form["UEditor2"].ToString();
if (String.IsNullOrEmpty(editor1Content))
{
Alert.ShowInTop("文章正文不能为空!");
return;
}
Alert.ShowInTop("文章标题:" + tbxTitle.Text +
"<br/>" + "文章正文:" + HttpUtility.HtmlEncode(editor1Content) +
"<br/>" + "文章摘要:" + HttpUtility.HtmlEncode(editor2Content));
}
protected void Button2_Click(object sender, EventArgs e)
{
string content = Request.Form["UEditor1"].ToString();
Regex regex = new Regex(@"<[^>]+>|</[^>]+>");
content = regex.Replace(content, "");
if (content.Length > 100)
{
content = content.Substring(0, 97) + "...";
}
PageContext.RegisterStartupScript(String.Format("updateUEditor2({0});", JsHelper.Enquote(content)));
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,46 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login.aspx.cs" Inherits="FineUI.Examples.basic.login" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</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">
</f:TextBox>
<f:TextBox ID="tbxPassword" Label="密码" TextMode="Password" Required="true" runat="server">
</f:TextBox>
</Items>
</f:SimpleForm>
</Items>
<Toolbars>
<f:Toolbar ID="Toolbar1" runat="server" ToolbarAlign="Right" Position="Bottom">
<Items>
<f:Button ID="btnLogin" Text="登录" Type="Submit" 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 : 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 {
/// <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;
}
}

View File

@ -0,0 +1,57 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login_captcha.aspx.cs"
Inherits="FineUI.Examples.basic.login_captcha" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
用户名admin
<br />
密码admin
<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">
</f:TextBox>
<f:TextBox ID="tbxPassword" Label="密码" TextMode="Password" Required="true" runat="server">
</f:TextBox>
<f:TextBox ID="tbxCaptcha" Label="验证码" Required="true" runat="server">
</f:TextBox>
<f:Panel CssStyle="padding-left:65px;" ShowBorder="false" ShowHeader="false"
runat="server">
<Items>
<f:Image ID="imgCaptcha" CssStyle="float:left;width:160px;" runat="server">
</f:Image>
<f:LinkButton CssStyle="float:left;margin-top:8px;" ID="btnRefresh" Text="看不清?"
runat="server" OnClick="btnRefresh_Click">
</f:LinkButton>
</Items>
</f:Panel>
</Items>
</f:SimpleForm>
</Items>
<Toolbars>
<f:Toolbar ID="Toolbar1" runat="server" ToolbarAlign="Right" Position="Bottom">
<Items>
<f:Button ID="btnLogin" Text="登录" Type="Submit" 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,76 @@
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_captcha : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadData();
}
}
private void LoadData()
{
InitCaptchaCode();
}
/// <summary>
/// 初始化验证码
/// </summary>
private void InitCaptchaCode()
{
// 创建一个 6 位的随机数并保存在 Session 对象中
Session["CaptchaImageText"] = GenerateRandomCode();
imgCaptcha.ImageUrl = "~/basic/captcha/captcha.ashx?w=150&h=30&t=" + DateTime.Now.Ticks;
}
/// <summary>
/// 创建一个 6 位的随机数
/// </summary>
/// <returns></returns>
private string GenerateRandomCode()
{
string s = String.Empty;
Random random = new Random();
for (int i = 0; i < 6; i++)
{
s += random.Next(10).ToString();
}
return s;
}
protected void btnRefresh_Click(object sender, EventArgs e)
{
InitCaptchaCode();
}
protected void btnLogin_Click(object sender, EventArgs e)
{
if (tbxCaptcha.Text != Session["CaptchaImageText"].ToString())
{
Alert.ShowInTop("验证码错误!");
return;
}
if (tbxUserName.Text == "admin" && tbxPassword.Text == "admin")
{
Alert.ShowInTop("成功登录!");
}
else
{
Alert.ShowInTop("用户名或密码错误!", MessageBoxIcon.Error);
}
}
}
}

View File

@ -0,0 +1,123 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUI.Examples.basic {
public partial class login_captcha {
/// <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>
/// tbxCaptcha 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.TextBox tbxCaptcha;
/// <summary>
/// imgCaptcha 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Image imgCaptcha;
/// <summary>
/// btnRefresh 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.LinkButton btnRefresh;
/// <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;
}
}

View File

@ -0,0 +1,46 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login_enterkey.aspx.cs" Inherits="FineUI.Examples.basic.login_enterkey" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</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;
}
}

View File

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

View File

@ -0,0 +1,46 @@
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 : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnChangeEnable_Click(object sender, EventArgs e)
{
btnEnable.Enabled = true;
btnEnable.Text = "本按钮已经启用(点击弹出对话框)";
}
protected void btnEnable_Click(object sender, EventArgs e)
{
Alert.ShowInTop("你点击了刚刚启用的按钮");
}
protected void btnTooltip_Click(object sender, EventArgs e)
{
btnTooltip.ToolTip = "这是改变后的提示信息";
}
protected void btnChangePressed_Click(object sender, EventArgs e)
{
btnPressed.Pressed = !btnPressed.Pressed;
}
}
}

View File

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

View File

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

View File

@ -0,0 +1,29 @@
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_click : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnClientClick2.OnClientClick = Alert.GetShowInTopReference("这是在服务器端生成的客户端事件");
}
}
protected void btnServerClick_Click(object sender, EventArgs e)
{
Alert.ShowInTop("这是服务器端事件");
}
}
}

View File

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

View File

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

View File

@ -0,0 +1,29 @@
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_custom : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Alert.ShowInTop("点击了普通按钮");
}
protected void Button2_Click(object sender, EventArgs e)
{
Alert.ShowInTop("点击了自定义按钮");
}
}
}

View File

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

View File

@ -0,0 +1,32 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="button_icon.aspx.cs" Inherits="FineUI.Examples.button.button_icon" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:Button ID="btnIcon1" Text="图标在左侧" Icon="Report" runat="server" CssClass="marginr" />
<f:Button ID="btnIcon2" Text="图标在右侧" IconAlign="Right" Icon="Report" runat="server" />
<br />
<br />
<f:Button ID="btnIcon3" Text="图标在上面" IconAlign="Top" Icon="Report" runat="server"
CssClass="marginr" />
<f:Button ID="btnIcon4" Text="图标在下面" IconAlign="Bottom" Icon="Report" runat="server" />
<br />
<br />
<f:Button ID="btnCustomIcon" Text="自定义图标(点击修改图标)" OnClick="btnCustomIcon_Click"
IconUrl="~/res/images/16/1.png" runat="server" />
<br />
<br />
只有图片的按钮:
<br />
<br />
<f:Button ID="Button1" IconUrl="~/res/images/16/1.png" CssClass="marginr" runat="server" />
<f:Button ID="Button2" IconUrl="~/res/images/16/8.png" runat="server" />
<br />
</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;
namespace FineUI.Examples.button
{
public partial class button_icon : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnCustomIcon_Click(object sender, EventArgs e)
{
if (btnCustomIcon.IconUrl.EndsWith("1.png"))
{
btnCustomIcon.IconUrl = "~/res/images/16/8.png";
}
else
{
btnCustomIcon.IconUrl = "~/res/images/16/1.png";
}
}
}
}

View File

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

View File

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

View File

@ -0,0 +1,30 @@
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_linkbutton : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LinkButton2.OnClientClick = Alert.GetShowInTopReference("这是在服务器端生成的客户端事件");
}
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
Alert.ShowInTop("这是服务器端事件");
}
protected void btnChangeEnable_Click(object sender, EventArgs e)
{
LinkButton1.Enabled = !LinkButton1.Enabled;
}
}
}

View File

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

View File

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

View File

@ -0,0 +1,55 @@
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 : PageBase
{
protected void Page_Init(object sender, EventArgs e)
{
MenuHyperLink menuSCMS = new MenuHyperLink();
menuSCMS.Target = "_blank";
menuSCMS.Text = "化学与材料科学学院";
menuSCMS.Icon = Icon.TagGreen;
menuSCMS.NavigateUrl = "http://scms.ustc.edu.cn/";
Button1.Menu.Items.Add(menuSCMS);
MenuHyperLink menuBZ = new MenuHyperLink();
menuBZ.Target = "_blank";
menuBZ.Text = "管理学院";
menuBZ.Icon = Icon.TagBlue;
menuBZ.NavigateUrl = "http://business.ustc.edu.cn/zh_CN/";
Button1.Menu.Items.Add(menuBZ);
MenuHyperLink menuIS = new MenuHyperLink();
menuIS.Target = "_blank";
menuIS.Text = "工商管理系";
menuIS.Icon = Icon.TagPink;
menuIS.NavigateUrl = "http://is.ustc.edu.cn/";
menuBZ.Menu.Items.Add(menuIS);
MenuHyperLink menuSTAT = new MenuHyperLink();
menuSTAT.Target = "_blank";
menuSTAT.Text = "统计与金融系";
menuSTAT.Icon = Icon.TagPink;
menuSTAT.NavigateUrl = "http://stat.ustc.edu.cn/";
menuBZ.Menu.Items.Add(menuSTAT);
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View File

@ -0,0 +1,51 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUI.Examples.button {
public partial class button_menu {
/// <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;
}
}

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>
</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 />
本示例有问题extjs v6.0不支持共享MenuID的情况。
</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 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace FineUI.Examples.button {
public partial class button_menu_menuid {
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::FineUI.PageManager PageManager1;
/// <summary>
/// btnMenu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::FineUI.Button btnMenu;
/// <summary>
/// Button1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::FineUI.Button Button1;
/// <summary>
/// Menu1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::FineUI.Menu Menu1;
/// <summary>
/// MenuHyperLink1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink1;
/// <summary>
/// MenuHyperLink2 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink2;
/// <summary>
/// MenuHyperLink3 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink3;
/// <summary>
/// MenuHyperLink4 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::FineUI.MenuHyperLink MenuHyperLink4;
}
}

View File

@ -0,0 +1,79 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="loading.aspx.cs" Inherits="FineUI.Examples.common.loading" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<style type="text/css">
ul.loading {
list-style-type: none;
padding: 0;
margin: 0;
}
ul.loading li {
display: inline-block;
margin: 5px;
text-align: center;
border-style: solid;
border-width: 0;
padding: 11px 6px;
width: 136px;
cursor: pointer;
}
ul.loading li.hover,
ul.loading li.active {
border-width: 3px;
padding: 8px 3px;
border-color: #ccc;
}
ul.loading li .title {
margin-top: 10px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server"></f:PageManager>
<asp:Literal EnableViewState="false" runat="server" ID="litIcons"></asp:Literal>
</form>
<script src="../res/js/jquery.js"></script>
<script>
F.ready(function () {
// 选择主题窗口
$('ul.loading li').hover(function () {
$(this).addClass('hover');
}, function () {
$(this).removeClass('hover');
}).click(function () {
var loadingNumber = $(this).find('.title').text();
F.cookie('Loading_v6', loadingNumber, {
expires: 100 // 单位:天
});
top.window.location.reload();
});
// 初始化
var loadingNumber = F.cookie('Loading_v6');
if (!loadingNumber) {
loadingNumber = '1';
}
$('ul.loading li').each(function () {
var cnode = $(this);
if (cnode.find('.title').text() === loadingNumber) {
cnode.addClass('active');
} else {
cnode.removeClass('active');
}
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using Newtonsoft.Json.Linq;
namespace FineUI.Examples.common
{
public partial class loading : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadData();
}
}
private void LoadData()
{
StringBuilder sb = new StringBuilder();
sb.Append("<ul class=\"loading\">");
for (int i = 1; i <= 30; i++)
{
string imageUrl = PageManager1.GetLoadingImageUrl(i);
sb.AppendFormat("<li class=\"\"><img src=\"{0}\"><div class=\"title\">{1}</div></li>", imageUrl, i);
}
sb.Append("</ul>");
litIcons.Text = sb.ToString();
}
}
}

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace FineUI.Examples.common {
public partial class loading {
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::FineUI.PageManager PageManager1;
/// <summary>
/// litIcons control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litIcons;
}
}

View File

@ -0,0 +1,823 @@
<?xml version="1.0" encoding="utf-8" ?>
<Tree>
<TreeNode Text="基本用法" Icon="House">
<TreeNode Text="配置信息">
<TreeNode Text="发布历史" NavigateUrl="http://fineui.com/version/index.html?from=demo">
</TreeNode>
<TreeNode Text="配置 Web.config" NavigateUrl="~/config/modify_webconfig.htm" >
</TreeNode>
<TreeNode Text="图标列表" NavigateUrl="~/config/icons.htm" >
</TreeNode>
<TreeNode Text="加载动画列表" NavigateUrl="~/config/loading.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="安装工具箱" NavigateUrl="~/config/install_toolbox.htm" >
</TreeNode>
<TreeNode Text="IIS6中启用GZIP压缩" NavigateUrl="~/config/enable_gzip_iis6.htm" >
</TreeNode>
<TreeNode Text="AJAX 属性列表" NavigateUrl="~/config/ajax.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="你好 FineUI" NavigateUrl="~/basic/hello.aspx" >
</TreeNode>
<TreeNode Text="你好 AspNet" NavigateUrl="~/basic/hello_aspnet.aspx">
</TreeNode>
<TreeNode Text="登录页面" NavigateUrl="~/basic/login.aspx" >
</TreeNode>
<TreeNode Text="登录页面(回车导航)" NavigateUrl="~/basic/login_enterkey.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="登录页面(验证码)" NavigateUrl="~/basic/login_captcha.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="表单控件" Icon="ApplicationForm">
<TreeNode Text="按钮控件" >
<TreeNode Text="简单按钮" NavigateUrl="~/button/button.aspx" >
</TreeNode>
<TreeNode Text="按钮图标" NavigateUrl="~/button/button_icon.aspx" >
</TreeNode>
<TreeNode Text="按钮的点击事件" NavigateUrl="~/button/button_click.aspx" >
</TreeNode>
<TreeNode Text="链接按钮" NavigateUrl="~/button/button_linkbutton.aspx" >
</TreeNode>
<TreeNode Text="菜单按钮" NavigateUrl="~/button/button_menu.aspx" >
</TreeNode>
<TreeNode Text="菜单按钮MenuID属性" NavigateUrl="~/button/button_menu_menuid.aspx" >
</TreeNode>
<TreeNode Text="自定义按钮" NavigateUrl="~/button/button_custom.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="基本元素">
<TreeNode Text="文本标签" NavigateUrl="~/form/label.aspx" >
</TreeNode>
<TreeNode Text="超链接" NavigateUrl="~/form/hyperlink.aspx" >
</TreeNode>
<TreeNode Text="图片控件" NavigateUrl="~/form/image.aspx" >
</TreeNode>
<TreeNode Text="提示信息" NavigateUrl="~/form/tooltip.aspx" >
</TreeNode>
<TreeNode Text="日期控件" NavigateUrl="~/form/calendar.aspx" >
</TreeNode>
<TreeNode Text="日期控件(最小日期和最大日期)" NavigateUrl="~/form/calendar_mindate.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="输入框">
<TreeNode Text="文本框" NavigateUrl="~/form/textbox.aspx" >
</TreeNode>
<TreeNode Text="文本框自动回发" NavigateUrl="~/form/textbox_autopostback.aspx" >
</TreeNode>
<TreeNode Text="自动扩展高度" NavigateUrl="~/form/textarea_autogrow.aspx" >
</TreeNode>
<TreeNode Text="富文本编辑器" NavigateUrl="~/form/htmleditor.aspx" >
</TreeNode>
<TreeNode Text="触发器输入框" NavigateUrl="~/form/triggerbox.aspx" >
</TreeNode>
<TreeNode Text="两个触发器输入框" NavigateUrl="~/form/twintriggerbox.aspx" >
</TreeNode>
<TreeNode Text="数字输入框" NavigateUrl="~/form/numberbox.aspx" >
</TreeNode>
<TreeNode Text="日期选择框" NavigateUrl="~/form/datepicker.aspx" >
</TreeNode>
<TreeNode Text="日期选择框(自动回发)" NavigateUrl="~/form/datepicker_autopostback.aspx" >
</TreeNode>
<TreeNode Text="日期选择框(限制范围)" NavigateUrl="~/form/datepicker_range.aspx" >
</TreeNode>
<TreeNode Text="时间选择框" NavigateUrl="~/form/timepicker.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="选择框">
<TreeNode Text="复选框" NavigateUrl="~/form/checkbox.aspx" >
</TreeNode>
<TreeNode Text="复选框列表" NavigateUrl="~/form/checkboxlist.aspx" >
</TreeNode>
<TreeNode Text="更新复选框列表" NavigateUrl="~/form/checkboxlist_update.aspx" >
</TreeNode>
<TreeNode Text="单选框" NavigateUrl="~/form/radiobutton.aspx" >
</TreeNode>
<TreeNode Text="单选框列表" NavigateUrl="~/form/radiobuttonlist.aspx" >
</TreeNode>
<TreeNode Text="更新单选框列表" NavigateUrl="~/form/radiobuttonlist_update.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="表单验证">
<TreeNode Text="表单验证" NavigateUrl="~/form/form_compare.aspx" >
</TreeNode>
<TreeNode Text="验证多个表单" NavigateUrl="~/form/form.aspx" >
</TreeNode>
<TreeNode Text="服务器端验证" NavigateUrl="~/form/form_validate.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="上传控件">
<TreeNode Text="上传控件" NavigateUrl="~/form/fileupload.aspx" >
</TreeNode>
<TreeNode Text="上传控件(自动回发)" NavigateUrl="~/form/fileupload_autopostback.aspx" >
</TreeNode>
<TreeNode Text="工具栏中的上传控件" NavigateUrl="~/form/fileupload_toolbar.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="表单布局">
<TreeNode Text="按钮与表单" NavigateUrl="~/form/layout_panel.aspx" >
</TreeNode>
<TreeNode Text="复杂布局(列布局)" NavigateUrl="~/form/layout_panel_column.aspx" >
</TreeNode>
<TreeNode Text="复杂布局(联系我们)" NavigateUrl="~/form/layout_contactus.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="复杂布局(账单信息)" NavigateUrl="~/form/layout_checkout.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="按钮水平居中" NavigateUrl="~/form/form_center_button.aspx" >
</TreeNode>
<TreeNode Text="标签文本水平居中" NavigateUrl="~/form/layout_center_label.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="表单中的多行按钮" NavigateUrl="~/form/layout_multiline_buttons.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="下拉列表控件">
<TreeNode Text="下拉列表" NavigateUrl="~/dropdownlist/dropdownlist.aspx" >
</TreeNode>
<!--<TreeNode Text="下拉列表(选项值可为空)" NavigateUrl="~/dropdownlist/dropdownlist_emptyvalue.aspx" >
</TreeNode>-->
<TreeNode Text="下拉列表(可编辑,强制选择)" NavigateUrl="~/dropdownlist/dropdownlist_enableedit.aspx" >
</TreeNode>
<TreeNode Text="下拉列表(可编辑,不强制选择)" NavigateUrl="~/dropdownlist/dropdownlist_forceselection.aspx" >
</TreeNode>
<TreeNode Text="数据绑定">
<TreeNode Text="绑定到简单列表" NavigateUrl="~/dropdownlist/databind/dropdownlist_simplelist.aspx" >
</TreeNode>
<TreeNode Text="绑定到复合列表" NavigateUrl="~/dropdownlist/databind/dropdownlist_compositelist.aspx" >
</TreeNode>
<TreeNode Text="绑定到 DataTable" NavigateUrl="~/dropdownlist/databind/dropdownlist_datatable.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="多选">
<TreeNode Text="多选" NavigateUrl="~/dropdownlist/multiselect.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="多选(可编辑,强制选择)" NavigateUrl="~/dropdownlist/multiselect_enableedit.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="事件">
<TreeNode Text="下拉列表(自动回发)" NavigateUrl="~/dropdownlist/dropdownlist_autopostback.aspx" >
</TreeNode>
<TreeNode Text="下拉列表(自动回发,可编辑,强制选择)" NavigateUrl="~/dropdownlist/dropdownlist_autopostback_enableedit.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="下拉列表(自动回发,可编辑,不强制选择)" NavigateUrl="~/dropdownlist/dropdownlist_autopostback_enableedit_noforceselection.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="下拉列表(多选,自动回发)" NavigateUrl="~/dropdownlist/multiselect_autopostback.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="下拉列表(多选,自动回发,可编辑,强制选择)" NavigateUrl="~/dropdownlist/multiselect_autopostback_enableedit.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="下拉列表(不自动回发,定义了回发事件)" NavigateUrl="~/dropdownlist/dropdownlist_no_autopostback.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="杂项">
<TreeNode Text="模拟树的下拉列表" NavigateUrl="~/dropdownlist/dropdownlist_simulate_tree.aspx" >
</TreeNode>
<TreeNode Text="中国省市县联动" NavigateUrl="~/dropdownlist/shengshixian.aspx" >
</TreeNode>
<TreeNode Text="下拉列表(自动获取焦点)" NavigateUrl="~/dropdownlist/dropdownlist_focus.aspx" >
</TreeNode>
<TreeNode Text="下拉列表(选项值可为空)" NavigateUrl="~/dropdownlist/dropdownlist_emptyvalue.aspx" >
</TreeNode>
<TreeNode Text="下拉列表(初始值为空)" NavigateUrl="~/dropdownlist/dropdownlist_emptytext.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="下拉列表(初始值为空,可编辑,强制选择)" NavigateUrl="~/dropdownlist/dropdownlist_emptytext_enableedit.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="下拉列表MatchFieldWidth" NavigateUrl="~/dropdownlist/dropdownlist_matchfieldwidth.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="下拉列表MatchFieldWidth右侧空间不足" NavigateUrl="~/dropdownlist/dropdownlist_matchfieldwidth_right.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="下拉列表(单选,滚动条)" NavigateUrl="~/dropdownlist/dropdownlist_scroll.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="下拉列表(多选,滚动条)" NavigateUrl="~/dropdownlist/dropdownlist_multiselect_scroll.aspx" IsNew="true">
</TreeNode>
</TreeNode>
</TreeNode>
<TreeNode Text="杂项">
<TreeNode Text="重置表单" NavigateUrl="~/form/form_reset.aspx" >
</TreeNode>
<TreeNode Text="动态创建表单元素" NavigateUrl="~/form/form_dynamic.aspx" >
</TreeNode>
<TreeNode Text="隐藏表单字段" NavigateUrl="~/form/form_hide_field.aspx" >
</TreeNode>
<TreeNode Text="禁用与只读" NavigateUrl="~/form/form_disabled.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="自定义标签宽度和位置" NavigateUrl="~/form/form_labelwidth.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="标签换行" NavigateUrl="~/form/form_longlabel.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="ColumnWidths混合使用百分比和固定宽度" NavigateUrl="~/form/form_columnwidths.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="输入框文本居中" NavigateUrl="~/form/form_textalign.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="自定义触发器输入框图标" NavigateUrl="~/form/triggerbox_triggerboxurl.aspx" IsNew="true" >
</TreeNode>
</TreeNode>
</TreeNode>
<TreeNode Text="表格控件" Icon="ApplicationViewColumns">
<TreeNode Text="基本用法">
<TreeNode Text="表格FineUI" NavigateUrl="~/grid/grid.aspx" >
</TreeNode>
<TreeNode Text="表格AspNet" NavigateUrl="~/grid/grid_aspnet.aspx" >
</TreeNode>
<TreeNode Text="内存分页FineUI" NavigateUrl="~/grid/grid_paging_fineui.aspx" >
</TreeNode>
<TreeNode Text="内存分页AspNet" NavigateUrl="~/grid/grid_paging_aspnet.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="分页与排序">
<TreeNode Text="排序" NavigateUrl="~/grid/grid_sorting.aspx" >
</TreeNode>
<TreeNode Text="排序(初始不排序)" NavigateUrl="~/grid/grid_sorting_nosortfield.aspx" >
</TreeNode>
<TreeNode Text="内存分页" NavigateUrl="~/grid/grid_paging.aspx" >
</TreeNode>
<TreeNode Text="数据库分页" NavigateUrl="~/grid/grid_paging_database.aspx" >
</TreeNode>
<TreeNode Text="内存分页与排序" NavigateUrl="~/grid/grid_paging_sorting.aspx" >
</TreeNode>
<TreeNode Text="数据库分页与排序" NavigateUrl="~/grid/grid_paging_database_sorting.aspx" >
</TreeNode>
<TreeNode Text="内存分页(跨页保持选中行)" NavigateUrl="~/grid/grid_paging_selection.aspx" >
</TreeNode>
<TreeNode Text="数据库分页(跨页保持选中行)" NavigateUrl="~/grid/grid_paging_database_selection.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="序号列">
<TreeNode Text="序号列(内存分页)" NavigateUrl="~/grid/grid_rownumber_paging.aspx" >
</TreeNode>
<TreeNode Text="序号列(数据库分页)" NavigateUrl="~/grid/grid_rownumber_paging_database.aspx" >
</TreeNode>
<TreeNode Text="序号列(自定义宽度)" NavigateUrl="~/grid/grid_rownumber_width.aspx" >
</TreeNode>
<TreeNode Text="序号列(靠左显示)" NavigateUrl="~/grid/grid_rownumber_align.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="行选择">
<TreeNode Text="行选择(多选)" NavigateUrl="~/grid/grid_checkall.aspx" >
</TreeNode>
<TreeNode Text="行选择(单选)" NavigateUrl="~/grid/grid_checkall_singleselect.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="行选择(只能通过全选框选中行)" NavigateUrl="~/grid/grid_checkall_only.aspx" >
</TreeNode>
<TreeNode Text="行选择(保持选中行)" NavigateUrl="~/grid/grid_checkall_keepcurrentselection.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="扩展列">
<TreeNode Text="行扩展列" NavigateUrl="~/grid/grid_rowexpander.aspx" >
</TreeNode>
<TreeNode Text="行扩展列(展开全部)" NavigateUrl="~/grid/grid_rowexpander_expandall.aspx" >
</TreeNode>
<TreeNode Text="行扩展列(嵌套表格)" NavigateUrl="~/grid/grid_rowexpander_grid.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="弹出窗体列" NavigateUrl="~/grid/grid_iframe.aspx" >
</TreeNode>
<TreeNode Text="模拟树列" NavigateUrl="~/grid/grid_simulate_tree.aspx" >
</TreeNode>
<TreeNode Text="模拟树列(数据库分页)" NavigateUrl="~/grid/grid_simulate_tree_database_paging.aspx" >
</TreeNode>
<TreeNode Text="模拟树列(数据库分页,下拉列表定位省份)" NavigateUrl="~/grid/grid_simulate_tree_database_paging_dropdownlist.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="事件">
<TreeNode Text="行内按钮事件" NavigateUrl="~/grid/grid_rowcommand.aspx" >
</TreeNode>
<TreeNode Text="行内按钮事件(内存分页)" NavigateUrl="~/grid/grid_rowcommand_paging.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="行内按钮事件(数据库分页)" NavigateUrl="~/grid/grid_rowcommand_paging_database.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="行绑定事件" NavigateUrl="~/grid/grid_rowdatabound.aspx" >
</TreeNode>
<TreeNode Text="行预绑定事件" NavigateUrl="~/grid/grid_prerowdatabound.aspx" >
</TreeNode>
<TreeNode Text="行预绑定事件Cancelled属性" IsNew="true" NavigateUrl="~/grid/grid_prerowdatabound_cancelled.aspx" >
</TreeNode>
<TreeNode Text="行单击回发事件" NavigateUrl="~/grid/grid_rowclick.aspx">
</TreeNode>
<TreeNode Text="行双击回发事件" NavigateUrl="~/grid/grid_rowdoubleclick.aspx">
</TreeNode>
<TreeNode Text="行选中事件(取消选中事件)" NavigateUrl="~/grid/grid_rowselect.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="复选框列">
<TreeNode Text="复选框列" NavigateUrl="~/grid/grid_checkboxfield.aspx" >
</TreeNode>
<TreeNode Text="复选框列(自动回发)" NavigateUrl="~/grid/grid_checkboxfield_autopostback.aspx" >
</TreeNode>
<TreeNode Text="全选复选框列" NavigateUrl="~/grid/grid_checkboxfield_rowcheckall.aspx" >
</TreeNode>
<TreeNode Text="全选复选框列(客户端实现)" NavigateUrl="~/grid/grid_checkboxfield_rowcheckall_clientside.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="动态创建列">
<TreeNode Text="动态创建的列" NavigateUrl="~/grid/grid_dynamic_columns.aspx" >
</TreeNode>
<TreeNode Text="动态创建的模板列" NavigateUrl="~/grid/grid_dynamic_columns2.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="导出与下载">
<TreeNode Text="导出文件ASP.NET的GridView控件" NavigateUrl="~/grid/grid_excel_aspnet.aspx" >
</TreeNode>
<TreeNode Text="导出文件RenderControl重新渲染模板列" NavigateUrl="~/grid/grid_excel.aspx" >
</TreeNode>
<TreeNode Text="导出文件(动态创建的模版列)" NavigateUrl="~/grid/grid_excel_dynamic_columns.aspx" >
</TreeNode>
<TreeNode Text="导出文件(选择需要导出的列)" NavigateUrl="~/grid/grid_excel_selectcolumns.aspx" >
</TreeNode>
<TreeNode Text="导出文件FindControl查找模板列中控件" NavigateUrl="~/grid/grid_excel_findcontrol.aspx" >
</TreeNode>
<TreeNode Text="导出文件(多表头)" NavigateUrl="~/grid/grid_excel_groupfield.aspx" >
</TreeNode>
<TreeNode Text="行内下载" NavigateUrl="~/grid/grid_rowcommand_download.aspx" >
</TreeNode>
<TreeNode Text="导出文件(双击下载)" NavigateUrl="~/grid/grid_excel_dblclick_download.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="分页工具栏">
<TreeNode Text="重新绑定数据" NavigateUrl="~/grid/grid_pageitems.aspx" >
</TreeNode>
<TreeNode Text="显示隐藏行扩展列" NavigateUrl="~/grid/grid_pageitems_rowexpander.aspx" >
</TreeNode>
<TreeNode Text="改变每页记录数" NavigateUrl="~/grid/grid_pageitems_pagesize.aspx" >
</TreeNode>
<TreeNode Text="改变每页记录数(数据库分页)" NavigateUrl="~/grid/grid_pageitems_pagesize_database.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="列宽度">
<TreeNode Text="固定各列宽度" NavigateUrl="~/grid/grid_width.aspx" >
</TreeNode>
<TreeNode Text="自适应列(一列)" NavigateUrl="~/grid/grid_width_expandunusedspace.aspx" >
</TreeNode>
<TreeNode Text="自适应列(多列)" NavigateUrl="~/grid/grid_width_boxflex.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="各列宽度自适应" NavigateUrl="~/grid/grid_width_forcefit.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="各列宽度自适应(最小列宽度)" NavigateUrl="~/grid/grid_width_forcefit_minwidth.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="标题栏菜单">
<TreeNode Text="隐藏标题栏" NavigateUrl="~/grid/grid_header_hide.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="禁用表头菜单" NavigateUrl="~/grid/grid_header_disablemenu.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="模板列">
<TreeNode Text="编辑文本框" NavigateUrl="~/grid/grid_edit.aspx" >
</TreeNode>
<TreeNode Text="编辑下拉列表" NavigateUrl="~/grid/grid_edit_dropdownlist.aspx" >
</TreeNode>
<TreeNode Text="编辑下拉列表(后台绑定数据)" NavigateUrl="~/grid/grid_edit_dropdownlist2.aspx" >
</TreeNode>
<TreeNode Text="后台更新下拉列表" NavigateUrl="~/grid/grid_edit_dropdownlist_update.aspx" >
</TreeNode>
<TreeNode Text="编辑单选框列表" NavigateUrl="~/grid/grid_edit_radiobuttonlist.aspx" >
</TreeNode>
<TreeNode Text="编辑复选框列表" NavigateUrl="~/grid/grid_edit_checkboxlist.aspx" >
</TreeNode>
<TreeNode Text="比较两个模板列的值" NavigateUrl="~/grid/grid_edit_compare.aspx" >
</TreeNode>
<TreeNode Text="下拉列表同步到文本框" NavigateUrl="~/grid/grid_edit_dropdownlist_textbox.aspx" >
</TreeNode>
<TreeNode Text="定时保存用户输入的值" NavigateUrl="~/grid/grid_edit_save_auto.aspx" >
</TreeNode>
<TreeNode Text="遍历表格内所有输入框(纵向)" NavigateUrl="~/grid/grid_edit_enterkey_v.aspx" >
</TreeNode>
<TreeNode Text="遍历表格内所有输入框(横向)" NavigateUrl="~/grid/grid_edit_enterkey_h.aspx" >
</TreeNode>
<TreeNode Text="购物车" NavigateUrl="~/grid/grid_edit_cart.aspx" IsNew="true" >
</TreeNode>
</TreeNode>
<TreeNode Text="多表头">
<TreeNode Text="多表头" NavigateUrl="~/grid/grid_groupheader.aspx" >
</TreeNode>
<TreeNode Text="多表头(排序)" NavigateUrl="~/grid/grid_groupheader_sort.aspx" >
</TreeNode>
<TreeNode Text="多表头(初始隐藏列)" NavigateUrl="~/grid/grid_groupheader_hidden.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="合计行">
<TreeNode Text="合计行" NavigateUrl="~/grid/grid_summary.aspx" >
</TreeNode>
<TreeNode Text="合计行(当前页合计)" NavigateUrl="~/grid/grid_summary_currentpage.aspx" >
</TreeNode>
<TreeNode Text="合计行(横向纵向滚动条)" NavigateUrl="~/grid/grid_summary_scrollbar_flow.aspx" >
</TreeNode>
<TreeNode Text="合计行(浮动到底部,横向纵向滚动条)" NavigateUrl="~/grid/grid_summary_scrollbar_bottom.aspx" >
</TreeNode>
<TreeNode Text="合计行(浮动到顶部,横向纵向滚动条,当前页合计)" NavigateUrl="~/grid/grid_summary_scrollbar_top.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="单元格编辑">
<TreeNode Text="单元格编辑" NavigateUrl="~/grid/grid_editor_cell.aspx" >
</TreeNode>
<TreeNode Text="单元格渲染函数RendererFunction" NavigateUrl="~/grid/grid_editor_cell_renderfunction.aspx" >
</TreeNode>
<TreeNode Text="新增删除">
<TreeNode Text="服务器端删除行" NavigateUrl="~/grid/grid_editor_cell_delete.aspx" >
</TreeNode>
<TreeNode Text="新增行" NavigateUrl="~/grid/grid_editor_cell_new.aspx" >
</TreeNode>
<TreeNode Text="新增行(定位到某一列)" NavigateUrl="~/grid/grid_editor_cell_new_editcolumnid.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="新增行与删除行" NavigateUrl="~/grid/grid_editor_cell_newdelete.aspx" >
</TreeNode>
<TreeNode Text="新增行与删除行GetMergedData" NavigateUrl="~/grid/grid_editor_cell_newdelete_getmergeddata.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="结束编辑">
<TreeNode Text="结束编辑" NavigateUrl="~/grid/grid_editor_cell_afteredit.aspx" >
</TreeNode>
<TreeNode Text="结束编辑(姓名不能为空)" NavigateUrl="~/grid/grid_editor_cell_client_validate.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="结束编辑(高亮单元格)" NavigateUrl="~/grid/grid_editor_cell_renderfunction_complex.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="结束编辑(更新单元格的值)" NavigateUrl="~/grid/grid_editor_cell_updatecellvalue.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="结束编辑(更新非可编辑单元格的值)" NavigateUrl="~/grid/grid_editor_cell_updatecellvalue_noedit.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="结束编辑(绑定数据后选中单元格)" NavigateUrl="~/grid/grid_editor_cell_afteredit_selectcell.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="杂项">
<TreeNode Text="后台绑定下拉列表" NavigateUrl="~/grid/grid_editor_cell_databind.aspx" >
</TreeNode>
<TreeNode Text="行扩展列与单元格编辑" NavigateUrl="~/grid/grid_editor_cell_afteredit_rowexpander.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="行扩展列与新增删除行" NavigateUrl="~/grid/grid_editor_cell_newdelete_rowexpander.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="多行文本输入框" NavigateUrl="~/grid/grid_editor_cell_textarea.aspx" IsNew="true" >
</TreeNode>
</TreeNode>
</TreeNode>
<TreeNode Text="列锁定">
<TreeNode Text="列锁定" NavigateUrl="~/grid/grid_lockcolumn.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="列锁定(行扩展列)" NavigateUrl="~/grid/grid_lockcolumn_rowexpander.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="列锁定(多表头)" NavigateUrl="~/grid/grid_lockcolumn_groupheader_sort.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="列锁定(合计行)" NavigateUrl="~/grid/grid_lockcolumn_summary_scrollbar.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="列锁定(单元格编辑)" NavigateUrl="~/grid/grid_lockcolumn_editor_cell_new.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="列锁定(自动换行)" NavigateUrl="~/grid/grid_lockcolumn_line_wrap.aspx" IsNew="true">
</TreeNode>
<!--<TreeNode Text="列锁定(多列,多行,行高不同)" NavigateUrl="~/grid/grid_lockcolumn_many_columns.aspx" >
</TreeNode>-->
</TreeNode>
<TreeNode Text="行与列样式">
<TreeNode Text="行样式" NavigateUrl="~/grid/grid_style_rowcolor.aspx" >
</TreeNode>
<TreeNode Text="行样式(数据库分页)" NavigateUrl="~/grid/grid_style_rowcolor_paging_database.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="行样式(内存分页)" NavigateUrl="~/grid/grid_style_rowcolor_paging.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="列样式" NavigateUrl="~/grid/grid_style_columnclass.aspx" IsNew="true" >
</TreeNode>
</TreeNode>
<TreeNode Text="杂项">
<TreeNode Text="主从表联动" NavigateUrl="~/grid/grid_twogrid.aspx" >
</TreeNode>
<TreeNode Text="文本居中显示(标题靠左)" NavigateUrl="~/grid/grid_centercolumn.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="显示隐藏列" NavigateUrl="~/grid/grid_hidecolumn.aspx" >
</TreeNode>
<TreeNode Text="绑定到二级属性" NavigateUrl="~/grid/grid_complex_property.aspx" >
</TreeNode>
<TreeNode Text="启用文字选择" NavigateUrl="~/grid/grid_textselection.aspx" >
</TreeNode>
<TreeNode Text="文字垂直靠上显示" NavigateUrl="~/grid/grid_text_top.aspx" >
</TreeNode>
<TreeNode Text="列分割线" NavigateUrl="~/grid/grid_column_lines.aspx" >
</TreeNode>
<TreeNode Text="表格为空的提示" NavigateUrl="~/grid/grid_empty_text.aspx" >
</TreeNode>
<TreeNode Text="自动换行" NavigateUrl="~/grid/grid_line_wrap.aspx" >
</TreeNode>
<TreeNode Text="右键菜单(全选复选框列)" NavigateUrl="~/grid/grid_checkboxfield_rowcheckall_contextmenu.aspx" >
</TreeNode>
<TreeNode Text="在新标签页中打开" NavigateUrl="~/grid/grid_newtab.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="在新标签页中打开(同一个标签页)" NavigateUrl="~/grid/grid_newtab_sametab.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="在新标签页中打开(关闭后刷新父选项卡)" NavigateUrl="~/grid/grid_newtab_hiderefresh.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="在新标签页中打开(关闭后更新父选项卡)" NavigateUrl="~/grid/grid_newtab_hideupdate.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="隐藏表格标题栏" NavigateUrl="~/grid/grid_hide_gridheader.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="底部工具栏(分页栏也存在)" NavigateUrl="~/grid/grid_paging_database_bbar.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="多列23列36行" NavigateUrl="~/grid/grid_many_columns.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="多列23列36行列锁定行高不同" NavigateUrl="~/grid/grid_lockcolumn_many_columns.aspx" IsNew="true">
</TreeNode>
</TreeNode>
</TreeNode>
<TreeNode Text="更多控件" Icon="Bricks">
<TreeNode Text="树控件">
<TreeNode Text="简单树控件" NavigateUrl="~/tree/tree.aspx" >
</TreeNode>
<TreeNode Text="图标与链接" NavigateUrl="~/tree/tree_icon.aspx" >
</TreeNode>
<TreeNode Text="延迟加载的树控件" NavigateUrl="~/tree/tree_ajax.aspx" >
</TreeNode>
<TreeNode Text="数据绑定">
<TreeNode Text="绑定到 XmlDocument" NavigateUrl="~/tree/databind/tree_document.aspx" >
</TreeNode>
<TreeNode Text="绑定到 XmlDataSource" NavigateUrl="~/tree/databind/tree_datasource.aspx" >
</TreeNode>
<TreeNode Text="绑定到 SiteMap" NavigateUrl="~/tree/databind/tree_sitemap.aspx" >
</TreeNode>
<TreeNode Text="绑定到 DataTable" NavigateUrl="~/tree/databind/tree_datatable.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="复选框">
<TreeNode Text="简单复选框" NavigateUrl="~/tree/checkbox/tree_checked.aspx" >
</TreeNode>
<TreeNode Text="全选与反选" NavigateUrl="~/tree/checkbox/tree_checkall.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="行选择">
<TreeNode Text="选中一行" NavigateUrl="~/tree/select/tree_select.aspx" >
</TreeNode>
<TreeNode Text="选中多行" NavigateUrl="~/tree/select/tree_multi_select.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="事件">
<TreeNode Text="选中行事件" NavigateUrl="~/tree/select/tree_nodecommand.aspx" >
</TreeNode>
<TreeNode Text="展开折叠事件" NavigateUrl="~/tree/tree_expand.aspx" >
</TreeNode>
<TreeNode Text="节点绑定事件" NavigateUrl="~/tree/tree_nodedatabound.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="杂项">
<TreeNode Text="右键菜单(展开全部子节点)" NavigateUrl="~/tree/tree_contextmenu.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="同级节点只能展开一个" NavigateUrl="~/tree/tree_singleexpand.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="启用文字选择" NavigateUrl="~/tree/tree_textselection.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="节点样式" NavigateUrl="~/tree/tree_node_cssclass.aspx" IsNew="true">
</TreeNode>
</TreeNode>
</TreeNode>
<TreeNode Text="选项卡控件">
<TreeNode Text="基本用法" NavigateUrl="~/tabstrip/tabstrip.aspx" >
</TreeNode>
<TreeNode Text="自动回发" NavigateUrl="~/tabstrip/tabstrip_autopostback.aspx" >
</TreeNode>
<TreeNode Text="关闭按钮" NavigateUrl="~/tabstrip/tabstrip_enableclose.aspx" >
</TreeNode>
<TreeNode Text="动态添加标签" NavigateUrl="~/tabstrip/tabstrip_addtab.aspx" >
</TreeNode>
<TreeNode Text="内嵌 IFrame" NavigateUrl="~/tabstrip/tabstrip_iframe.aspx" >
</TreeNode>
<TreeNode Text="内嵌 IFrame在IFrame内启用标签" NavigateUrl="~/tabstrip/tabstrip_iframe_disabled.aspx" >
</TreeNode>
<TreeNode Text="选项卡的位置" NavigateUrl="~/tabstrip/tabstrip_position.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="手风琴控件">
<TreeNode Text="手风琴" NavigateUrl="~/accordion/accordion.aspx" >
</TreeNode>
<TreeNode Text="手风琴(自动回发)" NavigateUrl="~/accordion/accordion_autopostback.aspx" >
</TreeNode>
<TreeNode Text="手风琴(树控件)" NavigateUrl="~/accordion/accordion_tree.aspx" >
</TreeNode>
<TreeNode Text="手风琴(禁用填充)" NavigateUrl="~/accordion/accordion_fill.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="面板与窗体">
<TreeNode Text="面板" NavigateUrl="~/window/panel.aspx" >
</TreeNode>
<TreeNode Text="面板的折叠事件" NavigateUrl="~/window/panel_collapse.aspx" >
</TreeNode>
<TreeNode Text="面板(初始禁用)" NavigateUrl="~/window/panel_disabled.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="分组面板" NavigateUrl="~/window/group_panel.aspx" >
</TreeNode>
<TreeNode Text="窗体" NavigateUrl="~/window/window.aspx" >
</TreeNode>
<TreeNode Text="窗体(最大化)" NavigateUrl="~/window/window_maximized.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="窗体(固定最大化)" NavigateUrl="~/window/window_maximized_fixed.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="窗体(限制最小和最大尺寸)" NavigateUrl="~/window/window_minwidth.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="窗体与工具栏" NavigateUrl="~/window/window_toolbar.aspx" >
</TreeNode>
<TreeNode Text="窗体与表单" NavigateUrl="~/window/window_form.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="同时打开多个窗体" NavigateUrl="~/window/window_multi.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="工具栏和菜单">
<TreeNode Text="内联菜单" NavigateUrl="~/toolbar/menu.aspx" >
</TreeNode>
<TreeNode Text="内联菜单HideOnClick" NavigateUrl="~/toolbar/menu_hideonclick.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="动态添加工具栏菜单" NavigateUrl="~/toolbar/menu_dynamic.aspx" >
</TreeNode>
<TreeNode Text="向工具栏中动态添加按钮" NavigateUrl="~/toolbar/menu_dynamic2.aspx" >
</TreeNode>
<TreeNode Text="工具栏与IFrame页面" NavigateUrl="~/toolbar/toolbar_iframe.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="单选框与复选框菜单" NavigateUrl="~/toolbar/menucheckbox.aspx" >
</TreeNode>
<TreeNode Text="多行工具栏" NavigateUrl="~/toolbar/multi_toolbars.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="工具栏上的表单字段" NavigateUrl="~/toolbar/formfields.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="工具栏上的图片(固定宽度)" NavigateUrl="~/toolbar/toolbar_images_fixedwidth.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="工具栏上的图片(动态调整)" NavigateUrl="~/toolbar/toolbar_images.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="工具栏布局(左中右)" NavigateUrl="~/toolbar/toolbar_fill.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="用户控件">
<TreeNode Text="用户控件" NavigateUrl="~/usercontrol/userinfo.aspx" >
</TreeNode>
<TreeNode Text="动态添加用户控件" NavigateUrl="~/usercontrol/userinfo_dynamic.aspx" >
</TreeNode>
<TreeNode Text="用户控件与布局" NavigateUrl="~/usercontrol/userinfo2.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="母版页">
<TreeNode Text="树(布局)" NavigateUrl="~/master/simple.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="表格(布局、接口与动态加载)" NavigateUrl="~/master/list.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="表格与表单(布局、接口与动态加载)" NavigateUrl="~/master/formlist.aspx" IsNew="true">
</TreeNode>
</TreeNode>
</TreeNode>
<TreeNode Text="页面布局" Icon="LayoutContent">
<TreeNode Text="布局Fit" NavigateUrl="~/layout/fit.aspx" >
</TreeNode>
<TreeNode Text="布局Anchor" NavigateUrl="~/layout/anchor.aspx" >
</TreeNode>
<TreeNode Text="布局Column" NavigateUrl="~/layout/column.aspx" >
</TreeNode>
<TreeNode Text="布局Column纵向滚动条" NavigateUrl="~/layout/column_scrollbar.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局Column自动高度" NavigateUrl="~/layout/column_autoheight.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局Absolute" NavigateUrl="~/layout/absolute.aspx" >
</TreeNode>
<TreeNode Text="布局Table" NavigateUrl="~/layout/table.aspx" >
</TreeNode>
<TreeNode Text="布局TableTable布局的表单" NavigateUrl="~/layout/table_form.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局HBox" NavigateUrl="~/layout/hbox.aspx" >
</TreeNode>
<TreeNode Text="布局HBox横向滚动条" NavigateUrl="~/layout/hbox_scrollbar.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局HBox自动高度" NavigateUrl="~/layout/hbox_autoheight.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局HBox自动高度多层嵌套" NavigateUrl="~/layout/hbox_autoheight_multilevels.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局HBox横向表单" NavigateUrl="~/layout/hbox_form.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局VBox" NavigateUrl="~/layout/vbox.aspx" >
</TreeNode>
<TreeNode Text="布局VBox纵向滚动条" NavigateUrl="~/layout/vbox_scrollbar.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局VBox自动高度" NavigateUrl="~/layout/vbox_autoheight.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局VBox表单" NavigateUrl="~/layout/vbox_form.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局VBox表单与表格纵向滚动条" NavigateUrl="~/layout/vbox_formgrid.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局VBox折叠面板" NavigateUrl="~/layout/vbox_collapse.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局VBox+HBox平分当前页面" NavigateUrl="~/layout/vbox_hbox.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="布局Region" NavigateUrl="~/layout/region.aspx" IsNew="true" >
</TreeNode>
</TreeNode>
<TreeNode Text="内联框架" Icon="ApplicationDouble">
<TreeNode Text="弹出窗体(本页面或父页面)" NavigateUrl="~/iframe/button_iframe.aspx" >
</TreeNode>
<TreeNode Text="表格与编辑窗体" NavigateUrl="~/iframe/grid_iframe.aspx" >
</TreeNode>
<TreeNode Text="子窗口向父窗口传值" NavigateUrl="~/iframe/passvalue_iframe.aspx" >
</TreeNode>
<TreeNode Text="新窗口中选择省份JavaScript实现" NavigateUrl="~/iframe/selectprovince1.aspx" >
</TreeNode>
<TreeNode Text="新窗口中选择省份GetHidePostBackReference" NavigateUrl="~/iframe/selectprovince3.aspx" >
</TreeNode>
<TreeNode Text="新窗口中选择省份GetHideExecuteScriptReference" NavigateUrl="~/iframe/selectprovince_executescript.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="触发器输入框(传值)" NavigateUrl="~/iframe/triggerbox_iframe.aspx" >
</TreeNode>
<TreeNode Text="窗体中的窗体" NavigateUrl="~/iframe/iframe_iframe.aspx">
</TreeNode>
<TreeNode Text="回发父页面" NavigateUrl="~/iframe/parent_postback.aspx" >
</TreeNode>
<TreeNode Text="回发父页面(改变属性或者注册脚本)" NavigateUrl="~/iframe/parent_postback_top.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="顶部菜单框架(左侧树)" NavigateUrl="~/iframe/topmenu/default.aspx" >
</TreeNode>
<TreeNode Text="顶部菜单框架左侧IFrame中的树" NavigateUrl="~/iframe/topmenu2/default.aspx" >
</TreeNode>
<TreeNode Text="顶部菜单框架左侧IFrame中的手风琴" NavigateUrl="~/iframe/topmenu3/default.aspx" >
</TreeNode>
<TreeNode Text="顶部菜单框架(右侧选项卡)" NavigateUrl="~/iframe/topmenu4/default.aspx" >
</TreeNode>
<TreeNode Text="窗体关闭前的确认对话框" NavigateUrl="~/iframe/window.aspx" >
</TreeNode>
<TreeNode Text="保存按钮放在窗体工具栏中" NavigateUrl="~/iframe/window2.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="其他杂项" Icon="AsteriskOrange">
<TreeNode Text="第三方组件">
<TreeNode Text="My97日期控件">
<TreeNode Text="My97日期控件" NavigateUrl="~/third-party/my97/my97.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="jQueryUI Autocomplete">
<TreeNode Text="内联数据" NavigateUrl="~/third-party/autocomplete/inline.aspx" >
</TreeNode>
<TreeNode Text="内联数据位于Window控件中" NavigateUrl="~/third-party/autocomplete/inline_window.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="自动补全邮件地址" NavigateUrl="~/third-party/autocomplete/email.aspx" >
</TreeNode>
<TreeNode Text="多行显示补全数据" NavigateUrl="~/third-party/autocomplete/custom_display.aspx" >
</TreeNode>
<TreeNode Text="输入逗号分隔的多个值" NavigateUrl="~/third-party/autocomplete/multi_values.aspx" >
</TreeNode>
<TreeNode Text="输入多值(数据来自远程服务器)" NavigateUrl="~/third-party/autocomplete/multi_values_remote.aspx" >
</TreeNode>
<TreeNode Text="客户端缓存(数据来自远程服务器)" NavigateUrl="~/third-party/autocomplete/remote_with_cache.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="UMEditor">
<TreeNode Text="UMEditor" NavigateUrl="~/third-party/umeditor/umeditor.aspx" >
</TreeNode>
<TreeNode Text="UMEditor后台赋值" NavigateUrl="~/third-party/umeditor/umeditor_setvalue.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="UEditor">
<TreeNode Text="UEditor" NavigateUrl="~/third-party/ueditor/ueditor.aspx" >
</TreeNode>
<TreeNode Text="UEditor后台赋值" NavigateUrl="~/third-party/ueditor/ueditor_setvalue.aspx" >
</TreeNode>
<TreeNode Text="UEditor两个编辑器" NavigateUrl="~/third-party/ueditor/ueditor_two.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="CKEditor">
<TreeNode Text="CKEditor" NavigateUrl="~/third-party/ckeditor/ckeditor.aspx" >
</TreeNode>
<TreeNode Text="CKEditor后台赋值" NavigateUrl="~/third-party/ckeditor/ckeditor_setvalue.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="TinyMCE">
<TreeNode Text="TinyMCE" NavigateUrl="~/third-party/tinymce/tinymce.aspx" >
</TreeNode>
<TreeNode Text="TinyMCE后台赋值" NavigateUrl="~/third-party/tinymce/tinymce_setvalue.aspx" >
</TreeNode>
</TreeNode>
</TreeNode>
<TreeNode Text="ASP.NET控件">
<TreeNode Text="ASP.NET 控件" NavigateUrl="~/aspnet/aspnet.aspx" >
</TreeNode>
<TreeNode Text="Label与Literal的区别" NavigateUrl="~/aspnet/aspnet_literal.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="消息框">
<TreeNode Text="自定义对话框图标" NavigateUrl="~/message/alert.aspx">
</TreeNode>
<TreeNode Text="响应确认对话框的按钮" NavigateUrl="~/message/confirm_cancel.aspx">
</TreeNode>
<TreeNode Text="响应确认对话框的按钮PageManager的CustomEvent事件" NavigateUrl="~/message/confirm_cancel_customevent.aspx">
</TreeNode>
<TreeNode Text="响应确定按钮(点击确定按钮后,下载文件)" NavigateUrl="~/message/alert_download.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="响应确定按钮(点击确定按钮后,先隐藏窗体再下载文件)" NavigateUrl="~/message/alert_download_hide.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="响应确定按钮点击确定按钮后先隐藏IFrame窗体再下载文件" NavigateUrl="~/message/alert_download_hideiframe.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="自定义对话框按钮文本" NavigateUrl="~/message/confirm_buttons.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="页面回发提示" NavigateUrl="~/other/ajax_loading.aspx">
</TreeNode>
<TreeNode Text="定时器" NavigateUrl="~/other/timer.aspx" >
</TreeNode>
<TreeNode Text="自定义回发__doPostBack" NavigateUrl="~/other/custom_postback.aspx">
</TreeNode>
<TreeNode Text="自定义回发F.customEvent" NavigateUrl="~/other/custom_postback2.aspx">
</TreeNode>
<TreeNode Text="文本框改变客户端事件" NavigateUrl="~/other/keydown.aspx">
</TreeNode>
<TreeNode Text="CssClass属性" NavigateUrl="~/other/cssstyle.aspx">
</TreeNode>
<TreeNode Text="向父页面添加选项卡" NavigateUrl="~/other/addtab.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="捕获全局JavaScript错误" NavigateUrl="~/other/global_error.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="拦截服务器端重定向(模拟登陆超时,同步确认对话框)" NavigateUrl="~/other/authentication_timeout.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="拦截服务器端重定向(模拟登陆超时,异步确认对话框)" NavigateUrl="~/other/authentication_timeout_async.aspx" IsNew="true">
</TreeNode>
</TreeNode>
</Tree>

View File

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

View File

@ -0,0 +1,107 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
namespace FineUI.Examples
{
public partial class source : PageBase
{
protected void Page_Init(object sender, EventArgs e)
{
if (!IsPostBack)
{
string files = Request.QueryString["files"];
if (String.IsNullOrEmpty(files))
{
return;
}
if (!String.IsNullOrEmpty(files))
{
string[] fileNames = files.Split(';');
for (int i = 0; i < fileNames.Length; i++)
{
string fileName = fileNames[i];
string shortFileName = GetShortFileName(fileName);
string iframeUrl = "./source_file.aspx?file=" + fileName;
Tab tab = new Tab();
tab.Title = shortFileName;
tab.EnableIFrame = true;
tab.IFrameUrl = iframeUrl;
tab.IconUrl = GetIconUrl(tab.IFrameUrl);
TabStrip1.Tabs.Add(tab);
// End with .aspx.
if (fileName.ToLower().EndsWith(".aspx") || fileName.ToLower().EndsWith(".ashx") || fileName.ToLower().EndsWith(".ascx") || fileName.ToLower().EndsWith(".master"))
{
tab = new FineUI.Tab();
tab.Title = shortFileName + ".cs";
tab.EnableIFrame = true;
tab.IFrameUrl = iframeUrl + ".cs";
tab.IconUrl = GetIconUrl(tab.IFrameUrl);
TabStrip1.Tabs.Add(tab);
}
}
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
private string GetIconUrl(string url)
{
string suffix = url.Substring(url.LastIndexOf('.') + 1);
return "~/res/images/filetype/vs_" + suffix + ".png";
//string fileName = "vs_unknow.png";
//if (url.EndsWith(".aspx"))
//{
// fileName = "vs_aspx.png";
//}
//else if (url.EndsWith(".cs"))
//{
// fileName = "vs_cs.png";
//}
//else if (url.EndsWith(".xml"))
//{
// fileName = "vs_xml.png";
//}
//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 GetShortFileName(string fileName)
{
int index = fileName.LastIndexOf("/");
if (index >= 0)
{
return fileName.Substring(index + 1);
}
return fileName;
}
}
}

View File

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

View File

@ -0,0 +1,37 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="source_file.aspx.cs" Inherits="FineUI.Examples.source_file" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../res/google-code-prettify/prettify.css" rel="stylesheet" />
<style type="text/css">
body {
margin: 0;
padding: 0;
font-size: 13px;
background-color: White;
}
pre.prettyprint {
border: none;
margin: 0;
padding: 10px 5px 5px 15px;
color: #666;
}
li.L0, li.L1, li.L2, li.L3, li.L4,
li.L5, li.L6, li.L7, li.L8, li.L9 {
list-style-type: decimal !important;
background-color: #fff;
}
</style>
</head>
<body onload="prettyPrint();">
<form id="form1" runat="server">
<asp:Literal runat="server" ID="desc"></asp:Literal>
</form>
<script src="../res/google-code-prettify/prettify.js"></script>
<script src="../res/google-code-prettify/lang-basic.js"></script>
</body>
</html>

View File

@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
namespace FineUI.Examples
{
public partial class source_file : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string file = Request.QueryString["file"].ToLower();
if (file.StartsWith("http://") || file.StartsWith("https://"))
{
desc.Text = String.Format("<br/><br/><a href=\"{0}\" target=\"_blank\">在新窗口打开</a>", file);
return;
}
// 不是网站根目录下的文件
if (!UnderRootPath(file))
{
return;
}
// 不允许下载文件的目录
string basePath = GetBasePath(file);
List<string> disallowPaths = new List<string> { "bin", "obj", "upload", "res", "Properties" };
if (disallowPaths.Contains(basePath))
{
return;
}
// 只能下载指定类型文件
string fileType = GetFileType(file);
List<string> allowFileTypes = new List<string> { "aspx", "ascx", "master", "ashx", "cs", "xml" };
if (!allowFileTypes.Contains(fileType))
{
return;
}
string content = File.ReadAllText(Server.MapPath(file));
desc.Text = "<pre class=\"prettyprint\">" + HttpUtility.HtmlEncode(content) + "</pre>"; // linenums
}
}
private bool UnderRootPath(string fileName)
{
string filePath = Server.MapPath(fileName);
string rootPath = Server.MapPath("~/");
return filePath.StartsWith(rootPath);
}
private string GetBasePath(string fileName)
{
string filePath = Server.MapPath(fileName);
string rootPath = Server.MapPath("~/");
string basePath = filePath.Substring(rootPath.Length);
int slashIndex = basePath.IndexOf("\\");
if (slashIndex >= 0)
{
basePath = basePath.Substring(0, slashIndex);
}
return basePath;
}
private string GetFileType(string fileName)
{
string fileType = String.Empty;
int lastDotIndex = fileName.ToLower().LastIndexOf(".");
if (lastDotIndex >= 0)
{
fileType = fileName.Substring(lastDotIndex + 1);
}
return fileType;
}
}
}

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