This commit is contained in:
2024-05-08 10:17:02 +08:00
commit f2135bac5e
3844 changed files with 517549 additions and 0 deletions
+101
View File
@@ -0,0 +1,101 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajax.aspx.cs" Inherits="FineUIPro.Web.ajax" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
<style type="text/css">
ul.mainlist {
list-style-type: none;
margin: 0;
padding: 0;
}
ul.mainlist > li {
display: inline-block;
width: 250px;
margin: 0 10px 10px 0;
vertical-align: top;
}
ul.mainlist > li .ui-widget {
border-style: solid;
border-width: 1px;
}
ul.mainlist > li .ui-widget-header {
padding: 5px 5px;
border-bottom-width: 1px;
border-bottom-style: solid;
}
ul.mainlist > li .ajaxlist-container {
height: 220px;
overflow-y: auto;
}
ul.ajaxlist {
list-style-type: none;
margin: 5px 10px;
padding: 0;
}
ul.ajaxlist > li {
margin-bottom: 5px;
}
.mysearch {
text-align: left;
}
.mysearch .f-field-textbox {
height: 46px;
font-size: 24px;
line-height: 28px;
padding: 8px 12px;
}
</style>
</head>
<body class="f-body">
<form id="form1" runat="server">
<f:PageManager runat="server"></f:PageManager>
<div class="mysearch">
<f:TextBox ID="tbxSearch" ShowLabel="false" EmptyText="搜索类名" runat="server" Width="350px">
<Listeners>
<f:Listener Event="change" Handler="onSearchBoxChange" />
</Listeners>
</f:TextBox>
</div>
<br />
<asp:Literal ID="litResult" EnableViewState="false" runat="server"></asp:Literal>
<%--<br />
FineUIPro 有原生的 AJAX 支持,也就是说不需要做任何配置,控件属性在服务器端的改变都能以 AJAX 的方式影响到前端界面的显示。
<br />
但是,并非控件的所有属性都支持 AJAX 改变,下面列表展示了每个控件有哪些属性支持 AJAX 改变。--%>
<br />
<br />
</form>
<script>
function onSearchBoxChange(event) {
var keyword = this.getValue().toLowerCase();
$('ul.mainlist > li').each(function () {
var cnode = $(this), title = cnode.find('.ui-widget-header').text().toLowerCase();
if (title.indexOf(keyword) >= 0) {
cnode.show();
} else {
cnode.hide();
}
});
}
</script>
</body>
</html>
+104
View File
@@ -0,0 +1,104 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web
{
public partial class ajax : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadData();
}
}
private void LoadData()
{
string content = ReadFile("~/config/ajax_properties.txt");
Dictionary<string, JObject> allControls = new Dictionary<string, JObject>();
List<string> publicControls = new List<string>();
JArray ja = JArray.Parse(content);
foreach (JObject jo in ja)
{
if (jo.Value<bool>("public")) // .getBool("public"))
{
publicControls.Add(jo.Value<string>("name")); //jo.getString("name"));
}
allControls.Add(jo.Value<string>("name"), jo); //jo.getString("name"), jo);
}
publicControls.Sort();
StringBuilder sb = new StringBuilder();
sb.Append("<ul class=\"mainlist\">");
for (int i = 0, count = publicControls.Count; i < count; i++)
{
string name = publicControls[i];
sb.Append("<li>");
sb.AppendFormat("<div class=\"ui-widget ui-widget-content\">");
sb.AppendFormat("<div class=\"ui-widget-header\">{0}</div>", name);
// 计算控件name的所有AJAX属性
List<string> ajaxProperties = new List<string>();
string parentControlName = name;
do
{
JObject control = allControls[parentControlName];
foreach (string property in control.Value<JArray>("ajax")) // .getJSONArray("ajax").getArrayList())
{
if (!ajaxProperties.Contains(property))
{
ajaxProperties.Add(property);
}
}
parentControlName = control.Value<string>("parent"); //.getString("parent");
} while (!String.IsNullOrEmpty(parentControlName));
ajaxProperties.Sort();
sb.Append("<div class=\"ajaxlist-container\">");
sb.Append("<ul class=\"ajaxlist\">");
foreach (string property in ajaxProperties)
{
sb.AppendFormat("<li>{0}</li>", property);
}
sb.Append("</ul>");
sb.Append("</div>");
sb.Append("</div>");
sb.Append("</li>");
//if ((i + 1) % 6 == 0)
//{
// sb.Append("</tr><tr>");
//}
}
sb.Append("</ul>");
litResult.Text = sb.ToString();
}
private string ReadFile(string filePath)
{
string content = String.Empty;
using (System.IO.StreamReader sr = new System.IO.StreamReader(Server.MapPath(filePath)))
{
content = sr.ReadToEnd();
}
return content;
}
}
}
+42
View File
@@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web {
public partial class ajax {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// tbxSearch 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox tbxSearch;
/// <summary>
/// litResult 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litResult;
}
}
@@ -0,0 +1,354 @@
[{
"name": "ControlBase",
"ajax": ["Hidden", "Enabled"],
"parent": "",
"public": false
},
{
"name": "Component",
"ajax": ["CssClass", "CssStyle"],
"parent": "ControlBase",
"public": false
},
{
"name": "BoxComponent",
"ajax": [],
"parent": "Component",
"public": false
},
{
"name": "Container",
"ajax": [],
"parent": "BoxComponent",
"public": false
},
{
"name": "PanelBase",
"ajax": ["IFrameUrl"],
"parent": "Container",
"public": false
},
{
"name": "CollapsablePanel",
"ajax": ["Expanded", "Collapsed", "Title"],
"parent": "PanelBase",
"public": false
},
{
"name": "Field",
"ajax": ["Readonly", "Label", "ShowRedStar"],
"parent": "BoxComponent",
"public": false
},
{
"name": "TextField",
"ajax": ["Required", "RegexPattern", "Regex", "MinLength", "MaxLength", "CompareControl", "CompareValue", "CompareOperator", "CompareType"],
"parent": "Field",
"public": false
},
{
"name": "RealTextField",
"ajax": ["Text"],
"parent": "TextField",
"public": false
},
{
"name": "Toolbar",
"ajax": [],
"parent": "BoxComponent",
"public": true
},
{
"name": "ToolbarFill",
"ajax": [],
"parent": "Component",
"public": true
},
{
"name": "ToolbarSeparator",
"ajax": [],
"parent": "Component",
"public": true
},
{
"name": "ToolbarText",
"ajax": ["Text"],
"parent": "Component",
"public": true
},
{
"name": "Button",
"ajax": ["Text", "Icon", "IconUrl", "ToolTip", "OnClientClick", "ConfirmTitle", "ConfirmText", "ConfirmIcon", "ConfirmTarget", "Pressed"],
"parent": "Component",
"public": true
},
{
"name": "Calendar",
"ajax": ["SelectedDate", "MaxDate", "MinDate"],
"parent": "Component",
"public": true
},
{
"name": "Menu",
"ajax": [],
"parent": "Component",
"public": true
},
{
"name": "BaseMenuItem",
"ajax": [],
"parent": "Component",
"public": false
},
{
"name": "MenuItem",
"ajax": [],
"parent": "BaseMenuItem",
"public": false
},
{
"name": "MenuButton",
"ajax": ["ClickScriptFunction"],
"parent": "MenuItem",
"public": true
},
{
"name": "MenuHyperLink",
"ajax": [],
"parent": "MenuItem",
"public": true
},
{
"name": "MenuSeparator",
"ajax": [],
"parent": "BaseMenuItem",
"public": true
},
{
"name": "MenuText",
"ajax": [],
"parent": "MenuItem",
"public": true
},
{
"name": "SplitButton",
"ajax": [],
"parent": "Button",
"public": true
},
{
"name": "PageLoading",
"ajax": [],
"parent": "ControlBase",
"public": true
},
{
"name": "PageManager",
"ajax": [],
"parent": "ControlBase",
"public": true
},
{
"name": "Timer",
"ajax": [],
"parent": "ControlBase",
"public": true
},
{
"name": "CheckBox",
"ajax": ["Checked", "Text"],
"parent": "Field",
"public": true
},
{
"name": "CheckBoxList",
"ajax": ["SelectedIndexArray", "SelectedValueArray", "SelectedItemArray"],
"parent": "Field",
"public": true
},
{
"name": "HtmlEditor",
"ajax": ["Text"],
"parent": "Field",
"public": true
},
{
"name": "Label",
"ajax": ["Text"],
"parent": "Field",
"public": true
},
{
"name": "HyperLink",
"ajax": ["Text", "NavigateUrl", "Target", "OnClientClick"],
"parent": "Field",
"public": true
},
{
"name": "Image",
"ajax": ["ImageUrl", "ImageWidth", "ImageHeight", "ImageCssClass", "ImageCssStyle", "ImageAlt"],
"parent": "Field",
"public": true
},
{
"name": "LinkButton",
"ajax": ["Text", "ConfirmText", "ConfirmTitle", "ConfirmIcon", "ConfirmTarget", "OnClientClick"],
"parent": "Field",
"public": true
},
{
"name": "RadioButton",
"ajax": ["Checked"],
"parent": "Field",
"public": true
},
{
"name": "RadioButtonList",
"ajax": ["SelectedIndex", "SelectedValue", "SelectedItem"],
"parent": "Field",
"public": true
},
{
"name": "DropDownList",
"ajax": ["SelectedIndex", "SelectedValue", "SelectedItem", "DataSource", "Items"],
"parent": "TextField",
"public": true
},
{
"name": "DatePicker",
"ajax": ["SelectedDate", "MaxDate", "MinDate"],
"parent": "RealTextField",
"public": true
},
{
"name": "HiddenField",
"ajax": [],
"parent": "RealTextField",
"public": true
},
{
"name": "FileUpload",
"ajax": [],
"parent": "RealTextField",
"public": true
},
{
"name": "NumberBox",
"ajax": ["NoDecimal", "NoNegative", "MaxValue", "MinValue", "DecimalPrecision", "Increment"],
"parent": "RealTextField",
"public": true
},
{
"name": "TextArea",
"ajax": [],
"parent": "RealTextField",
"public": true
},
{
"name": "TextBox",
"ajax": [],
"parent": "RealTextField",
"public": true
},
{
"name": "TriggerBox",
"ajax": [],
"parent": "RealTextField",
"public": true
},
{
"name": "TwinTriggerBox",
"ajax": ["ShowTrigger1", "ShowTrigger2"],
"parent": "RealTextField",
"public": true
},
{
"name": "RegionPanel",
"ajax": [],
"parent": "PanelBase",
"public": true
},
{
"name": "Region",
"ajax": [],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "Accordion",
"ajax": ["ActivePaneIndex"],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "AccordionPane",
"ajax": [],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "ContentPanel",
"ajax": [],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "Form",
"ajax": [],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "FormRow",
"ajax": [],
"parent": "ControlBase",
"public": true
},
{
"name": "GroupPanel",
"ajax": [],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "Panel",
"ajax": [],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "SimpleForm",
"ajax": [],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "Tree",
"ajax": ["Nodes", "SelectedNodeIDArray"],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "Window",
"ajax": [],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "Grid",
"ajax": ["PageIndex", "PageSize", "RecordCount", "SortColumnIndex", "SortDirection", "SelectedRowIndexArray", "DataSource"],
"parent": "CollapsablePanel",
"public": true
},
{
"name": "TabStrip",
"ajax": ["ActiveTabIndex"],
"parent": "PanelBase",
"public": true
},
{
"name": "Tab",
"ajax": [],
"parent": "PanelBase",
"public": true
}]
@@ -0,0 +1,64 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="enable_gzip_iis6.aspx.cs" Inherits="FineUIPro.Web.config.enable_gzip_iis6" %>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
<style type="text/css">
ol li {
margin-bottom: 5px;
}
.title {
font-size: 14px;
font-weight: bold;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager runat="server"></f:PageManager>
<div class="title">
如何在IIS6中启用GZIP压缩
</div>
<div style="margin: 10px 0;">
启用GZIP压缩可以减少网络传输的数据量,加快页面的显示速度。
</div>
<ol>
<li>展开IIS管理器,在网站菜单上点击右键,点击属性菜单,选择服务选项卡,按下图选中启用压缩的复选框。
<br />
<img src="../res/images/enable_gzip_iis6_1.png" />
<br />
<img src="../res/images/enable_gzip_iis6_2.png" />
<br />
</li>
<li>从<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&DisplayLang=en">这里</a>下载IIS
6.0资源工具包,安装后运行Metabase Explorer。
<br />
<img src="../res/images/enable_gzip_iis6_3.png" />
<br />
</li>
<li>展开 LM>W3SVC>Filters>Compression,你需要如下编辑 gzip 和 deflate 两个菜单。
<br />
HcScriptFileExtensions:asp,dll,aspx,axd,asmx,php,exe
<br />
HcDynamicCompressionLevel:10
<br />
HcFileExtensions:htm,html,js,css
<br />
<img src="../res/images/enable_gzip_iis6_4.png" />
<br />
</li>
<li>重启IIS。
<br />
<img src="../res/images/enable_gzip_iis6_5.png" />
</li>
</ol>
<div>
原文链接:<a href="http://www.codeproject.com/Articles/31073/Enable-Gzip-compression-in-IIS-6-0-for-ASP-NET-2-0">http://www.codeproject.com/Articles/31073/Enable-Gzip-compression-in-IIS-6-0-for-ASP-NET-2-0</a>
</div>
</form>
</body>
</html>
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.config
{
public partial class enable_gzip_iis6 : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
@@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.config {
public partial class enable_gzip_iis6 {
/// <summary>
/// Head1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlHead Head1;
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
}
}
+88
View File
@@ -0,0 +1,88 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="icons.aspx.cs" Inherits="FineUIPro.Web.icons" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
<style type="text/css">
ul.icons {
list-style-type: none;
padding: 0;
margin: 0;
}
ul.icons li {
display: inline-block;
margin: 0 10px 10px 0;
text-align: center;
border-style: solid;
border-width: 1px;
padding: 10px 5px;
width: 150px;
}
ul.icons li img {
width: 16px;
height: 16px;
}
ul.icons li .title {
margin-top: 10px;
}
.mysearch {
text-align: left;
}
.mysearch .f-field-textbox {
height: 46px;
font-size: 24px;
line-height: 28px;
padding: 8px 12px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager runat="server"></f:PageManager>
<div class="mysearch">
<f:TextBox ID="tbxSearch" ShowLabel="false" EmptyText="搜索图标" runat="server" Width="350px">
<Listeners>
<f:Listener Event="change" Handler="onSearchBoxChange" />
</Listeners>
</f:TextBox>
</div>
<br />
<asp:Literal EnableViewState="false" runat="server" ID="litIcons"></asp:Literal>
</form>
<script>
function onSearchBoxChange(event) {
var keyword = this.getValue().toLowerCase();
$('ul.icons li').each(function () {
var cnode = $(this), title = cnode.find('.title').text().toLowerCase();
if (title.indexOf(keyword) >= 0) {
cnode.show();
} else {
cnode.hide();
}
});
}
F.ready(function () {
$('ul.icons li').hover(function () {
$(this).addClass('ui-state-hover');
}, function () {
$(this).removeClass('ui-state-hover');
});
});
</script>
</body>
</html>
+44
View File
@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
namespace FineUIPro.Web
{
public partial class icons : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadData();
}
}
private void LoadData()
{
StringBuilder sb = new StringBuilder();
string iconUrl = ResolveUrl("~/res/images/empty.png");
sb.Append("<ul class=\"icons\">");
foreach (string icon in Enum.GetNames(typeof(Icon)))
{
Icon iconType = (Icon)Enum.Parse(typeof(Icon), icon);
if (iconType != Icon.None)
{
iconUrl = ResolveUrl(IconHelper.GetIconUrl(iconType));
}
sb.AppendFormat("<li class=\"ui-state-default\"><img src=\"{0}\"/><div class=\"title\">{1}</div></li>", iconUrl, icon);
}
sb.Append("</ul>");
litIcons.Text = sb.ToString();
}
}
}
+42
View File
@@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web {
public partial class icons {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// tbxSearch 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox tbxSearch;
/// <summary>
/// litIcons 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litIcons;
}
}
+93
View File
@@ -0,0 +1,93 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="icons_font.aspx.cs" Inherits="FineUIPro.Web.icons_font" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
<style type="text/css">
ul.icons {
list-style-type: none;
padding: 0;
margin: 0;
}
ul.icons li {
display: inline-block;
margin: 0 10px 10px 0;
text-align: center;
border-style: solid;
border-width: 1px;
padding: 10px 5px;
width: 150px;
}
ul.icons li .ui-icon {
font-size: 28px;
width: 30px;
height: 30px;
text-align: center;
}
ul.icons li .title {
margin-top: 10px;
}
ul.icons li .subtitle {
margin-top: 5px;
}
.mysearch {
text-align: left;
}
.mysearch .f-field-textbox {
height: 46px;
font-size: 24px;
line-height: 28px;
padding: 8px 12px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager runat="server"></f:PageManager>
<div class="mysearch">
<f:TextBox ID="tbxSearch" ShowLabel="false" EmptyText="搜索图标" runat="server" Width="350px">
<Listeners>
<f:Listener Event="change" Handler="onSearchBoxChange" />
</Listeners>
</f:TextBox>
</div>
<br />
<asp:Literal EnableViewState="false" runat="server" ID="litIcons"></asp:Literal>
</form>
<script>
function onSearchBoxChange(event) {
var keyword = this.getValue().toLowerCase();
$('ul.icons li').each(function () {
var cnode = $(this), title = cnode.find('.title').text().toLowerCase();
if (title.indexOf(keyword) >= 0) {
cnode.show();
} else {
cnode.hide();
}
});
}
F.ready(function () {
$('ul.icons li').hover(function () {
$(this).addClass('ui-state-hover');
}, function () {
$(this).removeClass('ui-state-hover');
});
});
</script>
</body>
</html>
@@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
namespace FineUIPro.Web
{
public partial class icons_font : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadData();
}
}
private void LoadData()
{
StringBuilder sb = new StringBuilder();
string iconName = String.Empty;
string iconClassName = "&nbsp;";
sb.Append("<ul class=\"icons\">");
foreach (string icon in Enum.GetNames(typeof(IconFont)))
{
IconFont iconType = (IconFont)Enum.Parse(typeof(IconFont), icon);
if (iconType != IconFont.None)
{
iconName = IconFontHelper.GetName(iconType);
iconClassName = iconName;
}
sb.AppendFormat("<li class=\"ui-state-default\"><i class=\"ui-icon f-icon-{0}\"></i><div class=\"title\">{1}</div><div class=\"subtitle\">{2}</div></li>", iconName, icon, iconClassName);
}
sb.Append("</ul>");
litIcons.Text = sb.ToString();
}
}
}
+42
View File
@@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web {
public partial class icons_font {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// tbxSearch 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox tbxSearch;
/// <summary>
/// litIcons 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litIcons;
}
}
@@ -0,0 +1,36 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="install_toolbox.aspx.cs" Inherits="FineUIPro.Web.config.install_toolbox" %>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
<style type="text/css">
ol li {
margin-bottom: 5px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager runat="server"></f:PageManager>
<div>
安装工具箱
</div>
<ol>
<li>打开 Visual Studio,新建一个 Web 项目; </li>
<li>打开 Default.aspx 页面;</li>
<li>打开工具箱,在空白处点击右键选择“添加选项卡”,输入“FineUI”; </li>
<li>在“FineUI”选项卡内,单击右键选择“选择项...”; </li>
<li>在弹出的窗口的下面,选择“浏览...”按钮;</li>
<li>打开“FineUIPro.dll”并确定。 </li>
</ol>
<div>
安装完成后的截图:
<br />
<img alt="FineUI toolbox" src="../res/images/toolbox.png" />
</div>
</form>
</body>
</html>
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.config
{
public partial class install_toolbox : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
@@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.config {
public partial class install_toolbox {
/// <summary>
/// Head1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlHead Head1;
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
}
}
+36
View File
@@ -0,0 +1,36 @@
<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Register TagPrefix="f" Namespace="FineUIPro" Assembly="FineUIPro" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获取服务器 IP+MAC 地址</title>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string[] ipmac = PageManager1.GetRequestIPMAC();
tbxIP.Text = ipmac[0];
tbxMAC.Text = ipmac[1];
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server"></f:PageManager>
<f:SimpleForm runat="server" Width="350px" LabelWidth="50px"
BodyPadding="10px" Title="服务器的IP+MAC地址">
<Items>
<f:TextBox runat="server" Label="IP" ID="tbxIP" ReadOnly="true"></f:TextBox>
<f:TextBox runat="server" Label="MAC" ID="tbxMAC" ReadOnly="true"></f:TextBox>
</Items>
</f:SimpleForm>
</form>
</body>
</html>
+77
View File
@@ -0,0 +1,77 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="loading.aspx.cs" Inherits="FineUIPro.Web.config.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: 150px;
cursor: pointer;
}
ul.loading li.hover,
ul.loading li.active {
border-width: 3px;
padding: 8px 3px;
}
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>
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_Pro', loadingNumber, {
expires: 100 // 单位:天
});
top.window.location.reload();
});
// 初始化
var loadingNumber = F.cookie('Loading_Pro');
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>
+41
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 FineUIPro.Web.config
{
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.GetEmbedLoadingImageUrl(i);
sb.AppendFormat("<li class=\"ui-widget-content\"><img src=\"{0}\"><div class=\"title\">{1}</div></li>", imageUrl, i);
}
sb.Append("</ul>");
litIcons.Text = sb.ToString();
}
}
}
+42
View File
@@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.config {
public partial class loading {
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// litIcons 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litIcons;
}
}
@@ -0,0 +1,141 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="modify_webconfig.aspx.cs" Inherits="FineUIPro.Web.config.modify_webconfig" %>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
<style type="text/css">
ol li,
ul li {
margin-bottom: 5px;
}
pre {
border: none;
margin: 0;
padding: 10px 5px;
font-family: Consolas, Courier New, monospace;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager runat="server"></f:PageManager>
<div>
在开发项目之前请配置好 Web.config
</div>
<ol>
<li><strong>设置 configuration 配置节:</strong>
<br />
<pre>
&lt;configSections&gt;
&lt;section name="FineUIPro" type="FineUIPro.ConfigSection, FineUIPro"/&gt;
&lt;/configSections&gt;
&lt;!-- 可用的配置项(这里列的都是默认值):
Theme="Default"
Language="zh_CN"
DebugMode="false"
FormMessageTarget="Qtip"
FormOffsetRight="0"
FormLabelWidth="100"
FormLabelSeparator=""
FormLabelAlign="Left"
FormRedStarPosition="AfterText"
EnableAjax="true"
AjaxTimeout="120"
EnableAjaxLoading="true"
AjaxLoadingType="Default"
AjaxLoadingText=""
ShowAjaxLoadingMaskText=false
AjaxLoadingMaskText=""
CustomTheme=""
IconBasePath="~/res/icon"
CustomThemeBasePath="~/res/themes"
JSBasePath="~/res/js"
IEEdge="true"
EnableShim="false"
EnableCompactMode="false"
--&gt;
&lt;FineUIPro DebugMode="false" /&gt;
</pre>
FineUIPro 配置节中的参数:
<br />
<ul>
<li>Theme: 控件主题,内置 30 种主题(其中 6 种 Metro 主题,24 种 jQueryUI 官方主题,默认值:Default</li>
<li>Language: 控件语言(en/zh_CN/zh_TW,默认值:zh_CN</li>
<li>FormMessageTarget: 表单字段错误提示信息的显示位置(Title/Side/Qtip,默认值:Side</li>
<li>FormLabelWidth: 表单字段标签的宽度(默认值:100px</li>
<li>FormLabelAlign: 表单字段标签的位置(Left/Right/Top,默认值:Left</li>
<li>FormRedStarPosition: 表单字段红色星号的位置(AfterText/BeforeText/AfterSeparator,默认值:AfterText</li>
<li>FormLabelSeparator: 表单字段标签与内容的分隔符(默认值:""</li>
<li>EnableAjax: 是否启用AJAX(默认值:true</li>
<li>AjaxTimeout: Ajax超时时间(单位:秒,默认值:120s</li>
<li>DebugMode: 是否开发模式,启用时格式化输出页面的JavaScript代码,便于调试(默认值:false</li>
<li>EnableAjaxLoading: 是否启用Ajax提示(默认值:true</li>
<li>AjaxLoadingType: Ajax提示类型,默认在页面顶部显示黄色提示框(Default/Mask,默认值:Default</li>
<li>EnableShim: 是否启用遮罩层,防止ActiveX、Flash等对象覆盖弹出窗体(默认值:false</li>
<li>EnableCompactMode: 是否启用紧凑模式(默认值:false</li>
</ul>
<br />
<br />
</li>
<li><strong>设置 system.web 配置节:</strong>
<pre>
&lt;system.web&gt;
&lt;pages&gt;
&lt;controls&gt;
&lt;add assembly="FineUIPro" namespace="FineUIPro" tagPrefix="f"/&gt;
&lt;/controls&gt;
&lt;/pages&gt;
&lt;httpModules&gt;
&lt;add name="FineUIProScriptModule" type="FineUIPro.ScriptModule, FineUIPro"/&gt;
&lt;/httpModules&gt;
&lt;httpHandlers&gt;
&lt;add verb="GET" path="res.axd" type="FineUIPro.ResourceHandler, FineUIPro" validate="false"/&gt;
&lt;/httpHandlers&gt;
&lt;system.web&gt;
</pre>
</li>
<li><strong>完成。</strong></li>
</ol>
<br />
<hr />
<br />
<div style="font-weight: bold;">
特别提醒
</div>
<br />
Net4.0以上的项目,一定要为Web.config中&lt;page&gt;标签添加controlRenderingCompatibilityVersion和clientIDMode两个属性。
<pre>
&lt;pages controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID"&gt;
&lt;controls&gt;
&lt;add assembly="FineUIPro" namespace="FineUIPro" tagPrefix="f" /&gt;
&lt;/controls&gt;
&lt;/pages&gt;
</pre>
<br />
<div style="font-weight: bold;">
注意引用的Newtonsoft.Json.dll版本
</div>
<br />
FineUIPro.dll只有一个版本,无论你的项目是2.0、3.5、4.0、4.5,都只需要引用同一个FineUIPro.dll即可。
<br />
<br />
Newtonsoft.Json.dll为每个Net版本创建不同的DLL,比如你的项目是基于Net2.0的,就要引用json.net\Net20\Newtonsoft.Json.dll,如果你的项目是基于Net4.0的,就要引用json.net\Net40\Newtonsoft.Json.dll。
<br />
<br />
<br />
<br />
<br />
<div style="font-weight: bold; color: Red;">
更多常见问题:<a href="http://fineui.com/bbs/forum.php?mod=viewthread&tid=655" target="_blank">http://fineui.com/bbs/forum.php?mod=viewthread&tid=655</a>
</div>
<br />
</form>
</body>
</html>
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.config
{
public partial class modify_webconfig : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
@@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.config {
public partial class modify_webconfig {
/// <summary>
/// Head1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlHead Head1;
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
}
}
@@ -0,0 +1,193 @@
<!DOCTYPE html>
<html>
<head>
<title>FineUI版本发布周期(天)</title>
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
<style>
body {
font-size: 13px;
}
#desc {
font-weight: bold;
text-align: left;
margin: 20px 0 10px;
font-size: 14px;
}
</style>
</head>
<body class="f-body">
<div id="desc">
</div>
<div id="chart_div">
</div>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {
packages: ["corechart"]
});
google.setOnLoadCallback(drawChart);
function drawChart() {
var vs = preprocessVersions(), v, count = vs.length, chart, data;
data = new google.visualization.DataTable();
data.addColumn('string', '版本');
data.addColumn('number', '版本间隔天数');
data.addRows(count);
for (var i = count - 1, j = 0; i >= 0; i--, j++) {
v = vs[i];
data.setValue(j, 1, v[2]);
data.setValue(j, 0, v[1] + " (" + v[0] + ")");
}
chart = new google.visualization.BarChart(document.getElementById('chart_div'));
chart.draw(data, {
height: 2500,
width: 900,
fontSize: 13,
title: 'FineUI版本发布周期(天)',
vAxis: {
title: 'FineUI版本'
},
chartArea: {
top: 30,
left: 200
}
});
document.getElementById('desc').innerHTML = 'FineUI版本发布周期(总计发布了 ' + vs.length + ' 个版本)';
}
function preprocessVersions() {
var data = [
["v0.1 preview", "2008-04-11"],
["v0.1 preview2", "2008-04-25"],
["v0.1 beta1", "2008-04-30"],
["v0.1 beta2", "2008-05-08"],
["v0.1 beta3", "2008-05-14"],
["v0.1 beta4", "2008-05-20"],
["v0.1 beta5", "2008-05-23"],
["v0.1 beta6", "2008-05-27"],
["v0.1 beta7", "2008-05-29"],
["v0.1 beta8", "2008-05-30"],
["v0.1 beta9", "2008-06-03"],
["v0.1 beta10", "2008-06-05"],
["v0.1 beta12", "2008-06-10"],
["v0.2 beta1", "2008-06-12"],
["v0.2 beta2", "2008-06-13"],
["v0.2 beta3", "2008-06-16"],
["v0.2 beta4", "2008-06-17"],
["v0.2 beta6", "2008-06-19"],
["v0.2 beta7", "2008-06-20"],
["v0.2 beta8", "2008-06-23"],
["v0.2 beta9", "2008-06-25"],
["v0.2 beta10", "2008-06-27"],
["v0.2 beta11", "2008-06-30"],
["v0.2 beta12", "2008-07-02"],
["v0.3 beta1", "2008-07-03"],
["v0.3 beta2", "2008-07-07"],
["v0.3 beta3", "2008-07-08"],
["v0.3 beta4", "2008-07-09"],
["v0.3 beta5", "2008-07-12"],
["v0.3 beta6", "2008-07-14"],
["v0.3 beta8", "2008-07-16"],
["v0.3 beta9", "2008-07-22"],
["v0.3 beta10", "2008-07-23"],
["v0.3 beta11", "2008-07-24"],
["v0.3 beta12", "2008-07-31"],
["v0.4 beta1", "2008-08-05"],
["v0.4 beta2", "2008-08-08"],
["v0.4 beta3", "2008-08-12"],
["v0.4 beta4", "2008-08-13"],
["v0.4 beta5", "2008-08-15"],
["v0.4 beta6", "2008-08-19"],
["v1.0", "2008-08-26"],
["v1.1 beta1", "2008-08-29"],
["v1.1 beta3", "2008-08-31"],
["v1.1 beta4", "2008-09-01"],
["v1.1 beta5", "2008-09-02"],
["v1.1 beta6", "2008-09-04"],
["v1.1 beta7", "2008-09-08"],
["v1.1", "2008-09-09"],
["v1.2 beta1", "2008-09-19"],
["v1.2 beta2", "2008-09-22"],
["v1.2 beta3", "2008-09-25"],
["v1.2 beta4", "2008-09-27"],
["v1.2 beta5", "2008-10-15"],
["v1.2 beta6", "2008-10-20"],
["v1.2 beta7", "2008-10-28"],
["v1.2 beta8", "2009-02-23"],
["v1.2 beta9", "2009-02-27"],
["v1.3.0", "2009-03-03"],
["v1.3.1", "2009-03-25"],
["v2.0 beta1", "2009-07-05"],
["v2.0 beta2", "2009-07-13"],
["v2.0 beta3", "2009-07-22"],
["v2.0 beta4", "2009-08-02"],
["v2.0 beta5", "2009-08-09"],
["v2.0.6", "2009-08-14"],
["v2.0.7", "2009-08-25"],
["v2.0.8", "2009-08-29"],
["v2.0.9", "2009-09-01"],
["v2.1.0", "2009-09-06"],
["v2.1.1", "2009-09-15"],
["v2.1.2", "2009-09-27"],
["v2.1.3", "2009-10-19"],
["v2.1.4", "2009-11-17"],
["v2.1.5", "2009-11-21"],
["v2.1.6", "2009-11-26"],
["v2.1.7", "2009-12-01"],
["v2.1.8", "2009-12-06"],
["v2.1.9", "2010-01-06"],
["v2.2.0", "2010-01-31"],
["v2.2.1", "2010-03-28"],
["v2.3.1", "2010-06-30"],
["v2.3.2", "2010-09-29"],
["v2.3.3", "2011-02-22"],
["v2.3.4", "2011-05-02"],
["v2.3.5", "2011-05-09"],
["v3.0.0", "2012-01-28"],
["v3.0.1", "2012-02-05"],
["v3.1.0", "2012-03-04"],
["v3.1.1", "2012-04-02"],
["v3.1.2", "2012-04-04"],
["v3.1.3", "2012-04-08"],
["v3.1.4", "2012-04-24"],
["v3.1.5", "2012-05-06"],
["v3.1.6", "2012-05-20"],
["v3.1.7", "2012-06-03"],
["v3.1.8", "2012-06-24"],
["v3.1.9", "2012-08-18"],
["v3.2.0", "2012-11-18"],
["v3.2.1", "2012-11-25"],
["v3.2.2", "2012-12-03"],
["v3.2.3", "2013-01-09"],
["v3.2.4", "2013-03-23"],
["v3.2.5", "2013-04-27"],
["v3.2.6", "2013-05-21"],
["v3.3.0", "2013-06-17"],
["v3.3.1", "2013-07-29"],
["v4.0.1 beta", "2013-10-28"],
["v3.3.2", "2013-11-21"],
["v4.0.2 beta", "2013-12-14"],
["v3.3.3", "2014-01-20"],
["v4.0.3 beta", "2014-01-20"]
];
// 初始化第一个数据
data[0][2] = 0;
var i = 1, count = data.length;
for (; i < count; i++) {
data[i][2] = (new Date(data[i][1]) - new Date(data[i - 1][1])) / (24 * 60 * 60 * 1000);
}
return data;
}
</script>
</body>
</html>
+39
View File
@@ -0,0 +1,39 @@
<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Register TagPrefix="f" Namespace="FineUIPro" Assembly="FineUIPro" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获取服务器参数</title>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
StringBuilder sb = new StringBuilder();
NameValueCollection vars = Page.Request.ServerVariables;
sb.Append("<table>");
foreach (string key in vars.AllKeys)
{
sb.Append("<tr>");
sb.AppendFormat("<td>{0}</td><td>{1}</td>", key, vars[key]);
sb.Append("</tr>");
}
sb.Append("</table>");
Label1.Text = sb.ToString();
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server"></f:PageManager>
<f:Label runat="server" ID="Label1" EncodeText="false"></f:Label>
</form>
</body>
</html>