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

View File

@ -18,35 +18,41 @@ namespace FineUI.Examples
protected override void OnInit(EventArgs e)
{
if (!IsPostBack)
var pm = PageManager.Instance;
// 如果不是FineUI的AJAX回发两种情况1.页面第一个加载 2.页面非AJAX回发
if (pm != null && !pm.IsFineUIAjaxPostBack)
{
if (PageManager.Instance != null)
HttpCookie themeCookie = Request.Cookies["Theme_v4"];
if (themeCookie != null)
{
HttpCookie themeCookie = Request.Cookies["Theme"];
if (themeCookie != null)
try
{
string themeValue = themeCookie.Value;
PageManager.Instance.Theme = (Theme)Enum.Parse(typeof(Theme), themeValue, true);
//if (IsSystemTheme(themeValue))
//{
// PageManager.Instance.Theme = (Theme)Enum.Parse(typeof(Theme), themeValue, true);
//}
//else
//{
// PageManager.Instance.CustomTheme = themeValue;
//}
pm.Theme = (Theme)Enum.Parse(typeof(Theme), themeValue, true);
}
catch (Exception)
{
pm.Theme = FineUI.Theme.Neptune;
}
}
HttpCookie langCookie = Request.Cookies["Language"];
if (langCookie != null)
HttpCookie langCookie = Request.Cookies["Language_v4"];
if (langCookie != null)
{
try
{
string langValue = langCookie.Value;
PageManager.Instance.Language = (Language)Enum.Parse(typeof(Language), langValue, true);
pm.Language = (Language)Enum.Parse(typeof(Language), langValue, true);
}
catch (Exception)
{
pm.Language = Language.ZH_CN;
}
}
}
base.OnInit(e);
}
@ -103,20 +109,31 @@ namespace FineUI.Examples
#region
/// <summary>
/// 选中
/// 选中了哪些
/// </summary>
/// <param name="grid"></param>
/// <returns></returns>
/// <param name="grid">表格对象</param>
/// <returns>选中行的描述信息</returns>
protected string HowManyRowsAreSelected(Grid grid)
{
return HowManyRowsAreSelected(grid, false);
}
/// <summary>
/// 选中了哪些行
/// </summary>
/// <param name="grid">表格对象</param>
/// <param name="rowNumberInDataSource">在表格数据源中计算序号(而不是在当前分页内计算序号)</param>
/// <returns>选中行的描述信息</returns>
protected string HowManyRowsAreSelected(Grid grid, bool rowNumberInDataSource)
{
StringBuilder sb = new StringBuilder();
int selectedCount = grid.SelectedRowIndexArray.Length;
if (selectedCount > 0)
{
sb.AppendFormat("共选中了 {0} 行:", selectedCount);
sb.AppendFormat("<p><strong>共选中了 {0} 行:</strong></p>", selectedCount);
sb.Append("<table class=\"result\">");
sb.Append("<tr><th>行号</th>");
sb.Append("<tr><th>号</th>");
foreach (string datakey in grid.DataKeyNames)
{
sb.AppendFormat("<th>{0}</th>", datakey);
@ -129,7 +146,13 @@ namespace FineUI.Examples
int rowIndex = grid.SelectedRowIndexArray[i];
sb.Append("<tr>");
sb.AppendFormat("<td>{0}</td>", rowIndex + 1);
int rownumber = rowIndex + 1;
if (rowNumberInDataSource && grid.AllowPaging)
{
rownumber += grid.PageIndex * grid.PageSize;
}
sb.AppendFormat("<td>{0}</td>", rownumber);
// 如果是内存分页所有分页的数据都存在rowIndex 就是在全部数据中的顺序,而不是当前页的顺序
if (grid.AllowPaging && !grid.IsDatabasePaging)
@ -177,7 +200,7 @@ namespace FineUI.Examples
DataTable table = new DataTable();
table.Columns.Add(new DataColumn("Id", typeof(int)));
table.Columns.Add(new DataColumn("Name", typeof(String)));
table.Columns.Add(new DataColumn("EntranceYear", typeof(String)));
table.Columns.Add(new DataColumn("EntranceYear", typeof(int)));
table.Columns.Add(new DataColumn("LogTime", typeof(DateTime)));
table.Columns.Add(new DataColumn("Desc", typeof(string)));
@ -185,7 +208,7 @@ namespace FineUI.Examples
row[0] = 101;
row[1] = "班级一";
row[2] = "2000";
row[2] = 2000;
row[3] = DateTime.Parse("2000-09-01");
row[4] = "班级一创建于2000年9月1号班长胡飞连续三年获得全校优秀班级称号。";
table.Rows.Add(row);
@ -193,7 +216,7 @@ namespace FineUI.Examples
row = table.NewRow();
row[0] = 102;
row[1] = "班级二";
row[2] = "2005";
row[2] = 2005;
row[3] = DateTime.Parse("2005-09-01");
row[4] = "班级一创建于2005年9月1号班长董婷婷连续两年获得全校优秀班级称号。";
table.Rows.Add(row);
@ -211,7 +234,7 @@ namespace FineUI.Examples
DataTable table = new DataTable();
table.Columns.Add(new DataColumn("Id", typeof(int)));
table.Columns.Add(new DataColumn("Name", typeof(String)));
table.Columns.Add(new DataColumn("EntranceYear", typeof(String)));
table.Columns.Add(new DataColumn("EntranceYear", typeof(int)));
table.Columns.Add(new DataColumn("AtSchool", typeof(bool)));
table.Columns.Add(new DataColumn("Major", typeof(String)));
table.Columns.Add(new DataColumn("Group", typeof(int)));
@ -226,12 +249,18 @@ namespace FineUI.Examples
// Hobbyreading,basketball,travel,movie,music
// 爱好:读书, 篮球, 旅游, 电影, 音乐
// 考试成绩
table.Columns.Add(new DataColumn("ChineseScore", typeof(Int32)));
table.Columns.Add(new DataColumn("MathScore", typeof(Int32)));
table.Columns.Add(new DataColumn("TotalScore", typeof(Int32)));
DataRow row = null;
row = table.NewRow();
row[0] = 101;
row[1] = "陈萍萍";
row[2] = "2000";
row[2] = 2000;
row[3] = true;
row[4] = "计算机应用技术";
row[5] = 1;
@ -243,12 +272,15 @@ namespace FineUI.Examples
row[11] = "2000-09-01";
row[12] = 299;
row[13] = 2990;
row[14] = 80;
row[15] = 80;
row[16] = 160;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 102;
row[1] = "胡飞";
row[2] = "2008";
row[2] = 2008;
row[3] = false;
row[4] = "信息工程";
row[5] = 1;
@ -260,12 +292,15 @@ namespace FineUI.Examples
row[11] = "2008-09-01";
row[12] = 199;
row[13] = 1990;
row[14] = 90;
row[15] = 80;
row[16] = 170;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 103;
row[1] = "金婷婷";
row[2] = "2001";
row[2] = 2001;
row[3] = true;
row[4] = "会计学";
row[5] = 2;
@ -277,13 +312,16 @@ namespace FineUI.Examples
row[11] = "2001-09-01";
row[12] = 299;
row[13] = 3990;
row[14] = 85;
row[15] = 85;
row[16] = 170;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 104;
row[1] = "潘国";
row[2] = "2008";
row[2] = 2008;
row[3] = false;
row[4] = "国际经济与贸易";
row[5] = 2;
@ -295,13 +333,16 @@ namespace FineUI.Examples
row[11] = "2008-09-01";
row[12] = 399;
row[13] = 3998;
row[14] = 89;
row[15] = 80;
row[16] = 169;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 105;
row[1] = "吴颖颖";
row[2] = "2002";
row[2] = 2002;
row[3] = true;
row[4] = "市场营销";
row[5] = 3;
@ -313,13 +354,16 @@ namespace FineUI.Examples
row[11] = "2002-09-01";
row[12] = 499;
row[13] = 4992;
row[14] = 92;
row[15] = 85;
row[16] = 177;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 106;
row[1] = "张博";
row[2] = "2003";
row[2] = 2003;
row[3] = false;
row[4] = "财务管理";
row[5] = 3;
@ -331,13 +375,16 @@ namespace FineUI.Examples
row[11] = "2003-09-01";
row[12] = 99;
row[13] = 997;
row[14] = 88;
row[15] = 86;
row[16] = 174;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 107;
row[1] = "杨倩倩";
row[2] = "2000";
row[2] = 2000;
row[3] = true;
row[4] = "材料物理与化学";
row[5] = 4;
@ -349,13 +396,16 @@ namespace FineUI.Examples
row[11] = "2000-09-01";
row[12] = 399;
row[13] = 3995;
row[14] = 95;
row[15] = 82;
row[16] = 177;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 108;
row[1] = "董超";
row[2] = "2004";
row[2] = 2004;
row[3] = false;
row[4] = "生物医学工程";
row[5] = 4;
@ -367,13 +417,16 @@ namespace FineUI.Examples
row[11] = "2004-09-01";
row[12] = 299;
row[13] = 2996;
row[14] = 86;
row[15] = 98;
row[16] = 184;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 109;
row[1] = "张娟娟";
row[2] = "2003";
row[2] = 2003;
row[3] = true;
row[4] = "土木工程";
row[5] = 5;
@ -385,12 +438,15 @@ namespace FineUI.Examples
row[11] = "2003-09-01";
row[12] = 599;
row[13] = 5990;
row[14] = 92;
row[15] = 96;
row[16] = 198;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 110;
row[1] = "叶鹏";
row[2] = "2006";
row[2] = 2006;
row[3] = false;
row[4] = "电子商务";
row[5] = 5;
@ -402,12 +458,15 @@ namespace FineUI.Examples
row[11] = "2006-09-01";
row[12] = 699;
row[13] = 6990;
row[14] = 69;
row[15] = 99;
row[16] = 168;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 111;
row[1] = "李玲玲";
row[2] = "2002";
row[2] = 2002;
row[3] = true;
row[4] = "管理学";
row[5] = 5;
@ -419,12 +478,15 @@ namespace FineUI.Examples
row[11] = "2002-09-01";
row[12] = 399;
row[13] = 3990;
row[14] = 88;
row[15] = 92;
row[16] = 180;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 112;
row[1] = "张萍萍";
row[2] = "2000";
row[2] = 2000;
row[3] = true;
row[4] = "计算机应用技术";
row[5] = 1;
@ -436,12 +498,15 @@ namespace FineUI.Examples
row[11] = "2000-09-01";
row[12] = 299;
row[13] = 2999;
row[14] = 82;
row[15] = 88;
row[16] = 170;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 113;
row[1] = "曹飞";
row[2] = "2008";
row[2] = 2008;
row[3] = false;
row[4] = "信息工程";
row[5] = 1;
@ -453,12 +518,15 @@ namespace FineUI.Examples
row[11] = "2008-09-01";
row[12] = 399;
row[13] = 3996;
row[14] = 96;
row[15] = 85;
row[16] = 181;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 114;
row[1] = "孙婷婷";
row[2] = "2001";
row[2] = 2001;
row[3] = true;
row[4] = "会计学";
row[5] = 2;
@ -470,13 +538,16 @@ namespace FineUI.Examples
row[11] = "2001-09-01";
row[12] = 499;
row[13] = 4990;
row[14] = 80;
row[15] = 90;
row[16] = 170;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 115;
row[1] = "董国";
row[2] = "2008";
row[2] = 2008;
row[3] = false;
row[4] = "国际经济与贸易";
row[5] = 2;
@ -488,13 +559,16 @@ namespace FineUI.Examples
row[11] = "2008-09-01";
row[12] = 299;
row[13] = 2992;
row[14] = 90;
row[15] = 95;
row[16] = 185;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 116;
row[1] = "习颖颖";
row[2] = "2002";
row[2] = 2002;
row[3] = true;
row[4] = "市场营销";
row[5] = 3;
@ -506,13 +580,16 @@ namespace FineUI.Examples
row[11] = "2002-09-01";
row[12] = 199;
row[13] = 1990;
row[14] = 86;
row[15] = 90;
row[16] = 176;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 117;
row[1] = "李博";
row[2] = "2003";
row[2] = 2003;
row[3] = false;
row[4] = "财务管理";
row[5] = 3;
@ -524,31 +601,37 @@ namespace FineUI.Examples
row[11] = "2003-09-01";
row[12] = 99;
row[13] = 990;
row[14] = 80;
row[15] = 95;
row[16] = 175;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 118;
row[1] = "黄倩倩";
row[2] = "2000";
row[1] = "黄婷婷";
row[2] = 2000;
row[3] = true;
row[4] = "材料物理与化学";
row[5] = 4;
row[6] = 0;
row[7] = DateTime.Now.AddDays(-40);
row[8] = "黄倩倩25岁出生于中国北方的一个小山村毕业于北京科学技术大学。";
row[8] = "黄婷婷25岁出生于中国北方的一个小山村毕业于北京科学技术大学。";
row[9] = Guid.NewGuid();
row[10] = "travel,movie,music";
row[11] = "2000-09-01";
row[12] = 399;
row[13] = 3990;
row[14] = 95;
row[15] = 88;
row[16] = 183;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 119;
row[1] = "韩超";
row[2] = "2004";
row[2] = 2004;
row[3] = false;
row[4] = "生物医学工程";
row[5] = 4;
@ -560,13 +643,16 @@ namespace FineUI.Examples
row[11] = "2004-09-01";
row[12] = 399;
row[13] = 3991;
row[14] = 88;
row[15] = 86;
row[16] = 174;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 120;
row[1] = "王娟娟";
row[2] = "2003";
row[2] = 2003;
row[3] = true;
row[4] = "土木工程";
row[5] = 5;
@ -578,12 +664,15 @@ namespace FineUI.Examples
row[11] = "2003-09-01";
row[12] = 399;
row[13] = 3992;
row[14] = 90;
row[15] = 88;
row[16] = 178;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 121;
row[1] = "周鹏";
row[2] = "2006";
row[2] = 2006;
row[3] = false;
row[4] = "电子商务";
row[5] = 5;
@ -595,12 +684,15 @@ namespace FineUI.Examples
row[11] = "2006-09-01";
row[12] = 299;
row[13] = 2992;
row[14] = 92;
row[15] = 96;
row[16] = 186;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 122;
row[1] = "吴玲玲";
row[2] = "2002";
row[2] = 2002;
row[3] = true;
row[4] = "管理学";
row[5] = 5;
@ -612,6 +704,9 @@ namespace FineUI.Examples
row[11] = "2002-09-01";
row[12] = 399;
row[13] = 3993;
row[14] = 95;
row[15] = 89;
row[16] = 184;
table.Rows.Add(row);
@ -627,7 +722,7 @@ namespace FineUI.Examples
DataTable table = new DataTable();
table.Columns.Add(new DataColumn("Id", typeof(int)));
table.Columns.Add(new DataColumn("Name", typeof(String)));
table.Columns.Add(new DataColumn("EntranceYear", typeof(String)));
table.Columns.Add(new DataColumn("EntranceYear", typeof(int)));
table.Columns.Add(new DataColumn("AtSchool", typeof(bool)));
table.Columns.Add(new DataColumn("Major", typeof(String)));
table.Columns.Add(new DataColumn("Group", typeof(int)));
@ -635,93 +730,145 @@ namespace FineUI.Examples
table.Columns.Add(new DataColumn("LogTime", typeof(DateTime)));
table.Columns.Add(new DataColumn("Desc", typeof(string)));
table.Columns.Add(new DataColumn("Guid", typeof(Guid)));
table.Columns.Add(new DataColumn("Hobby", typeof(String)));
table.Columns.Add(new DataColumn("EntranceDate", typeof(String)));
// Hobbyreading,basketball,travel,movie,music
// 爱好:读书, 篮球, 旅游, 电影, 音乐
table.Columns.Add(new DataColumn("Hobby", typeof(String)));
table.Columns.Add(new DataColumn("EntranceDate", typeof(String)));
// 考试成绩
table.Columns.Add(new DataColumn("ChineseScore", typeof(Int32)));
table.Columns.Add(new DataColumn("MathScore", typeof(Int32)));
table.Columns.Add(new DataColumn("TotalScore", typeof(Int32)));
// 体检结果
table.Columns.Add(new DataColumn("ShenGao", typeof(Int32)));
table.Columns.Add(new DataColumn("TiZhong", typeof(Int32)));
table.Columns.Add(new DataColumn("XueYaDi", typeof(String)));
table.Columns.Add(new DataColumn("XueYaGao", typeof(String)));
table.Columns.Add(new DataColumn("ShiLiZuo", typeof(Single)));
table.Columns.Add(new DataColumn("ShiLiYou", typeof(Single)));
table.Columns.Add(new DataColumn("ShiLiZuoJiaoZhen", typeof(Single)));
table.Columns.Add(new DataColumn("ShiLiYouJiaoZhen", typeof(Single)));
// 合并单元格需要的字段
table.Columns.Add(new DataColumn("GroupB", typeof(int)));
DataRow row = table.NewRow();
row[0] = 101;
row[1] = "张萍萍";
row[2] = "2000";
row[2] = 2000;
row[3] = true;
row[4] = "材料科学与工程系";
row[5] = 1;
row[6] = 0;
row[7] = DateTime.Now.AddDays(-100);
row[8] = "张萍萍20岁出生于中国南方的一个小山村毕业于中国科学技术大学。";
row[7] = DateTime.Now.AddDays(-100); // DBNull.Value;
row[8] = "张萍萍20岁出生于中国南方的一个小山村毕业于中国科学技术大学。<br/>毕业后就职于某大型国有企业,任部门经理,连续三年获得企业优秀员工称号。";
row[9] = Guid.NewGuid();
row[10] = "reading,travel,music";
row[11] = "2000-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 80;
row[13] = 90;
row[14] = 170;
row[15] = 180;
row[16] = 150;
row[17] = 80;
row[18] = 120;
row[19] = 0.2;
row[20] = 0.5;
row[21] = 1.0;
row[22] = 1.2;
row[23] = 1;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 102;
row[1] = "陈飞";
row[2] = "2001";
row[2] = 2000;
row[3] = false;
row[4] = "化学系";
row[5] = 1;
row[6] = 1;
row[7] = DateTime.Now.AddDays(-90);
row[7] = DateTime.Now.AddDays(-100);
row[8] = "陈飞20岁出生于中国北方的一个小山村毕业于南方科学技术大学。";
row[9] = Guid.NewGuid();
row[10] = "basketball,travel,movie,reading,music";
row[11] = "2001-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 85;
row[13] = 90;
row[14] = 175;
row[15] = 160;
row[16] = 120;
row[17] = 70;
row[18] = 110;
row[19] = 0.3;
row[20] = 0.3;
row[21] = 1.2;
row[22] = 1.2;
row[23] = 1;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 103;
row[1] = "董婷婷";
row[2] = "2008";
row[2] = 2000;
row[3] = true;
row[4] = "化学系";
row[5] = 2;
row[6] = 0;
row[7] = DateTime.Now.AddDays(-80);
row[8] = "董婷婷,女,28岁出生于中国海南岛的一个小山村毕业于中国科学技术大学。";
row[7] = DateTime.Now.AddDays(-100);
row[8] = "董婷婷,女,18岁出生于中国海南岛的一个小山村毕业于中国科学技术大学。<br/>董婷婷是在学校认识丈夫刘国的,有一天晚上下自习后,董婷婷发短信给刘国说“做我男朋友吧!”,然后他们就走到了一起。";
row[9] = Guid.NewGuid();
row[10] = "basketball,movie,music";
row[11] = "2008-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 90;
row[13] = 90;
row[14] = 180;
row[15] = 190;
row[16] = 130;
row[17] = 82;
row[18] = 125;
row[19] = 0.8;
row[20] = 0.6;
row[21] = 1.2;
row[22] = 1.0;
row[23] = 2;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 104;
row[1] = "刘国";
row[2] = "2002";
row[2] = 2002;
row[3] = false;
row[4] = "化学系";
row[5] = 2;
row[6] = 1;
row[7] = DateTime.Now.AddDays(-70);
row[8] = "刘国22岁出生于中国澳门的一个小山村毕业于中国科学技术大学。";
row[7] = DateTime.Now.AddDays(-100);
row[8] = "刘国22岁出生于中国澳门的一个小山村毕业于中国科学技术大学。<br/>刘国是作为交换生来中科大学习,在校期间认识了妻子董婷婷,虽然是被追到手了,不过在人前却总是说“老婆是我千辛万苦追来的!”。";
row[9] = Guid.NewGuid();
row[10] = "reading,basketball,movie";
row[11] = "2002-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 95;
row[13] = 95;
row[14] = 190;
row[15] = 170;
row[16] = 130;
row[17] = 76;
row[18] = 112;
row[19] = 1.0;
row[20] = 1.0;
row[21] = 1.0;
row[22] = 1.0;
row[23] = 2;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 105;
row[1] = "康颖颖";
row[2] = "2008";
row[2] = 2008;
row[3] = true;
row[4] = "数学系";
row[5] = 3;
@ -731,17 +878,26 @@ namespace FineUI.Examples
row[9] = Guid.NewGuid();
row[10] = "reading,travel,movie,music";
row[11] = "2008-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 85;
row[13] = 95;
row[14] = 180;
row[15] = 159;
row[16] = 90;
row[17] = 77;
row[18] = 128;
row[19] = 0.6;
row[20] = 0.9;
row[21] = 1.2;
row[22] = 1.2;
row[23] = 3;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 106;
row[1] = "彭博";
row[2] = "2003";
row[3] = false;
row[2] = 2008;
row[3] = true;
row[4] = "数学系";
row[5] = 3;
row[6] = 1;
@ -750,105 +906,186 @@ namespace FineUI.Examples
row[9] = Guid.NewGuid();
row[10] = "basketball,travel,music";
row[11] = "2003-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 60;
row[13] = 100;
row[14] = 160;
row[15] = 175;
row[16] = 150;
row[17] = 88;
row[18] = 126;
row[19] = 0.1;
row[20] = 0.3;
row[21] = 1.5;
row[22] = 1.2;
row[23] = 3;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 107;
row[1] = "黄倩倩";
row[2] = "2000";
row[1] = "黄婷婷";
row[2] = 2008;
row[3] = true;
row[4] = "数学系";
row[5] = 4;
row[5] = 3;
row[6] = 0;
row[7] = DateTime.Now.AddDays(-40);
row[8] = "黄倩倩25岁出生于中国北方的一个小山村毕业于北京科学技术大学。";
row[7] = DateTime.Now.AddDays(-50);
row[8] = "黄婷婷25岁出生于中国北方的一个小山村毕业于北京科学技术大学。";
row[9] = Guid.NewGuid();
row[10] = "travel,movie,music,reading";
row[11] = "2000-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 100;
row[13] = 80;
row[14] = 180;
row[15] = 160;
row[16] = 80;
row[17] = 70;
row[18] = 110;
row[19] = 0.8;
row[20] = 0.8;
row[21] = 1.2;
row[22] = 1.2;
row[23] = 3;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 108;
row[1] = "唐超";
row[2] = "2004";
row[2] = 2004;
row[3] = false;
row[4] = "物理系";
row[5] = 4;
row[5] = 3;
row[6] = 1;
row[7] = DateTime.Now.AddDays(-30);
row[8] = "唐超26岁出生于中国河南的一个小山村毕业于中国科学技术大学。";
row[7] = DateTime.Now.AddDays(-50);
row[8] = "唐超26岁出生于中国河南的一个小山村毕业于中国科学技术大学。<br/>作为刘国的同班同学,唐超是班里的尖子生,本科还没毕业就被哈佛大学录取了,现在好像还没毕业呢。";
row[9] = Guid.NewGuid();
row[10] = "reading,movie,music,basketball";
row[11] = "2004-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 80;
row[13] = 80;
row[14] = 160;
row[15] = 188;
row[16] = 130;
row[17] = 82;
row[18] = 130;
row[19] = 0.5;
row[20] = 0.8;
row[21] = 1.3;
row[22] = 1.2;
row[23] = 3;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 109;
row[1] = "杨娟娟";
row[2] = "2003";
row[1] = "杨婷婷";
row[2] = 2004;
row[3] = true;
row[4] = "物理系";
row[5] = 5;
row[6] = 0;
row[7] = DateTime.Now.AddDays(-20);
row[8] = "杨娟娟25岁出生于中国广西的一个小山村毕业于南方科学技术大学。";
row[7] = DateTime.Now.AddDays(-50);
row[8] = "杨婷婷25岁出生于中国广西的一个小山村毕业于南方科学技术大学。<br/>杨婷婷的父母都是中科大的高材生,他们很高兴送女儿上一所前中科大校长创办的大学,而南科大自己颁发的学位文凭也颇受争议。";
row[9] = Guid.NewGuid();
row[10] = "reading,basketball,movie";
row[11] = "2003-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 90;
row[13] = 60;
row[14] = 150;
row[15] = 166;
row[16] = 110;
row[17] = 70;
row[18] = 116;
row[19] = 0.8;
row[20] = 1.0;
row[21] = 0.8;
row[22] = 1.0;
row[23] = 5;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 110;
row[1] = "徐鹏";
row[2] = "2002";
row[2] = 2002;
row[3] = false;
row[4] = "物理系";
row[5] = 5;
row[6] = 1;
row[7] = DateTime.Now.AddDays(-10);
row[7] = DateTime.Now.AddDays(-50);
row[8] = "徐鹏23岁出生于中国安徽的一个小山村毕业于国防科学技术大学。";
row[9] = Guid.NewGuid();
row[10] = "reading,basketball,travel";
row[11] = "2002-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 60;
row[13] = 90;
row[14] = 150;
row[15] = 198;
row[16] = 145;
row[17] = 83;
row[18] = 128;
row[19] = 1.2;
row[20] = 1.5;
row[21] = 1.2;
row[22] = 1.5;
row[23] = 5;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 111;
row[1] = "纪玲玲";
row[2] = "2006";
row[1] = "纪婷婷";
row[2] = 2012;
row[3] = true;
row[4] = "自动化系";
row[5] = 5;
row[6] = 0;
row[7] = DateTime.Now.AddDays(-5);
row[8] = "纪玲玲22岁出生于中国台湾的一个小山村毕业于台湾科学技术大学。";
row[8] = "纪婷婷22岁出生于中国台湾的一个小山村毕业于台湾科学技术大学。";
row[9] = Guid.NewGuid();
row[10] = "reading,movie,music,basketball";
row[11] = "2006-09-01";
row[12] = 0;
row[13] = 0;
row[14] = 0;
row[12] = 90;
row[13] = 70;
row[14] = 160;
row[15] = 158;
row[16] = 76;
row[17] = 69;
row[18] = 109;
row[19] = 0.8;
row[20] = 0.6;
row[21] = 1.2;
row[22] = 1.2;
row[23] = 5;
table.Rows.Add(row);
row = table.NewRow();
row[0] = 112;
row[1] = "张一驰";
row[2] = 2012;
row[3] = true;
row[4] = "材料科学与工程系";
row[5] = 5;
row[6] = 1;
row[7] = DateTime.Now.AddDays(-5);
row[8] = "张一驰28岁出生于中国河南的一个小山村毕业于中国科学技术大学。";
row[9] = Guid.NewGuid();
row[10] = "reading,movie,music";
row[11] = "2000-09-01";
row[12] = 99;
row[13] = 98;
row[14] = 197;
row[15] = 183;
row[16] = 125;
row[17] = 80;
row[18] = 120;
row[19] = 0.8;
row[20] = 0.6;
row[21] = 1.2;
row[22] = 1.2;
row[23] = 5;
table.Rows.Add(row);
return table;
}
@ -861,7 +1098,7 @@ namespace FineUI.Examples
DataTable table = new DataTable();
table.Columns.Add(new DataColumn("Id", typeof(int)));
table.Columns.Add(new DataColumn("Name", typeof(String)));
table.Columns.Add(new DataColumn("EntranceYear", typeof(String)));
table.Columns.Add(new DataColumn("EntranceYear", typeof(int)));
table.Columns.Add(new DataColumn("AtSchool", typeof(bool)));
table.Columns.Add(new DataColumn("Major", typeof(String)));
table.Columns.Add(new DataColumn("Group", typeof(int)));
@ -889,6 +1126,19 @@ namespace FineUI.Examples
#endregion
#region
/// <summary>
/// 获取回发的参数
/// </summary>
/// <returns></returns>
public string GetRequestEventArgument()
{
return Request.Form["__EVENTARGUMENT"];
}
#endregion
}
}

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -1,28 +1,55 @@
<?xml version="1.0"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
<section name="FineUI" type="FineUI.ConfigSection, FineUI" requirePermission="false"/>
<section name="FineUI" type="FineUI.ConfigSection, FineUI" requirePermission="false" />
</configSections>
<!-- 可用的配置项(这里列的都是默认值): Language="zh_CN" AjaxTimeout="60" EnableAjax="true" Theme="Blue" FormMessageTarget="Qtip" FormOffsetRight="20" FormLabelWidth="100" FormLabelSeparator="" FormLabelAlign="Left" IconBasePath="~/icon" EnableAjaxLoading="true" AjaxLoadingType="Default" CustomTheme="" CustomThemeBasePath="~/theme" ExtjsBasePath="~/extjs" -->
<FineUI DebugMode="true" />
<appSettings/>
<connectionStrings/>
<!-- 可用的配置项(这里列的都是默认值):
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"
-->
<FineUI DebugMode="true" Theme="Neptune" />
<appSettings />
<connectionStrings />
<system.web>
<!-- Net3.5以上的项目一定要为pages节点加上这两个属性controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" -->
<!-- Net3.5以上的项目一定要为pages节点加上这两个属性
controlRenderingCompatibilityVersion="3.5"
clientIDMode="AutoID"
-->
<pages>
<controls>
<add assembly="FineUI" namespace="FineUI" tagPrefix="x"/>
<add assembly="FineUI" namespace="FineUI" tagPrefix="f" />
</controls>
</pages>
<httpModules>
<add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI"/>
<add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI" />
</httpModules>
<httpHandlers>
<add verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI" validate="false"/>
<add verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI" validate="false" />
</httpHandlers>
<httpRuntime maxRequestLength="102400 "/>
<customErrors mode="Off"/>
<compilation debug="true"/>
<httpRuntime maxRequestLength="102400 " />
<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">

View File

@ -4,40 +4,45 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:Accordion ID="Accordion1" Title="手风琴控件" runat="server" Width="300px" Height="450px"
EnableFill="true" ShowBorder="True" ActiveIndex="1" EnableFrame="true" EnableCollapse="true">
<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>
<x:AccordionPane ID="AccordionPane1" runat="server" Title="面板一" IconUrl="../images/16/1.png"
<f:AccordionPane ID="AccordionPane1" runat="server" Title="面板一" IconUrl="~/res/images/16/1.png"
BodyPadding="2px 5px" ShowBorder="false">
<Items>
<x:Label ID="Label1" Text="面板一中的文本" runat="server">
</x:Label>
<f:Label ID="Label1" Text="面板一中的文本" runat="server">
</f:Label>
</Items>
</x:AccordionPane>
<x:AccordionPane ID="AccordionPane2" runat="server" Title="面板二" IconUrl="../images/16/4.png"
</f:AccordionPane>
<f:AccordionPane ID="AccordionPane2" runat="server" Title="面板二" IconUrl="~/res/images/16/4.png"
BodyPadding="2px 5px" ShowBorder="false">
<Items>
<x:Label ID="Label2" Text="面板二中的文本" runat="server">
</x:Label>
<f:Label ID="Label2" Text="面板二中的文本" runat="server">
</f:Label>
</Items>
</x:AccordionPane>
<x:AccordionPane ID="AccordionPane3" runat="server" Title="面板三" IconUrl="../images/16/7.png"
</f:AccordionPane>
<f:AccordionPane ID="AccordionPane3" runat="server" Title="面板三" IconUrl="~/res/images/16/7.png"
BodyPadding="2px 5px" ShowBorder="false">
<Items>
<x:Label ID="Label3" Text="面板三中的文本" runat="server">
</x:Label>
<f:Label ID="Label3" Text="面板三中的文本" runat="server">
</f:Label>
</Items>
</x:AccordionPane>
</f:AccordionPane>
</Panes>
</x:Accordion>
</f:Accordion>
<br />
<x:Button ID="Button1" Text="获取当前展开的面板" runat="server" OnClick="Button1_Click">
</x:Button>
<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

@ -17,7 +17,18 @@ namespace FineUI.Examples.accordion
protected void Button1_Click(object sender, EventArgs e)
{
Alert.ShowInTop(String.Format("当前展开的是第 {0} 个面板", Accordion1.ActiveIndex + 1));
Alert.ShowInTop(String.Format("当前展开的是第 {0} 个面板", Accordion1.ActivePaneIndex + 1));
}
protected void Button2_Click(object sender, EventArgs e)
{
var nextIndex = Accordion1.ActivePaneIndex + 1;
if (nextIndex >= Accordion1.Panes.Count)
{
nextIndex = 0;
}
Accordion1.ActivePaneIndex = nextIndex;
}
}
}

View File

@ -101,5 +101,14 @@ namespace FineUI.Examples.accordion {
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Button1;
/// <summary>
/// Button2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Button2;
}
}

View File

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

View File

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

View File

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

View File

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

View File

@ -4,31 +4,34 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" AjaxAspnetControls="aspBox,aspButton" runat="server" />
<x:ContentPanel ID="ContentPanel1" runat="server" Width="650px" BodyPadding="5px"
<f:PageManager ID="PageManager1" AjaxAspnetControls="aspBox" runat="server" />
<f:ContentPanel ID="ContentPanel1" runat="server" Width="650px" BodyPadding="5px"
ShowBorder="true" ShowHeader="true" Title="内容面板">
<x:TextBox runat="server" Width="300px" ID="extBox">
</x:TextBox>
<f:TextBox runat="server" Width="300px" ID="extBox">
</f:TextBox>
<br />
<asp:TextBox runat="server" Width="300px" ID="aspBox"></asp:TextBox>
<br />
<br />
<x:Button ID="Button1" runat="server" CssClass="inline" Text="1. FineUI 按钮AJAX"
<f:Button ID="Button1" runat="server" CssClass="marginr" Text="1. FineUI 按钮AJAX"
OnClick="Button1_Click">
</x:Button>
<x:Button ID="Button2" runat="server" Text="2. FineUI 按钮" EnableAjax="false" OnClick="Button2_Click">
</x:Button>
</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" />
</x:ContentPanel>
<br />
注意只有设置ASP.NET按钮的属性UseSubmitBehavior=false点击事件才是AJAX否则点击ASP.NET按钮会导致整个页面回发。
<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

@ -5,11 +5,11 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/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" />
<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>
@ -18,8 +18,8 @@
<asp:Literal ID="Literal2" Text="Literal2" runat="server"></asp:Literal>
</div>
<br />
<x:Button ID="Button1" runat="server" Text="更新上面几个文本值" OnClick="Button1_Click">
</x:Button>
<f:Button ID="Button1" runat="server" Text="更新上面几个文本值" OnClick="Button1_Click">
</f:Button>
<br />
注意只有Label1和Literal2的值更新了。
</form>

View File

@ -4,16 +4,17 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:Button Text="点击弹出对话框" runat="server" ID="btnHello" OnClick="btnHello_Click">
</x:Button>
<br />
<x:Button Text="在顶层窗口弹出对话框" runat="server" ID="btnHello2" OnClick="btnHello2_Click">
</x:Button>
<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

@ -4,7 +4,7 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">

View File

@ -4,39 +4,44 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<f:PageManager ID="PageManager1" runat="server" />
用户名admin
<br />
<br />
密码admin
<br />
注意在任意文本输入框内按回车键都会触发按钮Type="Submit")的表单提交事件。
<x:Window ID="Window1" runat="server" Title="登录表单" IsModal="false" EnableClose="false"
WindowPosition="GoldenSection" Width="350px" FooterBarAlign="Right">
<Items>
<x:SimpleForm ID="SimpleForm1" runat="server" ShowBorder="false" BodyPadding="10px"
LabelWidth="60px" ShowHeader="false">
<Items>
<x:TextBox ID="tbxUserName" Label="用户名" Required="true" runat="server">
</x:TextBox>
<x:TextBox ID="tbxPassword" Label="密码" TextMode="Password" Required="true" runat="server">
</x:TextBox>
</Items>
</x:SimpleForm>
</Items>
<Toolbars>
<x:Toolbar ID="Toolbar1" runat="server" Position="Footer">
<Items>
<x:Button ID="btnLogin" Text="登录" Type="Submit" ValidateForms="SimpleForm1" ValidateTarget="Top"
runat="server" OnClick="btnLogin_Click">
</x:Button>
</Items>
</x:Toolbar>
</Toolbars>
</x:Window>
<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

@ -83,5 +83,14 @@ namespace FineUI.Examples.basic {
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnLogin;
/// <summary>
/// btnReset 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnReset;
}
}

View File

@ -5,51 +5,54 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
用户名admin
<f:PageManager ID="PageManager1" runat="server" />
用户名admin
<br />
密码admin
密码admin
<br />
<br />
<x:Window ID="Window1" runat="server" Title="登录表单" IsModal="false" EnableClose="false"
WindowPosition="GoldenSection" Width="350px">
<Items>
<x:SimpleForm ID="SimpleForm1" runat="server" ShowBorder="false" BodyPadding="10px"
LabelWidth="60px" ShowHeader="false">
<Items>
<x:TextBox ID="tbxUserName" Label="用户名" Required="true" runat="server">
</x:TextBox>
<x:TextBox ID="tbxPassword" Label="密码" TextMode="Password" Required="true" runat="server">
</x:TextBox>
<x:TextBox ID="tbxCaptcha" Label="验证码" Required="true" runat="server">
</x:TextBox>
<x:Panel CssStyle="padding-left:65px;" ShowBorder="false" ShowHeader="false"
runat="server">
<Items>
<x:Image ID="imgCaptcha" CssStyle="float:left;width:160px;" runat="server" ShowEmptyLabel="true">
</x:Image>
<x:LinkButton CssStyle="float:left;padding-top:8px;" ID="btnRefresh" Text="看不清?"
runat="server" OnClick="btnRefresh_Click">
</x:LinkButton>
</Items>
</x:Panel>
</Items>
</x:SimpleForm>
</Items>
<Toolbars>
<x:Toolbar ID="Toolbar1" runat="server" Position="Footer">
<Items>
<x:Button ID="btnLogin" Text="登录" Type="Submit" ValidateForms="SimpleForm1" ValidateTarget="Top"
runat="server" OnClick="btnLogin_Click">
</x:Button>
</Items>
</x:Toolbar>
</Toolbars>
</x:Window>
<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

@ -110,5 +110,14 @@ namespace FineUI.Examples.basic {
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnLogin;
/// <summary>
/// btnReset 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnReset;
}
}

View File

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

View File

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

View File

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

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.redbutton button
{
@ -14,27 +14,27 @@
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:Button ID="btnChangeEnable" Text="启用后面的按钮" runat="server" OnClick="btnChangeEnable_Click"
CssClass="inline" />
<x:Button ID="btnEnable" Text="禁用的按钮" OnClick="btnEnable_Click" 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 />
<x:Button ID="btnChangePressed" Text="改变后面按钮的按下状态" runat="server" OnClick="btnChangePressed_Click"
CssClass="inline" />
<x:Button ID="btnPressed" Text="按下的按钮" runat="server" EnablePress="true" Pressed="true" />
<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 />
<x:Button ID="btnTooltip" Text="这个按钮有提示信息(点击改变提示信息)" ToolTip="这是按钮的提示信息" OnClick="btnTooltip_Click"
<f:Button ID="btnTooltip" Text="这个按钮有提示信息(点击改变提示信息)" ToolTip="这是按钮的提示信息" OnClick="btnTooltip_Click"
runat="server">
</x:Button>
</f:Button>
<br />
<br />
<x:Button ID="Button1" Text="普通按钮" runat="server" EnablePostBack="false" CssClass="inline" />
<x:Button ID="Button2" Text="中等大小按钮" runat="server" Size="Medium" EnablePostBack="false"
CssClass="inline" />
<x:Button ID="Button3" Text="大按钮" runat="server" Size="Large" EnablePostBack="false" />
<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

@ -4,20 +4,20 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:Button ID="btnServerClick" Text="服务器端事件" OnClick="btnServerClick_Click" runat="server">
</x:Button>
<f:PageManager ID="PageManager1" runat="server" />
<f:Button ID="btnServerClick" Text="服务器端事件" OnClick="btnServerClick_Click" runat="server">
</f:Button>
<br />
<br />
<x:Button ID="btnClientClick" Text="客户端事件" OnClientClick="alert('这是客户端事件');" EnablePostBack="false"
CssClass="inline" runat="server">
</x:Button>
<x:Button ID="btnClientClick2" Text="服务器端生成的客户端事件" EnablePostBack="false" runat="server">
</x:Button>
<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>

View File

@ -4,29 +4,32 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.bgbtn {
background: url(../images/login.png) no-repeat;
background-image: url(../res/images/login.png) !important;
width: 320px;
height: 50px;
border-width: 0;
background-color: transparent;
}
.bgbtn .x-btn-tl, .bgbtn .x-btn-tr, .bgbtn .x-btn-tc,
.bgbtn .x-btn-ml, .bgbtn .x-btn-mr, .bgbtn .x-btn-mc,
.bgbtn .x-btn-bl, .bgbtn .x-btn-br, .bgbtn .x-btn-bc {
.bgbtn .x-frame-ml, .bgbtn .x-frame-mc, .bgbtn .x-frame-mr,
.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">
<x:PageManager ID="PageManager1" runat="server" />
<x:Button ID="Button1" Text="普通按钮" runat="server" Size="Large" OnClick="Button1_Click" />
<f:PageManager ID="PageManager1" runat="server" />
<f:Button ID="Button1" Text="普通按钮" runat="server" Size="Large" OnClick="Button1_Click" />
<br />
<br />
<x:Button ID="Button2" Text="" CssClass="bgbtn" runat="server" OnClick="Button2_Click" />
<f:Button ID="Button2" Text="" CssClass="bgbtn" runat="server" OnClick="Button2_Click" />
</form>
</body>

View File

@ -4,29 +4,29 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:Button ID="btnIcon1" Text="图标在左侧" Icon="Report" runat="server" CssClass="inline" />
<x:Button ID="btnIcon2" Text="图标在右侧" IconAlign="Right" Icon="Report" 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 />
<x:Button ID="btnIcon3" Text="图标在上面" IconAlign="Top" Icon="Report" runat="server"
CssClass="inline" />
<x:Button ID="btnIcon4" Text="图标在下面" IconAlign="Bottom" Icon="Report" runat="server" />
<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 />
<x:Button ID="btnCustomIcon" Text="自定义图标(点击修改图标)" OnClick="btnCustomIcon_Click"
IconUrl="~/images/16/1.png" runat="server" />
<f:Button ID="btnCustomIcon" Text="自定义图标(点击修改图标)" OnClick="btnCustomIcon_Click"
IconUrl="~/res/images/16/1.png" runat="server" />
<br />
<br />
只有图片的按钮:
<br />
<br />
<x:Button ID="Button1" IconUrl="~/images/16/1.png" CssClass="inline" runat="server" />
<x:Button ID="Button2" IconUrl="~/images/16/8.png" runat="server" />
<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>

View File

@ -15,7 +15,14 @@ namespace FineUI.Examples.button
protected void btnCustomIcon_Click(object sender, EventArgs e)
{
btnCustomIcon.IconUrl = "~/images/16/8.png";
if (btnCustomIcon.IconUrl.EndsWith("1.png"))
{
btnCustomIcon.IconUrl = "~/res/images/16/8.png";
}
else
{
btnCustomIcon.IconUrl = "~/res/images/16/1.png";
}
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,46 +1,48 @@
<?xml version="1.0" encoding="utf-8" ?>
<Tree>
<TreeNode Text="配置信息">
<TreeNode Text="发布历史" NavigateUrl="http://fineui.com/version/index.html?from=demo">
</TreeNode>
<TreeNode Text="版本发布周期" NavigateUrl="~/config/release_time_chart.htm" >
</TreeNode>
<TreeNode Text="配置 Web.config" NavigateUrl="~/config/modify_webconfig.htm" >
</TreeNode>
<TreeNode Text="内置图标" NavigateUrl="~/config/icons.htm" >
</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="基本用法">
<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/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="按钮控件">
<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="自定义按钮" NavigateUrl="~/button/button_custom.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="表单控件">
<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>
@ -84,11 +86,11 @@
</TreeNode>
<TreeNode Text="更新复选框列表" NavigateUrl="~/form/checkboxlist_update.aspx" >
</TreeNode>
<TreeNode Text="单选按钮" NavigateUrl="~/form/radiobutton.aspx" >
<TreeNode Text="单选" NavigateUrl="~/form/radiobutton.aspx" >
</TreeNode>
<TreeNode Text="单选按钮列表" NavigateUrl="~/form/radiobuttonlist.aspx" >
<TreeNode Text="单选列表" NavigateUrl="~/form/radiobuttonlist.aspx" >
</TreeNode>
<TreeNode Text="更新单选按钮列表" NavigateUrl="~/form/radiobuttonlist_update.aspx" >
<TreeNode Text="更新单选列表" NavigateUrl="~/form/radiobuttonlist_update.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="表单验证">
@ -114,38 +116,54 @@
<TreeNode Text="表单布局">
<TreeNode Text="按钮与表单" NavigateUrl="~/form/layout_panel.aspx" >
</TreeNode>
<TreeNode Text="自定义SimpleForm布局" NavigateUrl="~/form/layout_panel2.aspx" >
<TreeNode Text="自定义表单布局" NavigateUrl="~/form/layout_panel2.aspx" >
</TreeNode>
<TreeNode Text="复杂布局(联系我们)" NavigateUrl="~/form/layout_contactus.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="复杂布局(账单信息)" NavigateUrl="~/form/layout_checkout.aspx" IsNew="true" >
</TreeNode>
</TreeNode>
<TreeNode Text="其他">
<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="模拟树的下拉列表" NavigateUrl="~/dropdownlist/dropdownlist_simulate_tree.aspx" >
</TreeNode>
<TreeNode Text="中国省市县联动" NavigateUrl="~/dropdownlist/shengshixian.aspx" >
</TreeNode>
<TreeNode Text="下拉列表MatchFieldWidth" NavigateUrl="~/dropdownlist/dropdownlist_matchfieldwidth.aspx" IsNew="true">
</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 Text="下拉列表(自动回发)" NavigateUrl="~/dropdownlist/multiselect_autopostback.aspx" IsNew="true">
</TreeNode>
</TreeNode>
</TreeNode>
<TreeNode Text="杂项">
<TreeNode Text="重置表单" NavigateUrl="~/form/form_reset.aspx" >
</TreeNode>
<TreeNode Text="隐藏表单字段" NavigateUrl="~/form/form_hide_field.aspx" >
</TreeNode>
<TreeNode Text="按钮水平居中" NavigateUrl="~/form/form_center_button.aspx" >
</TreeNode>
</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 Text="禁用与只读" NavigateUrl="~/form/form_disabled.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="绑定到复合列表" NavigateUrl="~/dropdownlist/databind/dropdownlist_compositelist.aspx" >
</TreeNode>
<TreeNode Text="绑定到 DataTable" NavigateUrl="~/dropdownlist/databind/dropdownlist_datatable.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="模拟树的下拉列表" NavigateUrl="~/dropdownlist/dropdownlist_simulate_tree.aspx" >
</TreeNode>
<TreeNode Text="中国省市县联动" NavigateUrl="~/dropdownlist/shengshixian.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="表格控件">
@ -168,32 +186,36 @@
</TreeNode>
<TreeNode Text="数据库分页(跨页保持选中行)" NavigateUrl="~/grid/grid_paging_database_selection.aspx" >
</TreeNode>
<TreeNode Text="数据库分页(底部工具栏)" NavigateUrl="~/grid/grid_paging_database_bbar.aspx" IsNew="true" >
</TreeNode>
</TreeNode>
<TreeNode Text="序号列">
<TreeNode Text="序号列与内存分页" NavigateUrl="~/grid/grid_rownumber_paging.aspx" >
<TreeNode Text="序号列(内存分页)" NavigateUrl="~/grid/grid_rownumber_paging.aspx" >
</TreeNode>
<TreeNode Text="序号列与数据库分页" NavigateUrl="~/grid/grid_rownumber_paging_database.aspx" >
<TreeNode Text="序号列(数据库分页)" NavigateUrl="~/grid/grid_rownumber_paging_database.aspx" >
</TreeNode>
<TreeNode Text="序号列的宽度" NavigateUrl="~/grid/grid_rownumber_width.aspx" >
<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>
<TreeNode Text="扩展列">
<TreeNode Text="复选列" NavigateUrl="~/grid/grid_checkall.aspx" >
</TreeNode>
<TreeNode Text="复选列(只能通过复选框选中行)" NavigateUrl="~/grid/grid_checkall_only.aspx" >
</TreeNode>
<TreeNode Text="行扩展列" NavigateUrl="~/grid/grid_rowexpander.aspx" >
</TreeNode>
<TreeNode Text="行扩展列(展开全部扩展列)" NavigateUrl="~/grid/grid_rowexpander_expandall.aspx" >
</TreeNode>
<TreeNode Text="行扩展列ExpandAllRowExpanders" NavigateUrl="~/grid/grid_rowexpander_expandall2.aspx" >
<TreeNode Text="行扩展列(展开全部)" NavigateUrl="~/grid/grid_rowexpander_expandall.aspx" >
</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_paging.aspx" >
</TreeNode>
<TreeNode Text="模拟树列(数据库分页)" NavigateUrl="~/grid/grid_simulate_tree_database_paging.aspx" >
</TreeNode>
<TreeNode Text="模拟树列(数据库分页,下拉列表定位省份)" NavigateUrl="~/grid/grid_simulate_tree_database_paging_dropdownlist.aspx" >
@ -202,10 +224,16 @@
<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">
@ -218,7 +246,55 @@
</TreeNode>
<TreeNode Text="复选框列(自动回发)" NavigateUrl="~/grid/grid_checkboxfield_autopostback.aspx" >
</TreeNode>
<TreeNode Text="全选行复选框" NavigateUrl="~/grid/grid_checkboxfield_rowcheckall.aspx" >
<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>
<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_forcefit.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="标题栏菜单">
<TreeNode Text="显示隐藏列" NavigateUrl="~/grid/grid_hdmenu_hidecolumn.aspx" >
</TreeNode>
<TreeNode Text="排序" NavigateUrl="~/grid/grid_hdmenu_sorting.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="模板列">
@ -238,87 +314,83 @@
</TreeNode>
<TreeNode Text="下拉列表同步到文本框" NavigateUrl="~/grid/grid_edit_dropdownlist_textbox.aspx" >
</TreeNode>
<TreeNode Text="自动保存用户输入的值" NavigateUrl="~/grid/grid_edit_save_auto.aspx" >
<TreeNode Text="定时保存用户输入的值" NavigateUrl="~/grid/grid_edit_save_auto.aspx" >
</TreeNode>
<TreeNode Text="手动保存用户输入的值" NavigateUrl="~/grid/grid_edit_save_manual.aspx" >
<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 Text="多表头(排序)" NavigateUrl="~/grid/grid_groupheader_sort.aspx" >
</TreeNode>
<TreeNode Text="多表头与标题栏菜单排序" NavigateUrl="~/grid/grid_groupheader_sort_hdmenu.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="导出Excel文件">
<TreeNode Text="GridView导出为Excel文件" NavigateUrl="~/grid/grid_excel_aspnet.aspx" >
</TreeNode>
<TreeNode Text="Grid导出为Excel文件" NavigateUrl="~/grid/grid_excel.aspx" >
</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_forcefitalltime.aspx" >
</TreeNode>
<!--<TreeNode Text="列宽度自适应(仅第一次加载)" NavigateUrl="~/grid/grid_width_forcefitfirsttime.aspx" >
</TreeNode>-->
</TreeNode>
<TreeNode Text="标题栏菜单">
<TreeNode Text="显示隐藏列" NavigateUrl="~/grid/grid_hdmenu_hidecolumn.aspx" >
</TreeNode>
<TreeNode Text="排序" NavigateUrl="~/grid/grid_hdmenu_sorting.aspx" >
<TreeNode Text="多表头(初始隐藏列)" NavigateUrl="~/grid/grid_groupheader_hidden.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="合计行">
<TreeNode Text="客户端分页合计" NavigateUrl="~/grid/grid_summary.aspx" >
<TreeNode Text="合计行" NavigateUrl="~/grid/grid_summary.aspx" >
</TreeNode>
<TreeNode Text="服务器端全部合计" NavigateUrl="~/grid/grid_summary_serverside.aspx" >
<TreeNode Text="合计行(纵向+横向滚动条)" NavigateUrl="~/grid/grid_summary_scrollbar_flow.aspx" >
</TreeNode>
<TreeNode Text="服务器端分页合计" NavigateUrl="~/grid/grid_summary_serverside_paged.aspx" >
<TreeNode Text="合计行(浮动到底部、纵向+横向滚动条)" NavigateUrl="~/grid/grid_summary_scrollbar.aspx" >
</TreeNode>
<!--<TreeNode Text="服务器端全部合计(绝对定位)" NavigateUrl="~/grid/grid_summary_absolute.aspx" >
<TreeNode Text="合计行(浮动到顶部、当前页合计)" NavigateUrl="~/grid/grid_summary_currentpage.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="单元格编辑">
<TreeNode Text="基本功能" NavigateUrl="~/grid/grid_editor_cell.aspx" >
</TreeNode>
<TreeNode Text="客户端单元格渲染" NavigateUrl="~/grid/grid_editor_cell_renderfunction.aspx" >
</TreeNode>
<TreeNode Text="后台绑定下拉列表" NavigateUrl="~/grid/grid_editor_cell_databind.aspx" >
</TreeNode>
<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_delete.aspx" >
</TreeNode>
<TreeNode Text="失去焦点事件" NavigateUrl="~/grid/grid_editor_cell_afteredit.aspx" >
</TreeNode>
<TreeNode Text="行扩展列与单元格编辑" IsNew="true" NavigateUrl="~/grid/grid_editor_cell_afteredit_rowexpander.aspx" >
</TreeNode>
<TreeNode Text="行扩展列与新增删除行" IsNew="true" NavigateUrl="~/grid/grid_editor_cell_new_delete_rowexpander.aspx" >
</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_editor_cell.aspx" >
<TreeNode Text="行与列样式">
<TreeNode Text="行样式" NavigateUrl="~/grid/grid_style_rowcolor.aspx" >
</TreeNode>
<TreeNode Text="可编辑单元格(客户端获取下拉列表的值)" NavigateUrl="~/grid/grid_editor_cell_renderfunction.aspx" >
<TreeNode Text="行样式(数据库分页)" NavigateUrl="~/grid/grid_style_rowcolor_paging_database.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="可编辑单元格(删除行)" NavigateUrl="~/grid/grid_editor_cell_delete.aspx" >
<TreeNode Text="样式(内存分页" NavigateUrl="~/grid/grid_style_rowcolor_paging.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="可编辑单元格(新增行)" NavigateUrl="~/grid/grid_editor_cell_new.aspx" >
<TreeNode Text="列样式" NavigateUrl="~/grid/grid_style_columnclass.aspx" IsNew="true" >
</TreeNode>
<TreeNode Text="可编辑单元格(新增行+删除行)" NavigateUrl="~/grid/grid_editor_cell_new_delete.aspx" >
</TreeNode>
<TreeNode Text="可编辑单元格(失去焦点事件)" NavigateUrl="~/grid/grid_editor_cell_afteredit.aspx" >
</TreeNode>
</TreeNode>-->
<TreeNode Text="其他">
</TreeNode>
<TreeNode Text="杂项">
<TreeNode Text="主从表联动" NavigateUrl="~/grid/grid_twogrid.aspx" >
</TreeNode>
<TreeNode Text="改变行背景色" NavigateUrl="~/grid/grid_rowcolor.aspx" >
</TreeNode>
<TreeNode Text="列文本的显示位置" NavigateUrl="~/grid/grid_centercolumn.aspx" >
<TreeNode Text="文本居中显示(标题靠左)" NavigateUrl="~/grid/grid_centercolumn.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="显示隐藏列" NavigateUrl="~/grid/grid_hidecolumn.aspx" >
</TreeNode>
@ -334,6 +406,10 @@
</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_hide_gridheader.aspx" IsNew="true">
</TreeNode>
</TreeNode>
</TreeNode>
<TreeNode Text="树控件">
@ -364,58 +440,110 @@
</TreeNode>
<TreeNode Text="选中多行" NavigateUrl="~/tree/select/tree_multi_select.aspx" >
</TreeNode>
<TreeNode Text="选中行的回发事件" NavigateUrl="~/tree/select/tree_nodecommand.aspx" >
</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>
<TreeNode Text="选项卡控件">
<TreeNode Text="基本用法" NavigateUrl="~/tabstrip/tabstrip.aspx" >
<TreeNode Text="其他控件">
<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="自动回发" NavigateUrl="~/tabstrip/tabstrip_autopostback.aspx" >
<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>
<TreeNode Text="关闭按钮" NavigateUrl="~/tabstrip/tabstrip_enableclose.aspx" >
<TreeNode Text="面板与窗体">
<TreeNode Text="面板" NavigateUrl="~/window/panel.aspx" >
</TreeNode>
<TreeNode Text="分组面板" NavigateUrl="~/window/group_panel.aspx" >
</TreeNode>
<TreeNode Text="面板的折叠事件" NavigateUrl="~/window/panel_collapse.aspx" >
</TreeNode>
<TreeNode Text="窗体" NavigateUrl="~/window/window.aspx" >
</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="动态添加标签" NavigateUrl="~/tabstrip/tabstrip_addtab.aspx" >
<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/toolbar_images_fixedwidth.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="工具栏上的图片(动态调整)" NavigateUrl="~/toolbar/toolbar_images.aspx" IsNew="true">
</TreeNode>
</TreeNode>
<TreeNode Text="内嵌 IFrame" NavigateUrl="~/tabstrip/tabstrip_iframe.aspx" >
<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="内嵌 IFrame在IFrame内启用标签" NavigateUrl="~/tabstrip/tabstrip_iframe_disabled.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="手风琴控件">
<TreeNode Text="基本用法" NavigateUrl="~/accordion/accordion.aspx" >
</TreeNode>
<!--<TreeNode Text="Links" NavigateUrl="~/accordion/accordion_links.aspx" >
</TreeNode>-->
<TreeNode Text="手风琴+树控件" NavigateUrl="~/accordion/accordion_tree.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="面板与窗体">
<TreeNode Text="面板" NavigateUrl="~/window/panel.aspx" >
</TreeNode>
<TreeNode Text="分组面板" NavigateUrl="~/window/group_panel.aspx" >
</TreeNode>
<TreeNode Text="窗体" NavigateUrl="~/window/window.aspx" >
</TreeNode>
<TreeNode Text="窗体与工具栏" NavigateUrl="~/window/window_toolbar.aspx" >
<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="页面布局">
<TreeNode Text="布局 - Fit" NavigateUrl="~/layout/fit.aspx" >
<TreeNode Text="布局Fit" NavigateUrl="~/layout/fit.aspx" >
</TreeNode>
<TreeNode Text="布局 - Anchor" NavigateUrl="~/layout/anchor.aspx" >
<TreeNode Text="布局Anchor" NavigateUrl="~/layout/anchor.aspx" >
</TreeNode>
<TreeNode Text="布局 - Column" NavigateUrl="~/layout/column.aspx" >
<TreeNode Text="布局Column" NavigateUrl="~/layout/column.aspx" >
</TreeNode>
<TreeNode Text="布局 - Row" NavigateUrl="~/layout/row.aspx" >
<TreeNode Text="布局Absolute" NavigateUrl="~/layout/absolute.aspx" >
</TreeNode>
<TreeNode Text="布局 - Absolute" NavigateUrl="~/layout/absolute.aspx" >
<TreeNode Text="布局Table" NavigateUrl="~/layout/table.aspx" >
</TreeNode>
<TreeNode Text="布局 - Table" NavigateUrl="~/layout/table.aspx" >
<TreeNode Text="布局HBox" NavigateUrl="~/layout/hbox.aspx" >
</TreeNode>
<TreeNode Text="布局 - HBox" NavigateUrl="~/layout/hbox.aspx" >
<TreeNode Text="布局VBox" NavigateUrl="~/layout/vbox.aspx" >
</TreeNode>
<TreeNode Text="布局 - VBox" NavigateUrl="~/layout/vbox.aspx" >
<TreeNode Text="布局Region" NavigateUrl="~/layout/region.aspx" IsNew="true" >
</TreeNode>
</TreeNode>
<TreeNode Text="内联框架">
@ -425,97 +553,101 @@
</TreeNode>
<TreeNode Text="子窗口向父窗口传值" NavigateUrl="~/iframe/passvalue_iframe.aspx" >
</TreeNode>
<TreeNode Text="新窗口中选择省份" NavigateUrl="~/iframe/selectprovince1.aspx" >
<TreeNode Text="新窗口中选择省份JavaScript实现" NavigateUrl="~/iframe/selectprovince1.aspx" >
</TreeNode>
<TreeNode Text="新窗口中选择省份二" NavigateUrl="~/iframe/selectprovince2.aspx" >
<TreeNode Text="新窗口中选择省份GetHidePostBackReference" NavigateUrl="~/iframe/selectprovince3.aspx" >
</TreeNode>
<TreeNode Text="新窗口中选择省份三" NavigateUrl="~/iframe/selectprovince3.aspx" >
<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_top.aspx" >
<TreeNode Text="回发父页面" NavigateUrl="~/iframe/parent_postback.aspx" >
</TreeNode>
<TreeNode Text="回发父页面2" NavigateUrl="~/iframe/parent_postback.aspx" >
<TreeNode Text="回发父页面(改变属性或者注册脚本)" NavigateUrl="~/iframe/parent_postback_top.aspx" IsNew="true">
</TreeNode>
<TreeNode Text="顶部菜单框架(" NavigateUrl="~/iframe/topmenu/default.aspx" >
<TreeNode Text="顶部菜单框架(左侧树" NavigateUrl="~/iframe/topmenu/default.aspx" >
</TreeNode>
<TreeNode Text="顶部菜单框架(" NavigateUrl="~/iframe/topmenu2/default.aspx" >
<TreeNode Text="顶部菜单框架(左侧IFrame中的树" NavigateUrl="~/iframe/topmenu2/default.aspx" >
</TreeNode>
<TreeNode Text="顶部菜单框架(三)" NavigateUrl="~/iframe/topmenu3/default.aspx" >
<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="ASP.NET控件">
<TreeNode Text="ASP.NET 控件" NavigateUrl="~/aspnet/aspnet.aspx" >
</TreeNode>
<TreeNode Text="Label与Literal的区别" NavigateUrl="~/aspnet/aspnet_literal.aspx" >
</TreeNode>
<TreeNode Text="FCKEditor控件">
<TreeNode Text="FCKEditor控件" NavigateUrl="~/aspnet/fckeditor.aspx" >
<TreeNode Text="第三方组件">
<TreeNode Text="My97日期控件">
<TreeNode Text="My97日期控件" NavigateUrl="~/third-party/my97/my97.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="CKEditor控件">
<TreeNode Text="CKEditor控件" NavigateUrl="~/aspnet/ckeditor.aspx" >
<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="UEditor控件">
<TreeNode Text="UEditor控件" NavigateUrl="~/aspnet/ueditor.aspx" >
<TreeNode Text="UMEditor">
<TreeNode Text="UMEditor" NavigateUrl="~/third-party/umeditor/umeditor.aspx" >
</TreeNode>
<TreeNode Text="多个UEditor控件" NavigateUrl="~/aspnet/ueditor_two.aspx" >
</TreeNode>
<TreeNode Text="UEditor">
<TreeNode Text="UEditor" NavigateUrl="~/third-party/ueditor/ueditor.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>
<TreeNode Text="TinyMCE">
<TreeNode Text="TinyMCE" NavigateUrl="~/third-party/tinymce/tinymce.aspx" >
</TreeNode>
</TreeNode>
</TreeNode>
<TreeNode Text="用户控件">
<TreeNode Text="用户控件" NavigateUrl="~/usercontrol/userinfo.aspx" >
<TreeNode Text="杂项">
<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="动态添加用户控件" NavigateUrl="~/usercontrol/userinfo_dynamic.aspx" >
<TreeNode Text="消息框">
<TreeNode Text="响应确认对话框的按钮" NavigateUrl="~/other/confirm_cancel.aspx">
</TreeNode>
<TreeNode Text="响应确认对话框的按钮(推荐做法)" NavigateUrl="~/other/confirm_cancel2.aspx">
</TreeNode>
<TreeNode Text="自定义对话框图标" NavigateUrl="~/other/alert.aspx">
</TreeNode>
<TreeNode Text="页面回发提示" NavigateUrl="~/other/ajax_loading.aspx">
</TreeNode>
</TreeNode>
<TreeNode Text="用户控件与布局" NavigateUrl="~/usercontrol/userinfo2.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="工具栏和菜单">
<TreeNode Text="内联菜单" NavigateUrl="~/toolbar/menu.aspx" >
</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">
</TreeNode>
<TreeNode Text="单选框与复选框菜单" NavigateUrl="~/toolbar/menucheckbox.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="自动补全组件">
<TreeNode Text="内联数据" NavigateUrl="~/autocomplete/inline.aspx" >
</TreeNode>
<TreeNode Text="自动补全邮件地址" NavigateUrl="~/autocomplete/email.aspx" >
</TreeNode>
<TreeNode Text="多行显示补全数据" NavigateUrl="~/autocomplete/custom_display.aspx" >
</TreeNode>
<TreeNode Text="输入逗号分隔的多个值" NavigateUrl="~/autocomplete/multi_values.aspx" >
</TreeNode>
<TreeNode Text="输入多值(数据来自远程服务器)" NavigateUrl="~/autocomplete/multi_values_remote.aspx" >
</TreeNode>
<TreeNode Text="客户端缓存(数据来自远程服务器)" NavigateUrl="~/autocomplete/remote_with_cache.aspx" >
</TreeNode>
</TreeNode>
<TreeNode Text="其它">
<TreeNode Text="定时器" NavigateUrl="~/other/timer.aspx" >
</TreeNode>
<TreeNode Text="自定义回发" NavigateUrl="~/other/custom_postback.aspx">
<TreeNode Text="自定义回发__doPostBack" NavigateUrl="~/other/custom_postback.aspx">
</TreeNode>
<TreeNode Text="确认对话框的取消按钮" NavigateUrl="~/other/confirm_cancel.aspx">
<TreeNode Text="自定义回发F.customEvent" NavigateUrl="~/other/custom_postback2.aspx">
</TreeNode>
<TreeNode Text="文本框的keypress事件" NavigateUrl="~/other/custom_postback.aspx">
<TreeNode Text="文本框改变客户端事件" NavigateUrl="~/other/keydown.aspx">
</TreeNode>
<TreeNode Text="CssClass属性" NavigateUrl="~/other/cssstyle.aspx">
</TreeNode>
<TreeNode Text="向父页面添加选项卡" NavigateUrl="~/other/addtab.aspx">
</TreeNode>
<TreeNode Text="Ajax提示信息" NavigateUrl="~/other/ajax_loading.aspx">
</TreeNode>
<TreeNode Text="自定义对话框图标" NavigateUrl="~/other/alert.aspx">
<TreeNode Text="向父页面添加选项卡" NavigateUrl="~/other/addtab.aspx" IsNew="true">
</TreeNode>
</TreeNode>
</Tree>

View File

@ -14,9 +14,9 @@
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" AutoSizePanelID="TabStrip1" runat="server"></x:PageManager>
<x:TabStrip ID="TabStrip1" ShowBorder="false" TabPosition="Left" runat="server">
</x:TabStrip>
<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

@ -9,32 +9,6 @@ namespace FineUI.Examples
{
public partial class source : PageBase
{
private static Dictionary<string, string> SOURCE_FILES = new Dictionary<string, string>() {
{"grid/grid_iframe.aspx", "~/grid/grid_iframe_window.aspx"},
{"tree/databind/tree_document.aspx", "~/tree/databind/website.xml"},
{"tree/databind/tree_datasource.aspx", "~/tree/databind/website.xml"},
{"tree/databind/tree_sitemap.aspx", "~/tree/databind/Web.sitemap"},
{"aspnet/fileupload.aspx", "~/aspnet/fileupload_iframe.aspx"},
{"iframe/button_iframe.aspx", "~/grid/grid_iframe_window.aspx"},
{"iframe/grid_iframe.aspx", "~/grid/grid_iframe_window.aspx"},
{"iframe/iframe_iframe.aspx", "~/iframe/iframe_iframe_window1.aspx;~/iframe/iframe_iframe_window2.aspx"},
{"iframe/parent_postback.aspx", "~/iframe/parent_postback2.aspx;~/iframe/parent_postback3.aspx"},
{"iframe/parent_postback_top.aspx", "~/iframe/parent_postback_top2.aspx;~/iframe/parent_postback_top3.aspx"},
{"iframe/triggerbox_iframe.aspx", "~/iframe/triggerbox_iframe_iframe.aspx"},
{"iframe/passvalue_iframe.aspx", "~/iframe/passvalue_iframe_iframe.aspx"},
{"other/accordion_links.aspx", "~/other/accordion_links_iframe.htm"},
{"usercontrol/userinfo.aspx", "~/usercontrol/UserInfoControl.ascx"},
{"usercontrol/userinfo2.aspx", "~/usercontrol/UserInfoControl.ascx"},
{"usercontrol/userinfo_dynamic.aspx", "~/usercontrol/UserInfoControl.ascx"},
{"iframe/selectprovince1.aspx", "~/iframe/selectprovince1_child.aspx"},
{"iframe/selectprovince2.aspx", "~/iframe/selectprovince2_child.aspx"},
{"iframe/selectprovince3.aspx", "~/iframe/selectprovince3_child.aspx"},
{"iframe/topmenu2/default.aspx", "~/iframe/topmenu2/default.aspx;~/iframe/topmenu2/leftmenu.aspx"},
{"iframe/topmenu3/default.aspx", "~/iframe/topmenu3/default.aspx;~/iframe/topmenu3/leftmenu.aspx"},
{"tabstrip/tabstrip_iframe_disabled.aspx", "~/tabstrip/tabstrip_iframe_disabled_tab1.aspx"}
};
protected void Page_Init(object sender, EventArgs e)
{
if (!IsPostBack)
@ -46,8 +20,6 @@ namespace FineUI.Examples
return;
}
files = ResolveQueryString(files);
if (!String.IsNullOrEmpty(files))
{
string[] fileNames = files.Split(';');
@ -58,7 +30,7 @@ namespace FineUI.Examples
string shortFileName = GetShortFileName(fileName);
string iframeUrl = "./source_file.aspx?file=" + fileName;
FineUI.Tab tab = new FineUI.Tab();
Tab tab = new Tab();
tab.Title = shortFileName;
tab.EnableIFrame = true;
tab.IFrameUrl = iframeUrl;
@ -66,7 +38,7 @@ namespace FineUI.Examples
TabStrip1.Tabs.Add(tab);
// End with .aspx.
if (fileName.ToLower().EndsWith(".aspx") || fileName.ToLower().EndsWith(".ascx"))
if (fileName.ToLower().EndsWith(".aspx") || fileName.ToLower().EndsWith(".ascx") || fileName.ToLower().EndsWith(".master"))
{
tab = new FineUI.Tab();
tab.Title = shortFileName + ".cs";
@ -88,7 +60,7 @@ namespace FineUI.Examples
private string GetIconUrl(string url)
{
string suffix = url.Substring(url.LastIndexOf('.') + 1);
return "~/images/filetype/vs_" + suffix + ".png";
return "~/res/images/filetype/vs_" + suffix + ".png";
//string fileName = "vs_unknow.png";
//if (url.EndsWith(".aspx"))
//{
@ -120,20 +92,6 @@ namespace FineUI.Examples
//}
}
private string ResolveQueryString(string files)
{
string result = files;
foreach (string key in SOURCE_FILES.Keys)
{
if (files.EndsWith(key))
{
result += ';' + SOURCE_FILES[key];
break;
}
}
return result;
}
private string GetShortFileName(string fileName)
{
int index = fileName.LastIndexOf("/");

View File

@ -1,36 +1,37 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="source_file.aspx.cs" Inherits="FineUI.Examples.source_file" %>
<%@ Register Assembly="Wilco.SyntaxHighlighter" Namespace="Wilco.Web.SyntaxHighlighting"
TagPrefix="cc1" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../res/google-code-prettify/prettify.css" rel="stylesheet" />
<style type="text/css">
body
{
margin: 0px;
padding: 0px;
font-size: 12px;
body {
margin: 0;
padding: 0;
font-size: 13px;
background-color: White;
}
pre span
{
font-family: consolas,arial,tahoma,verdana,helvetica;
pre.prettyprint {
border: none;
margin: 0;
padding: 10px 5px;
color: #666;
}
.shl_ln
{
border-right: 1px solid #999;
padding-right: 2px;
color: #999;
margin-right: 2px;
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>
<body onload="prettyPrint();">
<form id="form1" runat="server">
<cc1:SyntaxHighlighter ID="SyntaxHighlighter1" runat="server">
</cc1:SyntaxHighlighter>
<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

@ -15,38 +15,15 @@ namespace FineUI.Examples
{
string file = Request.QueryString["file"];
string content = File.ReadAllText(Server.MapPath(file));
if (!String.IsNullOrEmpty(file))
if (file.StartsWith("http://") || file.StartsWith("https://"))
{
string language = "ASPX";
string fileName = file.ToLower();
if (fileName.EndsWith(".aspx"))
{
language = "ASPX";
}
else if (fileName.EndsWith(".cs"))
{
language = "C#";
}
else if (fileName.EndsWith(".config") || fileName.EndsWith(".sitemap") || fileName.EndsWith(".xml"))
{
language = "XML";
}
else if (fileName.EndsWith(".css"))
{
language = "CSS";
}
else if (fileName.EndsWith(".js"))
{
language = "JavaScript";
}
SyntaxHighlighter1.Mode = Wilco.Web.SyntaxHighlighting.HighlightMode.Source;
SyntaxHighlighter1.Language = language;
SyntaxHighlighter1.Text = content;
desc.Text = String.Format("<br/><br/><a href=\"{0}\" target=\"_blank\">在新窗口打开</a>", file);
return;
}
string content = File.ReadAllText(Server.MapPath(file));
desc.Text = "<pre class=\"prettyprint linenums\">" + HttpUtility.HtmlEncode(content) + "</pre>";
}
}
}

View File

@ -22,12 +22,12 @@ namespace FineUI.Examples {
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// SyntaxHighlighter1 控件。
/// desc 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::Wilco.Web.SyntaxHighlighting.SyntaxHighlighter SyntaxHighlighter1;
protected global::System.Web.UI.WebControls.Literal desc;
}
}

View File

@ -4,7 +4,7 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css">
body
{
@ -32,7 +32,7 @@
}
</style>
</head>
<body>
<body class="f-body">
<form id="form1" runat="server">
<br />
FineUI 有原生的 AJAX 支持,也就是说不需要做任何配置,控件属性在服务器端的改变都能以 AJAX 的方式影响到前端界面的显示。

View File

@ -6,7 +6,7 @@
},
{
"name": "Component",
"ajax": ["CssClass", "CssStyle"],
"ajax": ["CssClass", "FormItemClass", "CssStyle"],
"parent": "ControlBase",
"public": false
},
@ -276,7 +276,7 @@
},
{
"name": "Accordion",
"ajax": [],
"ajax": ["ActivePaneIndex"],
"parent": "CollapsablePanel",
"public": true
},

View File

@ -2,7 +2,7 @@
<html>
<head>
<title>如何在IIS6中启用GZIP压缩</title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style>
body
{
@ -19,25 +19,25 @@
}
</style>
</head>
<body>
<body class="f-body">
<div class="title">
如何在IIS6中启用GZIP压缩
</div>
<div style="margin: 10px 0;">
启用GZIP压缩可以大大减少网络传输的数据量比如使用FineUI的网站首次下载的JavaScript由未启用的650K左右减少为启用GZIP后的250k左右。
启用GZIP压缩可以大大减少网络传输的数据量比如使用FineUI v3.x的网站首次下载的JavaScript由未启用的650K左右减少为启用GZIP后的250k左右。
</div>
<ol>
<li>展开IIS管理器在网站菜单上点击右键点击属性菜单选择服务选项卡按下图选中启用压缩的复选框。
<br />
<img src="../images/enable_gzip_iis6_1.png" />
<img src="../res/images/enable_gzip_iis6_1.png" />
<br />
<img src="../images/enable_gzip_iis6_2.png" />
<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="../images/enable_gzip_iis6_3.png" />
<img src="../res/images/enable_gzip_iis6_3.png" />
<br />
</li>
<li>展开 LM>W3SVC>Filters>Compression你需要如下编辑 gzip 和 deflate 两个菜单。
@ -48,12 +48,12 @@
<br />
HcFileExtensions:htm,html,js,css
<br />
<img src="../images/enable_gzip_iis6_4.png" />
<img src="../res/images/enable_gzip_iis6_4.png" />
<br />
</li>
<li>重启IIS。
<br />
<img src="../images/enable_gzip_iis6_5.png" />
<img src="../res/images/enable_gzip_iis6_5.png" />
</li>
</ol>
<div>

View File

@ -4,7 +4,7 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css">
body {
padding: 10px;
@ -18,7 +18,7 @@
</head>
<body>
<form id="form1" runat="server">
<img src="../images/icons.gif" alt="FineUI Icons" />
<img src="../res/images/icons.gif" alt="FineUI Icons" />
<%--<asp:Literal EnableViewState="false" runat="server" ID="litIcons"></asp:Literal>--%>
</form>
</body>

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@
<html>
<head>
<title>FineUI版本发布周期</title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
<style>
body {
font-size: 13px;
@ -16,7 +16,7 @@
}
</style>
</head>
<body>
<body class="f-body">
<div id="desc">
</div>
<div id="chart_div">
@ -169,7 +169,11 @@
["v3.2.6", "2013-05-21"],
["v3.3.0", "2013-06-17"],
["v3.3.1", "2013-07-29"],
["v4.0.1", "2013-10-28"]
["v4.0.1 beta", "2013-10-28"],
["v3.3.2", "2013-11-21"],
["v4.0.2 beta", "2013-12-14"],
["v3.3.3", "2014-01-20"],
["v4.0.3 beta", "2014-01-20"]
];
// 初始化第一个数据

View File

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

View File

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

View File

@ -49,22 +49,112 @@ namespace FineUI.Examples {
protected global::FineUI.Region Region1;
/// <summary>
/// ContentPanel1 控件。
/// leftPanel 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.ContentPanel ContentPanel1;
protected global::FineUI.Region leftPanel;
/// <summary>
/// Button2 控件。
/// mainRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Button2;
protected global::FineUI.Region mainRegion;
/// <summary>
/// mainTabStrip 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.TabStrip mainTabStrip;
/// <summary>
/// ToolbarFill2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.ToolbarFill ToolbarFill2;
/// <summary>
/// btnGotoOpenSourceSite 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnGotoOpenSourceSite;
/// <summary>
/// ToolbarSeparator2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.ToolbarSeparator ToolbarSeparator2;
/// <summary>
/// Button1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Button1;
/// <summary>
/// bottomPanel 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Region bottomPanel;
/// <summary>
/// litVersion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litVersion;
/// <summary>
/// litOnlineUserCount 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litOnlineUserCount;
/// <summary>
/// windowSourceCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Window windowSourceCode;
/// <summary>
/// menuSettings 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Menu menuSettings;
/// <summary>
/// btnExpandAll 控件。
@ -84,6 +174,24 @@ namespace FineUI.Examples {
/// </remarks>
protected global::FineUI.MenuButton btnCollapseAll;
/// <summary>
/// MenuSeparator4 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuSeparator MenuSeparator4;
/// <summary>
/// cbxShowOnlyNew 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.MenuCheckBox cbxShowOnlyNew;
/// <summary>
/// MenuSeparator1 控件。
/// </summary>
@ -211,85 +319,40 @@ namespace FineUI.Examples {
protected global::FineUI.MenuSeparator MenuSeparator2;
/// <summary>
/// Region2 控件。
/// MenuHyperLink2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Region Region2;
protected global::FineUI.MenuHyperLink MenuHyperLink2;
/// <summary>
/// mainRegion 控件。
/// MenuHyperLink1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Region mainRegion;
protected global::FineUI.MenuHyperLink MenuHyperLink1;
/// <summary>
/// mainTabStrip 控件。
/// MenuSeparator3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.TabStrip mainTabStrip;
protected global::FineUI.MenuSeparator MenuSeparator3;
/// <summary>
/// ToolbarFill2 控件。
/// MenuHyperLink3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.ToolbarFill ToolbarFill2;
/// <summary>
/// btnGotoOpenSourceSite 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button btnGotoOpenSourceSite;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.ToolbarSeparator ToolbarSeparator1;
/// <summary>
/// ToolbarSeparator2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.ToolbarSeparator ToolbarSeparator2;
/// <summary>
/// Button1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Button Button1;
/// <summary>
/// windowSourceCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUI.Window windowSourceCode;
protected global::FineUI.MenuHyperLink MenuHyperLink3;
/// <summary>
/// XmlDataSource1 控件。

View File

@ -5,26 +5,27 @@
<html>
<head runat="server">
<title></title>
<link href="../../css/main.css" rel="stylesheet" type="text/css" />
<link href="../../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableFrame="true" EnableCollapse="true"
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<x:DropDownList runat="server" ID="DropDownList1">
</x:DropDownList>
<x:Button ID="btnSelectItem6" Text="选中“选项 6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="inline">
</x:Button>
<x:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</x:Button>
<x:Label runat="server" ID="labResult">
</x:Label>
<f:DropDownList runat="server" ID="DropDownList1">
</f:DropDownList>
<f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="marginr">
</f:Button>
<f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</f:Button>
</Items>
</x:SimpleForm>
</f:SimpleForm>
<br />
<f:Label runat="server" ID="labResult">
</f:Label>
<br />
</form>
</body>

View File

@ -49,15 +49,15 @@ namespace FineUI.Examples.dropdownlist
private void BindEnumrableToDropDownList()
{
List<CustomClass> myList = new List<CustomClass>();
myList.Add(new CustomClass("1", "选项 1"));
myList.Add(new CustomClass("2", "选项 2"));
myList.Add(new CustomClass("3", "选项 3"));
myList.Add(new CustomClass("4", "选项 4"));
myList.Add(new CustomClass("5", "选项 5"));
myList.Add(new CustomClass("6", "选项 6"));
myList.Add(new CustomClass("7", "选项 7"));
myList.Add(new CustomClass("8", "选项 8"));
myList.Add(new CustomClass("9", "选项 9"));
myList.Add(new CustomClass("1", "选项1"));
myList.Add(new CustomClass("2", "选项2"));
myList.Add(new CustomClass("3", "选项3"));
myList.Add(new CustomClass("4", "选项4"));
myList.Add(new CustomClass("5", "选项5"));
myList.Add(new CustomClass("6", "选项6"));
myList.Add(new CustomClass("7", "项7"));
myList.Add(new CustomClass("8", "项8"));
myList.Add(new CustomClass("9", "项9"));
DropDownList1.DataTextField = "Name";
DropDownList1.DataValueField = "ID";
@ -81,6 +81,10 @@ namespace FineUI.Examples.dropdownlist
{
labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue);
}
else
{
labResult.Text = "无选中项";
}
}
#endregion

View File

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

View File

@ -28,47 +28,47 @@ namespace FineUI.Examples.dropdownlist
table.Columns.Add(column2);
DataRow row = table.NewRow();
row[0] = "选项 1";
row[0] = "选项1";
row[1] = "1";
table.Rows.Add(row);
row = table.NewRow();
row[0] = "选项 2";
row[0] = "选项2";
row[1] = "2";
table.Rows.Add(row);
row = table.NewRow();
row[0] = "选项 3";
row[0] = "选项3";
row[1] = "3";
table.Rows.Add(row);
row = table.NewRow();
row[0] = "选项 4";
row[0] = "选项4";
row[1] = "4";
table.Rows.Add(row);
row = table.NewRow();
row[0] = "选项 5";
row[0] = "选项5";
row[1] = "5";
table.Rows.Add(row);
row = table.NewRow();
row[0] = "选项 6";
row[0] = "选项6";
row[1] = "6";
table.Rows.Add(row);
row = table.NewRow();
row[0] = "选项 7";
row[0] = "项7";
row[1] = "7";
table.Rows.Add(row);
row = table.NewRow();
row[0] = "选项 8";
row[0] = "项8";
row[1] = "8";
table.Rows.Add(row);
row = table.NewRow();
row[0] = "选项 9";
row[0] = "项9";
row[1] = "9";
table.Rows.Add(row);
@ -98,6 +98,10 @@ namespace FineUI.Examples.dropdownlist
{
labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue);
}
else
{
labResult.Text = "无选中项";
}
}
#endregion

View File

@ -5,26 +5,27 @@
<html>
<head runat="server">
<title></title>
<link href="../../css/main.css" rel="stylesheet" type="text/css" />
<link href="../../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableFrame="true" EnableCollapse="true"
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<x:DropDownList runat="server" ID="DropDownList1">
</x:DropDownList>
<x:Button ID="btnSelectItem6" Text="选中“选项 6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="inline">
</x:Button>
<x:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</x:Button>
<x:Label runat="server" ID="labResult">
</x:Label>
<f:DropDownList runat="server" ID="DropDownList1">
</f:DropDownList>
<f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="marginr">
</f:Button>
<f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</f:Button>
</Items>
</x:SimpleForm>
</f:SimpleForm>
<br />
<f:Label runat="server" ID="labResult">
</f:Label>
<br />
</form>
</body>

View File

@ -22,15 +22,15 @@ namespace FineUI.Examples.dropdownlist
private void BindStringListToDropDownList()
{
List<string> strList = new List<string>();
strList.Add("选项 1");
strList.Add("选项 2");
strList.Add("选项 3");
strList.Add("选项 4");
strList.Add("选项 5");
strList.Add("选项 6");
strList.Add("选项 7");
strList.Add("选项 8");
strList.Add("选项 9");
strList.Add("选项1");
strList.Add("选项2");
strList.Add("选项3");
strList.Add("选项4");
strList.Add("选项5");
strList.Add("选项6");
strList.Add("项7");
strList.Add("项8");
strList.Add("项9");
strList.Add("这是一个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选项");
DropDownList1.DataSource = strList;
@ -43,7 +43,7 @@ namespace FineUI.Examples.dropdownlist
protected void btnSelectItem6_Click(object sender, EventArgs e)
{
DropDownList1.SelectedValue = "选项 6";
DropDownList1.SelectedValue = "选项6";
}
protected void btnGetSelection_Click(object sender, EventArgs e)
@ -52,6 +52,10 @@ namespace FineUI.Examples.dropdownlist
{
labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue);
}
else
{
labResult.Text = "无选中项";
}
}
#endregion

View File

@ -4,57 +4,40 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableFrame="true" EnableCollapse="true"
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<x:DropDownList runat="server" ID="DropDownList1">
<x:ListItem Text="选项 1" Value="Value1" Selected="true" />
<x:ListItem Text="选项 2不可选择" Value="Value2" EnableSelect="false" />
<x:ListItem Text="选项 3不可选择" Value="Value3" EnableSelect="false" />
<x:ListItem Text="选项 4" Value="Value4" />
<x:ListItem Text="选项 5" Value="Value5" />
<x:ListItem Text="选项 6" Value="Value6" />
<x:ListItem Text="选项 7" Value="Value7" />
<x:ListItem Text="选项 8" Value="Value8" />
<x:ListItem Text="选项 9" Value="Value9" />
<x:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
</x:DropDownList>
<f:DropDownList runat="server" ID="DropDownList1">
<f:ListItem Text="可选项1" Value="Value1" Selected="true" />
<f:ListItem Text="可选项2不可选择" Value="Value2" EnableSelect="false" />
<f:ListItem Text="可选项3不可选择" Value="Value3" EnableSelect="false" />
<f:ListItem Text="可选项4" Value="Value4" />
<f:ListItem Text="可选项5" Value="Value5" />
<f:ListItem Text="可选项6" Value="Value6" />
<f:ListItem Text="可选择项7" Value="Value7" />
<f:ListItem Text="可选择项8" Value="Value8" />
<f:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
<f:ListItem Text="一个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value11" />
</f:DropDownList>
<f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="marginr">
</f:Button>
<f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</f:Button>
<x:Button ID="btnSelectItem6" Text="选中“选项 6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="inline">
</x:Button>
<x:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</x:Button>
<x:Label runat="server" ID="labResult">
</x:Label>
</Items>
</x:SimpleForm>
</f:SimpleForm>
<br />
<f:Label runat="server" ID="labResult">
</f:Label>
</form>
<script type="text/javascript">
function onReady() {
//X.util.setHiddenFieldValue('X_STATE', JSON.stringify(X.ajax.getXState()));
// document.write(Ext.get("X_STATE").dom.value);
//document.write(JSON.stringify(X.ajax.getXState()));
//document.write(Ext.encode(X.ajax.getXState()));
//X.util.setHiddenFieldValue("TestNode1", '{"X_Items":[["Value1","选项 1",1],["Value2","选项 2不可选择",0],["Value3","选项 3不可选择",0],["Value4","选项 4",1],["Value5","选项 5",1],["Value6","选项 6",1],["Value7","选项 7",1],["Value8","选项 8",1],["Value9","选项 9",1]],"SelectedValue":"Value1"}');
//var nodeValue = Ext.get("TestNode1").dom.value;
//document.write("nodeValue:" + nodeValue + " encodeURIComponent(nodeValue):" + encodeURIComponent(nodeValue));
//
// document.write(Ext.lib.Ajax.serializeForm('form1')); //encodeURIComponent('\u9009')
//document.write(encodeURIComponent('Value1","选项 1",1],["Value2"'));
//document.write(encodeURIComponent('{"X_Items":[["Value1","选项 1",1],["Value2","选项 2不可选择",0],["Value3","选项 3不可选择",0],["Value4","选项 4",1],["Value5","选项 5",1],["Value6","选项 6",1],["Value7","选项 7",1],["Value8","选项 8",1],["Value9","选项 9",1]],"SelectedValue":"Value1"}'));
}
</script>
</body>
</html>

View File

@ -28,6 +28,10 @@ namespace FineUI.Examples.dropdownlist
{
labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue);
}
else
{
labResult.Text = "无选中项";
}
}

View File

@ -5,39 +5,41 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableFrame="true" EnableCollapse="true"
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<x:DropDownList runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
<f:DropDownList runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
ID="DropDownList1">
<x:ListItem Text="选项 1" Value="Value1" Selected="true" />
<x:ListItem Text="选项 2不可选择" Value="Value2" EnableSelect="false" />
<x:ListItem Text="选项 3不可选择" Value="Value3" EnableSelect="false" />
<x:ListItem Text="选项 4" Value="Value4" />
<x:ListItem Text="选项 5" Value="Value5" />
<x:ListItem Text="选项 6" />
<x:ListItem Text="选项 7" Value="Value7" />
<x:ListItem Text="选项 8" Value="Value8" />
<x:ListItem Text="选项 9" Value="Value9" />
<x:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
</x:DropDownList>
<f:ListItem Text="可选项1" Value="Value1" Selected="true" />
<f:ListItem Text="可选项2不可选择" Value="Value2" EnableSelect="false" />
<f:ListItem Text="可选项3不可选择" Value="Value3" EnableSelect="false" />
<f:ListItem Text="可选项4" Value="Value4" />
<f:ListItem Text="可选项5" Value="Value5" />
<f:ListItem Text="可选项6" />
<f:ListItem Text="可选择项7" Value="Value7" />
<f:ListItem Text="可选择项8" Value="Value8" />
<f:ListItem Text="可选择项9" Value="Value9" />
<f:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
</f:DropDownList>
<f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="marginr">
</f:Button>
<f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</f:Button>
<x:Button ID="btnSelectItem6" Text="选中“选项 6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="inline">
</x:Button>
<x:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</x:Button>
<x:Label runat="server" ID="labResult">
</x:Label>
</Items>
</x:SimpleForm>
</f:SimpleForm>
<br />
注:“选项 6”的Value属性为空字符串。
<f:Label runat="server" ID="labResult">
</f:Label>
<br />
“可选项6”的Value属性为空字符串。
</form>

View File

@ -41,6 +41,10 @@ namespace FineUI.Examples.dropdownlist
{
labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue);
}
else
{
labResult.Text = "无选中项";
}
}
}
}

View File

@ -5,38 +5,39 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableFrame="true" EnableCollapse="true"
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<x:DropDownList runat="server" ID="DropDownList1" EnableEdit="true" ForceSelection="true">
<x:ListItem Text="选项 1" Value="Value1" Selected="true" />
<x:ListItem Text="选项 2不可选择" Value="Value2" EnableSelect="false" />
<x:ListItem Text="选项 3不可选择" Value="Value3" EnableSelect="false" />
<x:ListItem Text="选项 4" Value="Value4" />
<x:ListItem Text="选项 5" Value="Value5" />
<x:ListItem Text="选项 6" Value="Value6" />
<x:ListItem Text="选项 7" Value="Value7" />
<x:ListItem Text="选项 8" Value="Value8" />
<x:ListItem Text="选项 9" Value="Value9" />
<x:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
</x:DropDownList>
<f:DropDownList runat="server" ID="DropDownList1" EnableEdit="true" ForceSelection="true">
<f:ListItem Text="可选项1" Value="Value1" Selected="true" />
<f:ListItem Text="可选项2不可选择" Value="Value2" EnableSelect="false" />
<f:ListItem Text="可选项3不可选择" Value="Value3" EnableSelect="false" />
<f:ListItem Text="可选项4" Value="Value4" />
<f:ListItem Text="可选项5" Value="Value5" />
<f:ListItem Text="可选项6" Value="Value6" />
<f:ListItem Text="可选择项7" Value="Value7" />
<f:ListItem Text="可选择项8" Value="Value8" />
<f:ListItem Text="可选择项9" Value="Value9" />
<f:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
</f:DropDownList>
<f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="marginr">
</f:Button>
<f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</f:Button>
<x:Button ID="btnSelectItem6" Text="选中“选项 6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="inline">
</x:Button>
<x:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</x:Button>
<x:Label runat="server" ID="labResult">
</x:Label>
</Items>
</x:SimpleForm>
</f:SimpleForm>
<br />
<f:Label runat="server" ID="labResult">
</f:Label>
<br />
下拉列表的属性设置为EnableEdit="true" ForceSelection="true"。
</form>

View File

@ -28,7 +28,10 @@ namespace FineUI.Examples.dropdownlist
{
labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue);
}
else
{
labResult.Text = "无选中项";
}
}
}

View File

@ -5,38 +5,39 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableFrame="true" EnableCollapse="true"
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<x:DropDownList runat="server" ID="DropDownList1" EnableEdit="true" ForceSelection="false">
<x:ListItem Text="选项 1" Value="Value1" Selected="true" />
<x:ListItem Text="选项 2不可选择" Value="Value2" EnableSelect="false" />
<x:ListItem Text="选项 3不可选择" Value="Value3" EnableSelect="false" />
<x:ListItem Text="选项 4" Value="Value4" />
<x:ListItem Text="选项 5" Value="Value5" />
<x:ListItem Text="选项 6" Value="Value6" />
<x:ListItem Text="选项 7" Value="Value7" />
<x:ListItem Text="选项 8" Value="Value8" />
<x:ListItem Text="选项 9" Value="Value9" />
<x:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
</x:DropDownList>
<f:DropDownList runat="server" ID="DropDownList1" EnableEdit="true" ForceSelection="false">
<f:ListItem Text="可选项1" Value="Value1" Selected="true" />
<f:ListItem Text="可选项2不可选择" Value="Value2" EnableSelect="false" />
<f:ListItem Text="可选项3不可选择" Value="Value3" EnableSelect="false" />
<f:ListItem Text="可选项4" Value="Value4" />
<f:ListItem Text="可选项5" Value="Value5" />
<f:ListItem Text="可选项6" Value="Value6" />
<f:ListItem Text="可选择项7" Value="Value7" />
<f:ListItem Text="可选择项8" Value="Value8" />
<f:ListItem Text="可选择项9" Value="Value9" />
<f:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
</f:DropDownList>
<f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="marginr">
</f:Button>
<f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</f:Button>
<x:Button ID="btnSelectItem6" Text="选中“选项 6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="inline">
</x:Button>
<x:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</x:Button>
<x:Label runat="server" ID="labResult">
</x:Label>
</Items>
</x:SimpleForm>
</f:SimpleForm>
<br />
<f:Label runat="server" ID="labResult">
</f:Label>
<br />
下拉列表的属性设置为EnableEdit="true" ForceSelection="false"。
</form>

View File

@ -0,0 +1,54 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="dropdownlist_matchfieldwidth.aspx.cs" Inherits="FineUI.Examples.dropdownlist.dropdownlist_matchfieldwidth" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<f:DropDownList runat="server" ID="DropDownList1" MatchFieldWidth="false">
<f:ListItem Text="可选项1" Value="Value1" Selected="true" />
<f:ListItem Text="可选项2不可选择" Value="Value2" EnableSelect="false" />
<f:ListItem Text="可选项3不可选择" Value="Value3" EnableSelect="false" />
<f:ListItem Text="可选项4" Value="Value4" />
<f:ListItem Text="可选项5" Value="Value5" />
<f:ListItem Text="可选项6" Value="Value6" />
<f:ListItem Text="可选择项7" Value="Value7" />
<f:ListItem Text="可选择项8" Value="Value8" />
<f:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
<f:ListItem Text="一个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value11" />
<f:ListItem Text="二个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value12" />
<f:ListItem Text="三个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value13" />
<f:ListItem Text="四个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value14" />
<f:ListItem Text="五个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value15" />
<f:ListItem Text="六个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value16" />
<f:ListItem Text="七个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value17" />
<f:ListItem Text="八个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value18" />
<f:ListItem Text="九个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value19" />
<f:ListItem Text="十个很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的可选择项" Value="Value20" />
</f:DropDownList>
<f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="marginr">
</f:Button>
<f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</f:Button>
</Items>
</f:SimpleForm>
<br />
<f:Label runat="server" ID="labResult">
</f:Label>
<br />
<br />
<br />
ExtJS这个地方有问题可能会有横向滚动体出来。<a href="http://fineui.com/demo_pro/#/demo_pro/dropdownlist/dropdownlist_matchfieldwidth.aspx">查看专业版示例</a>
</form>
</body>
</html>

View File

@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace FineUI.Examples.dropdownlist
{
public partial class dropdownlist_matchfieldwidth : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void btnSelectItem6_Click(object sender, EventArgs e)
{
DropDownList1.SelectedValue = "Value6";
}
protected void btnGetSelection_Click(object sender, EventArgs e)
{
if (DropDownList1.SelectedItem != null)
{
labResult.Text = String.Format("选中项:{0}(值:{1}", DropDownList1.SelectedItem.Text, DropDownList1.SelectedValue);
}
else
{
labResult.Text = "无选中项";
}
}
}
}

View File

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

View File

@ -5,26 +5,27 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" LabelWidth="150px" Width="650px" EnableFrame="true" EnableCollapse="true"
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" LabelWidth="150px" Width="550px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<x:DropDownList Label="模拟树的下拉列表" AutoPostBack="false" Required="true" EnableSimulateTree="true"
<f:DropDownList Label="模拟树的下拉列表" AutoPostBack="false" Required="true" EnableSimulateTree="true"
ShowRedStar="true" runat="server" ID="ddlBox">
</x:DropDownList>
</f:DropDownList>
<f:Button ID="Button1" Text="获取选中项" runat="server" OnClick="Button1_Click">
</f:Button>
<x:Button ID="Button1" Text="获取选中项" runat="server" OnClick="Button1_Click">
</x:Button>
<x:Label runat="server" ID="labResult">
</x:Label>
</Items>
</x:SimpleForm>
</f:SimpleForm>
<br />
<f:Label runat="server" ID="labResult">
</f:Label>
<br />
</form>
</body>

View File

@ -105,6 +105,10 @@ namespace FineUI.Examples.data
{
labResult.Text = String.Format("选中项:{0}(值:{1}", ddlBox.SelectedText, ddlBox.SelectedValue);
}
else
{
labResult.Text = "无选中项";
}
}
#endregion

View File

@ -0,0 +1,43 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="multiselect.aspx.cs" Inherits="FineUI.Examples.dropdownlist.multiselect" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<f:DropDownList runat="server" ID="DropDownList1" EnableMultiSelect="true">
<f:ListItem Text="可选项1" Value="Value1" Selected="true" />
<f:ListItem Text="可选项2不可选择" Value="Value2" EnableSelect="false" />
<f:ListItem Text="可选项3不可选择" Value="Value3" EnableSelect="false" />
<f:ListItem Text="可选项4" Value="Value4" Selected="true" />
<f:ListItem Text="可选项5" Value="Value5" />
<f:ListItem Text="可选项6" Value="Value6" />
<f:ListItem Text="可选择项7" Value="Value7" />
<f:ListItem Text="可选择项8" Value="Value8" />
<f:ListItem Text="可选择项9" Value="Value9" />
<f:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
</f:DropDownList>
<f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="marginr">
</f:Button>
<f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</f:Button>
</Items>
</f:SimpleForm>
<br />
<f:Label runat="server" EncodeText="false" ID="labResult">
</f:Label>
</form>
</body>
</html>

View File

@ -0,0 +1,51 @@
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.dropdownlist
{
public partial class multiselect : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void btnSelectItem6_Click(object sender, EventArgs e)
{
DropDownList1.SelectedValue = "Value6";
}
protected void btnGetSelection_Click(object sender, EventArgs e)
{
if (DropDownList1.SelectedItem != null)
{
List<string> texts = new List<string>();
List<string> values = new List<string>();
foreach (ListItem item in DropDownList1.SelectedItemArray)
{
texts.Add(item.Text);
values.Add(item.Value);
}
labResult.Text = String.Format("选中项文本:{0}<br/>选中项值:{1}",
String.Join("&nbsp;&nbsp;", texts.ToArray()),
String.Join("&nbsp;&nbsp;", values.ToArray()));
}
else
{
labResult.Text = "无选中项";
}
}
}
}

View File

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

View File

@ -0,0 +1,43 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="multiselect_autopostback.aspx.cs" Inherits="FineUI.Examples.dropdownlist.multiselect_autopostback" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<f:DropDownList runat="server" ID="DropDownList1" EnableMultiSelect="true" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<f:ListItem Text="可选项1" Value="Value1" Selected="true" />
<f:ListItem Text="可选项2不可选择" Value="Value2" EnableSelect="false" />
<f:ListItem Text="可选项3不可选择" Value="Value3" EnableSelect="false" />
<f:ListItem Text="可选项4" Value="Value4" Selected="true" />
<f:ListItem Text="可选项5" Value="Value5" />
<f:ListItem Text="可选项6" Value="Value6" />
<f:ListItem Text="可选择项7" Value="Value7" />
<f:ListItem Text="可选择项8" Value="Value8" />
<f:ListItem Text="可选择项9" Value="Value9" />
<f:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
</f:DropDownList>
<f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="marginr">
</f:Button>
<f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</f:Button>
</Items>
</f:SimpleForm>
<br />
<f:Label runat="server" EncodeText="false" ID="labResult">
</f:Label>
</form>
</body>
</html>

View File

@ -0,0 +1,59 @@
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.dropdownlist
{
public partial class multiselect_autopostback : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void btnSelectItem6_Click(object sender, EventArgs e)
{
DropDownList1.SelectedValue = "Value6";
}
protected void btnGetSelection_Click(object sender, EventArgs e)
{
WriteSelection();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
WriteSelection();
}
private void WriteSelection()
{
if (DropDownList1.SelectedItem != null)
{
List<string> texts = new List<string>();
List<string> values = new List<string>();
foreach (ListItem item in DropDownList1.SelectedItemArray)
{
texts.Add(item.Text);
values.Add(item.Value);
}
labResult.Text = String.Format("选中项文本:{0}<br/>选中项值:{1}",
String.Join("&nbsp;&nbsp;", texts.ToArray()),
String.Join("&nbsp;&nbsp;", values.ToArray()));
}
else
{
labResult.Text = "无选中项";
}
}
}
}

View File

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

View File

@ -0,0 +1,46 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="multiselect_enableedit.aspx.cs" Inherits="FineUI.Examples.dropdownlist.multiselect_enableedit" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" BodyPadding="5px" runat="server" Width="550px" EnableCollapse="true"
ShowBorder="True" Title="简单表单" ShowHeader="True">
<Items>
<f:DropDownList runat="server" ID="DropDownList1" EnableMultiSelect="true" EnableEdit="true" >
<f:ListItem Text="可选项1" Value="Value1" Selected="true" />
<f:ListItem Text="可选项2不可选择" Value="Value2" EnableSelect="false" />
<f:ListItem Text="可选项3不可选择" Value="Value3" EnableSelect="false" />
<f:ListItem Text="可选项4" Value="Value4" Selected="true" />
<f:ListItem Text="可选项5" Value="Value5" />
<f:ListItem Text="可选项6" Value="Value6" />
<f:ListItem Text="可选择项7" Value="Value7" />
<f:ListItem Text="可选择项8" Value="Value8" />
<f:ListItem Text="可选择项9" Value="Value9" />
<f:ListItem Text="普通型1 < L > 1.5" Value="普通型1 < L > 1.5" />
</f:DropDownList>
<f:Button ID="btnSelectItem6" Text="选中“可选项6”" runat="server" OnClick="btnSelectItem6_Click"
CssClass="marginr">
</f:Button>
<f:Button ID="btnGetSelection" Text="获取此下拉列表的选中项" runat="server" OnClick="btnGetSelection_Click">
</f:Button>
</Items>
</f:SimpleForm>
<br />
<f:Label runat="server" EncodeText="false" ID="labResult">
</f:Label>
<br />
<br />
ExtJS的实现不完善多选时不支持键盘输入过滤。
</form>
</body>
</html>

View File

@ -0,0 +1,51 @@
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.dropdownlist
{
public partial class multiselect_enableedit : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void btnSelectItem6_Click(object sender, EventArgs e)
{
DropDownList1.SelectedValue = "Value6";
}
protected void btnGetSelection_Click(object sender, EventArgs e)
{
if (DropDownList1.SelectedItem != null)
{
List<string> texts = new List<string>();
List<string> values = new List<string>();
foreach (ListItem item in DropDownList1.SelectedItemArray)
{
texts.Add(item.Text);
values.Add(item.Value);
}
labResult.Text = String.Format("选中项文本:{0}<br/>选中项值:{1}",
String.Join("&nbsp;&nbsp;", texts.ToArray()),
String.Join("&nbsp;&nbsp;", values.ToArray()));
}
else
{
labResult.Text = "无选中项";
}
}
}
}

View File

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

View File

@ -4,33 +4,34 @@
<html>
<head runat="server">
<title></title>
<link href="../css/main.css" rel="stylesheet" type="text/css" />
<link href="../res/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<x:PageManager ID="PageManager1" runat="server" />
<x:SimpleForm ID="SimpleForm1" runat="server" BodyPadding="5px" Width="550px" EnableFrame="true" EnableCollapse="true"
<f:PageManager ID="PageManager1" runat="server" />
<f:SimpleForm ID="SimpleForm1" runat="server" BodyPadding="5px" Width="550px" EnableCollapse="true"
Title="简单表单">
<Items>
<x:DropDownList ID="ddlSheng" Label="省份" ShowRedStar="true" CompareType="String"
<f:DropDownList ID="ddlSheng" Label="省份" ShowRedStar="true" CompareType="String"
CompareValue="-1" CompareOperator="NotEqual" CompareMessage="请选择省份!" runat="server"
AutoPostBack="true" OnSelectedIndexChanged="ddlSheng_SelectedIndexChanged">
</x:DropDownList>
<x:DropDownList ID="ddlShi" Label="地区市" ShowRedStar="true" CompareType="String"
CompareValue="-1" CompareOperator="NotEqual" CompareMessage="请选择地区市!" runat="server"
</f:DropDownList>
<f:DropDownList ID="ddlShi" Label="地区市" ShowRedStar="true" CompareType="String"
CompareValue="-1" CompareOperator="NotEqual" CompareMessage="请选择地区市!" runat="server" Enabled="false"
AutoPostBack="true" OnSelectedIndexChanged="ddlShi_SelectedIndexChanged">
</x:DropDownList>
<x:DropDownList ID="ddlXian" ShowRedStar="true" CompareType="String" CompareValue="-1"
CompareOperator="NotEqual" CompareMessage="请选择县区市!" Label="县区市" runat="server">
</x:DropDownList>
<x:Button ID="btnSubmit" runat="server" Text="获取选中的省市县" ValidateForms="SimpleForm1"
</f:DropDownList>
<f:DropDownList ID="ddlXian" ShowRedStar="true" CompareType="String" CompareValue="-1"
CompareOperator="NotEqual" CompareMessage="请选择县区市!" Label="县区市" runat="server" Enabled="false">
</f:DropDownList>
<f:Button ID="btnSubmit" runat="server" Text="获取选中的省市县" ValidateForms="SimpleForm1"
ValidateTarget="Top" OnClick="btnSubmit_Click">
</x:Button>
<x:Label ID="labResult" runat="server" ShowLabel="false" CssStyle="font-weight:bold;">
</x:Label>
</f:Button>
</Items>
</x:SimpleForm>
</f:SimpleForm>
<br />
<f:Label ID="labResult" runat="server" ShowLabel="false" CssStyle="font-weight:bold;">
</f:Label>
<br />
</form>
</body>

View File

@ -44,6 +44,9 @@ namespace FineUI.Examples.data
ddlShi.Items.Insert(0, new ListItem("选择地区市", "-1"));
ddlShi.SelectedValue = "-1";
// 是否禁用
ddlShi.Enabled = !(ddlShi.Items.Count == 1);
}
private void BindXian()
@ -59,6 +62,9 @@ namespace FineUI.Examples.data
ddlXian.Items.Insert(0, new ListItem("选择县级市", "-1"));
ddlXian.SelectedValue = "-1";
// 是否禁用
ddlXian.Enabled = !(ddlXian.Items.Count == 1);
}
protected void ddlSheng_SelectedIndexChanged(object sender, EventArgs e)

View File

@ -28,63 +28,63 @@ type res\images\s.gif > ..\extjs\res\s.gif
type res\FineUI.css > _x
type res\PageLoading.css >> _x
type res\Grid.css >> _x
type res\Tree.css >> _x
ajaxminifier\ajaxminifier -css _x -o ..\extjs\res\css\ux.css
type res\FineUI.css > _f
type res\PageLoading.css >> _f
type res\Grid.css >> _f
type res\Tree.css >> _f
ajaxminifier\ajaxminifier -css _f -o ..\extjs\res\css\ux.css
type extjs_source_all\resources\ext-theme-access\ext-theme-access-all.css > _x
type ..\extjs\res\css\ux.css >> _x
type res\access.css >> _x
ajaxminifier\ajaxminifier -css _x -o ..\extjs\res\ext-theme-access\all.css
type extjs_source_all\resources\ext-theme-access\ext-theme-access-all.css > _f
type ..\extjs\res\css\ux.css >> _f
type res\access.css >> _f
ajaxminifier\ajaxminifier -css _f -o ..\extjs\res\ext-theme-access\all.css
type extjs_source_all\resources\ext-theme-classic\ext-theme-classic-all.css > _x
type ..\extjs\res\css\ux.css >> _x
type res\classic.css >> _x
ajaxminifier\ajaxminifier -css _x -o ..\extjs\res\ext-theme-classic\all.css
type extjs_source_all\resources\ext-theme-classic\ext-theme-classic-all.css > _f
type ..\extjs\res\css\ux.css >> _f
type res\classic.css >> _f
ajaxminifier\ajaxminifier -css _f -o ..\extjs\res\ext-theme-classic\all.css
type extjs_source_all\resources\ext-theme-gray\ext-theme-gray-all.css > _x
type ..\extjs\res\css\ux.css >> _x
type res\gray.css >> _x
ajaxminifier\ajaxminifier -css _x -o ..\extjs\res\ext-theme-gray\all.css
type extjs_source_all\resources\ext-theme-gray\ext-theme-gray-all.css > _f
type ..\extjs\res\css\ux.css >> _f
type res\gray.css >> _f
ajaxminifier\ajaxminifier -css _f -o ..\extjs\res\ext-theme-gray\all.css
type extjs_source_all\resources\ext-theme-neptune\ext-theme-neptune-all.css > _x
type ..\extjs\res\css\ux.css >> _x
type res\neptune.css >> _x
ajaxminifier\ajaxminifier -css _x -o ..\extjs\res\ext-theme-neptune\all.css
type extjs_source_all\resources\ext-theme-neptune\ext-theme-neptune-all.css > _f
type ..\extjs\res\css\ux.css >> _f
type res\neptune.css >> _f
ajaxminifier\ajaxminifier -css _f -o ..\extjs\res\ext-theme-neptune\all.css
type extjs_source_all\locale\ext-lang-en.js > _x
type js\lang\fineui-lang-en.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\en.js
type extjs_source_all\locale\ext-lang-en.js > _f
type js\lang\f-lang-en.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\en.js
type extjs_source_all\locale\ext-lang-pt_BR.js > _x
type js\lang\fineui-lang-pt_BR.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\pt_BR.js
type extjs_source_all\locale\ext-lang-pt_BR.js > _f
type js\lang\f-lang-pt_BR.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\pt_BR.js
type extjs_source_all\locale\ext-lang-tr.js > _x
type js\lang\fineui-lang-tr.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\tr.js
type extjs_source_all\locale\ext-lang-tr.js > _f
type js\lang\f-lang-tr.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\tr.js
type extjs_source_all\locale\ext-lang-zh_CN.js > _x
type js\lang\fineui-lang-zh_CN.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\zh_CN.js
type extjs_source_all\locale\ext-lang-zh_CN.js > _f
type js\lang\f-lang-zh_CN.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\zh_CN.js
type extjs_source_all\locale\ext-lang-zh_TW.js > _x
type js\lang\fineui-lang-zh_TW.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\zh_TW.js
type extjs_source_all\locale\ext-lang-zh_TW.js > _f
type js\lang\f-lang-zh_TW.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\zh_TW.js
type extjs_source_all\locale\ext-lang-ru.js > _x
type js\lang\fineui-lang-ru.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\ru.js
type extjs_source_all\locale\ext-lang-ru.js > _f
type js\lang\f-lang-ru.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\ru.js
@ -97,32 +97,32 @@ ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\ru.js
type extjs_source_all\ext-all.js > _x
type extjs_source_all\ext-all.js > _f
type _x > ..\extjs\ext-part1.js
type _f > ..\extjs\ext-part1.js
type js\lib\json2.js > _x
type js\lib\Base64.js >> _x
type js\X\X.util.js >> _x
type js\X\X.ajax.js >> _x
type js\X\X.wnd.js >> _x
type js\X\extender.js >> _x
type js\X\X.simulateTree.js >> _x
type js\X\X.format.js >> _x
type js\ux\FormViewport.js >> _x
type js\ux\SimplePagingToolbar.js >> _x
type js\ux\TabCloseMenu.js >> _x
type extjs_source_all\examples\ux\RowExpander.js >> _x
type js\lib\json2.js > _f
type js\lib\Base64.js >> _f
type js\F\F.util.js >> _f
type js\F\F.ajax.js >> _f
type js\F\F.wnd.js >> _f
type js\F\extender.js >> _f
type js\F\F.simulateTree.js >> _f
type js\F\F.format.js >> _f
type js\ux\FormViewport.js >> _f
type js\ux\SimplePagingToolbar.js >> _f
type js\ux\TabCloseMenu.js >> _f
type extjs_source_all\examples\ux\RowExpander.js >> _f
type _x > ..\extjs\ext-part2.js
type _f > ..\extjs\ext-part2.js
type ..\extjs\ext-part1.js > _x
type ..\extjs\ext-part2.js >> _x
type ..\extjs\ext-part1.js > _f
type ..\extjs\ext-part2.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\ext-all.js
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\ext-all.js
ajaxminifier\ajaxminifier -js -evals:immediate extjs_source_all\ext-debug.js -o ..\extjs\ext.js
@ -130,6 +130,8 @@ ajaxminifier\ajaxminifier -js -evals:immediate extjs_source_all\ext-debug.js -o
type extjs_source_all\ext-theme-neptune.js > ..\extjs\ext-theme-neptune.js
del _x /Q
type version.txt > ..\extjs\version.txt
del _f /Q

View File

@ -16,63 +16,65 @@ mkdir ..\extjs\res\ext-theme-neptune
mkdir ..\extjs\res\ext-theme-neptune\images
type res\FineUI.css > _x
type res\PageLoading.css >> _x
type res\Grid.css >> _x
type res\Tree.css >> _x
ajaxminifier\ajaxminifier -css _x -o ..\extjs\res\css\ux.css
type extjs_source_all\resources\ext-theme-access\ext-theme-access-all.css > _x
type ..\extjs\res\css\ux.css >> _x
type res\access.css >> _x
ajaxminifier\ajaxminifier -css _x -o ..\extjs\res\ext-theme-access\all.css
type extjs_source_all\resources\ext-theme-classic\ext-theme-classic-all.css > _x
type ..\extjs\res\css\ux.css >> _x
type res\classic.css >> _x
ajaxminifier\ajaxminifier -css _x -o ..\extjs\res\ext-theme-classic\all.css
type res\FineUI.css > _f
type res\PageLoading.css >> _f
type res\Grid.css >> _f
type res\Tree.css >> _f
ajaxminifier\ajaxminifier -css _f -o ..\extjs\res\css\ux.css
type extjs_source_all\resources\ext-theme-gray\ext-theme-gray-all.css > _x
type ..\extjs\res\css\ux.css >> _x
type res\gray.css >> _x
ajaxminifier\ajaxminifier -css _x -o ..\extjs\res\ext-theme-gray\all.css
type extjs_source_all\resources\ext-theme-access\ext-theme-access-all.css > _f
type ..\extjs\res\css\ux.css >> _f
type res\access.css >> _f
ajaxminifier\ajaxminifier -css _f -o ..\extjs\res\ext-theme-access\all.css
type extjs_source_all\resources\ext-theme-neptune\ext-theme-neptune-all.css > _x
type ..\extjs\res\css\ux.css >> _x
type res\neptune.css >> _x
ajaxminifier\ajaxminifier -css _x -o ..\extjs\res\ext-theme-neptune\all.css
type extjs_source_all\resources\ext-theme-classic\ext-theme-classic-all.css > _f
type ..\extjs\res\css\ux.css >> _f
type res\classic.css >> _f
ajaxminifier\ajaxminifier -css _f -o ..\extjs\res\ext-theme-classic\all.css
type extjs_source_all\resources\ext-theme-gray\ext-theme-gray-all.css > _f
type ..\extjs\res\css\ux.css >> _f
type res\gray.css >> _f
ajaxminifier\ajaxminifier -css _f -o ..\extjs\res\ext-theme-gray\all.css
type extjs_source_all\resources\ext-theme-neptune\ext-theme-neptune-all.css > _f
type ..\extjs\res\css\ux.css >> _f
type res\neptune.css >> _f
ajaxminifier\ajaxminifier -css _f -o ..\extjs\res\ext-theme-neptune\all.css
type extjs_source_all\locale\ext-lang-en.js > _x
type js\lang\fineui-lang-en.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\en.js
type extjs_source_all\locale\ext-lang-en.js > _f
type js\lang\f-lang-en.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\en.js
type extjs_source_all\locale\ext-lang-pt_BR.js > _x
type js\lang\fineui-lang-pt_BR.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\pt_BR.js
type extjs_source_all\locale\ext-lang-pt_BR.js > _f
type js\lang\f-lang-pt_BR.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\pt_BR.js
type extjs_source_all\locale\ext-lang-tr.js > _x
type js\lang\fineui-lang-tr.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\tr.js
type extjs_source_all\locale\ext-lang-tr.js > _f
type js\lang\f-lang-tr.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\tr.js
type extjs_source_all\locale\ext-lang-zh_CN.js > _x
type js\lang\fineui-lang-zh_CN.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\zh_CN.js
type extjs_source_all\locale\ext-lang-zh_CN.js > _f
type js\lang\f-lang-zh_CN.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\zh_CN.js
type extjs_source_all\locale\ext-lang-zh_TW.js > _x
type js\lang\fineui-lang-zh_TW.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\zh_TW.js
type extjs_source_all\locale\ext-lang-zh_TW.js > _f
type js\lang\f-lang-zh_TW.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\zh_TW.js
type extjs_source_all\locale\ext-lang-ru.js > _x
type js\lang\fineui-lang-ru.js >> _x
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\ru.js
type extjs_source_all\locale\ext-lang-ru.js > _f
type js\lang\f-lang-ru.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\lang\ru.js
@ -85,32 +87,32 @@ ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\lang\ru.js
type extjs_source_all\ext-all.js > _x
type extjs_source_all\ext-all.js > _f
type _x > ..\extjs\ext-part1.js
type _f > ..\extjs\ext-part1.js
type js\lib\json2.js > _x
type js\lib\Base64.js >> _x
type js\X\X.util.js >> _x
type js\X\X.ajax.js >> _x
type js\X\X.wnd.js >> _x
type js\X\extender.js >> _x
type js\X\X.simulateTree.js >> _x
type js\X\X.format.js >> _x
type js\ux\FormViewport.js >> _x
type js\ux\SimplePagingToolbar.js >> _x
type js\ux\TabCloseMenu.js >> _x
type extjs_source_all\examples\ux\RowExpander.js >> _x
type js\lib\json2.js > _f
type js\lib\Base64.js >> _f
type js\F\F.util.js >> _f
type js\F\F.ajax.js >> _f
type js\F\F.wnd.js >> _f
type js\F\extender.js >> _f
type js\F\F.simulateTree.js >> _f
type js\F\F.format.js >> _f
type js\ux\FormViewport.js >> _f
type js\ux\SimplePagingToolbar.js >> _f
type js\ux\TabCloseMenu.js >> _f
type extjs_source_all\examples\ux\RowExpander.js >> _f
type _x > ..\extjs\ext-part2.js
type _f > ..\extjs\ext-part2.js
type ..\extjs\ext-part1.js > _x
type ..\extjs\ext-part2.js >> _x
type ..\extjs\ext-part1.js > _f
type ..\extjs\ext-part2.js >> _f
ajaxminifier\ajaxminifier -js -evals:immediate _x -o ..\extjs\ext-all.js
ajaxminifier\ajaxminifier -js -evals:immediate _f -o ..\extjs\ext-all.js
ajaxminifier\ajaxminifier -js -evals:immediate extjs_source_all\ext-debug.js -o ..\extjs\ext.js
@ -118,5 +120,7 @@ ajaxminifier\ajaxminifier -js -evals:immediate extjs_source_all\ext-debug.js -o
type extjs_source_all\ext-theme-neptune.js > ..\extjs\ext-theme-neptune.js
del _x /Q
del _f /Q

View File

@ -0,0 +1,522 @@

(function () {
F.ajax = {
timeoutErrorMsg: "Request timeout, please refresh the page and try again!",
errorMsg: "Error! {0} ({1})",
errorWindow: null,
hookPostBack: function () {
if (typeof (__doPostBack) != 'undefined') {
__doPostBack = f__doPostBack;
}
}
};
function enableAjax() {
if (typeof (F.control_enable_ajax) === 'undefined') {
return F.global_enable_ajax;
}
return F.control_enable_ajax;
}
function enableAjaxLoading() {
if (typeof (F.control_enable_ajax_loading) === 'undefined') {
return F.global_enable_ajax_loading;
}
return F.control_enable_ajax_loading;
}
function ajaxLoadingType() {
if (typeof (F.control_ajax_loading_type) === 'undefined') {
return F.global_ajax_loading_type;
}
return F.control_ajax_loading_type;
}
function f__doPostBack_internal() {
//if (typeof (F.util.beforeAjaxPostBackScript) === 'function') {
// F.util.beforeAjaxPostBackScript();
//}
F.util.triggerBeforeAjax();
function ajaxSuccess(data, viewStateBeforeAJAX) {
/*
try {
new Function(data)();
} catch (e) {
createErrorWindow({
statusText: "Execute JavaScript Exception",
status: -1,
responseText: util.htmlEncode(data)
});
}
*/
new Function('__VIEWSTATE', data)(viewStateBeforeAJAX);
// 有可能响应返回后即关闭本窗体
if (F && F.util) {
F.util.triggerAjaxReady();
}
}
// Ext.encode will convert Chinese characters. Ext.encode({a:"你好"}) => '{"a":"\u4f60\u597d"}'
// We will include the official JSON object from http://json.org/
// 现在还是用的 Ext.encode在 IETester的 IE8下 JSON.stringify 生成的中文是\u9009\u9879形式。
//F.util.setHiddenFieldValue('F_STATE', encodeURIComponent(JSON.stringify(getFState())));
var fstate = Ext.encode(getFState());
if (Ext.isIE6 || Ext.isIE7) {
F.util.setHiddenFieldValue('F_STATE_URI', 'true');
fstate = encodeURIComponent(fstate);
} else {
fstate = Base64.encode(fstate);
}
F.util.setHiddenFieldValue('F_STATE', fstate);
//F.util.setHiddenFieldValue('F_STATE', encodeURIComponent(Ext.encode(getFState())));
if (!enableAjax()) {
// 当前请求结束后必须重置 F.control_enable_ajax
F.control_enable_ajax = undefined;
F.util.setHiddenFieldValue('F_AJAX', 'false');
theForm.submit();
} else {
// 当前请求结束后必须重置 F.control_enable_ajax
F.control_enable_ajax = undefined;
F.util.setHiddenFieldValue('F_AJAX', 'true');
var url = document.location.href;
var urlHashIndex = url.indexOf('#');
if (urlHashIndex >= 0) {
url = url.substring(0, urlHashIndex);
}
var viewStateBeforeAJAX = F.util.getHiddenFieldValue('__VIEWSTATE');
Ext.Ajax.request({
form: theForm.id,
url: url,
isUpload: F.form_upload_file,
//params: serializeForm(theForm) + '&X_AJAX=true',
success: function (data) {
var scripts = data.responseText;
if (scripts && F.form_upload_file) {
// 文件上传时输出内容经过encodeURIComponent编码在ResponseFilter中的Close函数中
//scripts = scripts.replace(/<\/?pre[^>]*>/ig, '');
scripts = decodeURIComponent(scripts);
}
// 因为这里调用后可能会关闭当前页面extjs还有代码要执行Ext.callback...),所以这里要延迟一下,等 extjs 代码执行完毕后再执行这里代码
window.setTimeout(function () {
ajaxSuccess(scripts, viewStateBeforeAJAX);
/*
if (scripts) {
if (F.form_upload_file) {
// 文件上传时输出内容经过encodeURIComponent编码在ResponseFilter中的Close函数中
//scripts = scripts.replace(/<\/?pre[^>]*>/ig, '');
scripts = decodeURIComponent(scripts);
}
new Function(scripts)();
}
// 有可能响应返回后即关闭本窗体
if (F && F.util) {
F.util.triggerAjaxReady();
}
*/
}, 100);
},
failure: function (data) {
var lastDisabledButtonId = F.util.getHiddenFieldValue('F_TARGET');
if (lastDisabledButtonId) {
F.enable(lastDisabledButtonId);
}
createErrorWindow(data);
},
callback: function (options, success, response) {
// AJAX结束时需要清空此字段否则下一次的type=submit提交ASP.NET回发方式之一会被误认为是AJAX提交
if (F && F.util) {
F.util.setHiddenFieldValue('F_AJAX', 'false');
}
}
});
}
}
// 如果启用 Ajax则所有对 __doPostBack 的调用都会到这里来
function f__doPostBack(eventTarget, eventArgument) {
// 回发页面之前延时 100 毫秒,确保页面上的操作完成(比如选中复选框的动作)
window.setTimeout(function () {
// theForm variable will always exist, because we invoke the GetPostBackEventReference in PageManager.
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
f__doPostBack_internal();
}
}, 100);
}
function writeContentToIFrame(iframe, content) {
// http://stackoverflow.com/questions/1477547/getelementbyid-contentdocument-error-in-ie
// contentWindow is always there.
if (iframe) {
var doc = iframe.contentWindow.document;
if (doc) {
doc.open();
doc.write(content);
doc.close();
}
}
}
// 创建出错窗口
function createErrorWindow(data) {
// 如果是请求超时错误,则弹出简单提醒对话框
if (data.isTimeout) {
F.util.alert(F.ajax.timeoutErrorMsg);
return;
}
// 如果响应正文为空,则弹出简单提醒对话框
if (!data.responseText) {
F.util.alert(Ext.String.format(F.ajax.errorMsg, data.statusText, data.status));
return;
}
if (!F.ajax.errorWindow) {
F.ajax.errorWindow = Ext.create('Ext.window.Window', {
id: "FINEUI_ERROR",
renderTo: window.body,
width: 550,
height: 350,
border: true,
animCollapse: true,
collapsible: false,
collapsed: false,
closeAction: "hide",
plain: false,
modal: true,
draggable: true,
minimizable: false,
minHeight: 100,
minWidth: 200,
resizable: true,
maximizable: true,
closable: true
});
}
F.ajax.errorWindow.show();
F.ajax.errorWindow.body.dom.innerHTML = F.wnd.createIFrameHtml('about:blank', 'FINEUI_ERROR');
F.ajax.errorWindow.setTitle(Ext.String.format(F.ajax.errorMsg, data.statusText, data.status));
writeContentToIFrame(F.ajax.errorWindow.body.query('iframe')[0], data.responseText);
}
// 序列化表单为 URL 编码字符串,除去 <input type="submit" /> 的按钮
var extjsSerializeForm = Ext.Element.serializeForm;
Ext.Element.serializeForm = function (form) {
var el, originalStr = extjsSerializeForm(form);
for (var i = 0; i < form.elements.length; i++) {
el = form.elements[i];
if (el.type === 'submit') {
var submitStr = encodeURIComponent(el.name) + '=' + encodeURIComponent(el.value);
if (originalStr.indexOf(submitStr) == 0) {
originalStr = originalStr.replace(submitStr, '');
} else {
originalStr = originalStr.replace('&' + submitStr, '');
}
}
}
return originalStr;
};
function getFState() {
var state = {};
Ext.ComponentManager.each(function (key, cmp) {
if (cmp.isXType) {
// f_props store the properties which has been changed on server-side or client-side.
// Every FineUI control should has this property.
var fstate = cmp['f_state'];
if (fstate && Ext.isObject(fstate)) {
var cmpState = getFStateViaCmp(cmp, fstate);
if (!F.util.isObjectEmpty(cmpState)) {
state[cmp.id] = cmpState;
}
}
}
});
return state;
}
F.ajax.getFState = getFState;
function getFStateViaCmp(cmp, fstate) {
var state = {};
Ext.apply(state, fstate);
function saveInHiddenField(property, currentValue) {
// Save this client-changed property in a form hidden field.
F.util.setHiddenFieldValue(cmp.id + '_' + property, currentValue);
}
function removeHiddenField(property) {
F.util.removeHiddenField(cmp.id + '_' + property);
}
// 如果存在Gzip压缩的属性就删除原来的属性
function resolveGZProperty(property) {
var gzProperty = property + '_GZ';
if (state[gzProperty]) {
delete state[property];
} else {
delete state[gzProperty];
}
}
// 有些属性可以在客户端改变,因此需要在每个请求之前计算
if (cmp.isXType('menucheckitem')) {
saveInHiddenField('Checked', cmp.checked);
}
if (cmp.isXType('checkbox')) {
// 包含RadioButton
saveInHiddenField('Checked', cmp.getValue());
}
if (cmp.isXType('checkboxgroup')) {
var selected = cmp.f_getSelectedValues();
if (selected.length > 0) {
saveInHiddenField('SelectedValueArray', selected.join(','));
} else {
removeHiddenField('SelectedValueArray');
}
}
if (cmp.isXType('panel') || cmp.isXType('fieldset')) {
saveInHiddenField('Collapsed', cmp.f_isCollapsed());
}
if (cmp.isXType('datepicker')) {
saveInHiddenField('SelectedDate', Ext.Date.format(cmp.getValue(), cmp.initialConfig.format));
}
if (cmp.isXType('button')) {
if (cmp.initialConfig.enableToggle) {
saveInHiddenField('Pressed', cmp.pressed);
}
}
if (cmp.isXType('grid')) {
//if (cmp.getPlugin(cmp.id + '_celledit')) {
if(cmp.f_cellEditing) {
// 可编辑单元格的表格
// 选中单元格
saveInHiddenField('SelectedCell', cmp.f_getSelectedCell().join(','));
//// 新增行
//var newAddedRows = cmp.f_getNewAddedRows();
//if (newAddedRows.length > 0) {
// saveInHiddenField('NewAddedRows', newAddedRows.join(','));
//} else {
// removeHiddenField('NewAddedRows');
//}
// 修改的数据
var modifiedData = cmp.f_getModifiedData();
if (modifiedData.length > 0) {
saveInHiddenField('ModifiedData', Ext.encode(modifiedData));
} else {
removeHiddenField('ModifiedData');
}
// 删除的行索引列表
var deletedRows = cmp.f_getDeletedRows();
if (deletedRows.length > 0) {
saveInHiddenField('DeletedRows', deletedRows.join(','));
} else {
removeHiddenField('DeletedRows');
}
} else {
// 普通的表格
// 选中行索引列表
saveInHiddenField('SelectedRowIndexArray', cmp.f_getSelectedRows().join(','));
}
// 隐藏的列索引列表
var gridHiddenColumns = cmp.f_getHiddenColumns();
if (gridHiddenColumns.length > 0) {
saveInHiddenField('HiddenColumns', gridHiddenColumns.join(','));
} else {
removeHiddenField('HiddenColumns');
}
// 目前States仅用于CheckBoxField
var gridStates = cmp.f_getStates();
if (gridStates.length > 0) {
saveInHiddenField('States', Ext.encode(gridStates));
} else {
removeHiddenField('States');
}
// 如果存在 GZIPPED 的属性,就用 GZIPPED 属性
resolveGZProperty('F_Rows');
}
if (cmp.isXType('combo') || cmp.isXType('checkboxgroup') || cmp.isXType('radiogroup')) {
// 如果存在 GZIPPED 的属性,就用 GZIPPED 属性
resolveGZProperty('F_Items');
}
if (cmp.isXType('field')) {
// 如果存在 GZIPPED 的属性,就用 GZIPPED 属性
resolveGZProperty('Text');
}
if (cmp.isXType('treepanel')) {
saveInHiddenField('ExpandedNodes', cmp.f_getExpandedNodes(cmp.getRootNode().childNodes).join(','));
saveInHiddenField('CheckedNodes', cmp.f_getCheckedNodes().join(','));
saveInHiddenField('SelectedNodeIDArray', cmp.f_getSelectedNodes().join(','));
// 如果存在 GZIPPED 的属性,就用 GZIPPED 属性
resolveGZProperty('F_Nodes');
}
if (cmp.isXType('tabpanel')) {
saveInHiddenField('ActiveTabIndex', cmp.f_getActiveTabIndex());
}
if (cmp.isXType('panel') && cmp.getLayout().type === 'accordion') {
saveInHiddenField('ActivePaneIndex', cmp.f_getActiveIndex());
}
if (cmp['f_type'] && cmp['f_type'] === 'tab') {
saveInHiddenField('Hidden', cmp.tab.isHidden());
}
return state;
}
// 显示“正在载入...”的提示信息
function _showAjaxLoading(ajaxLoadingType) {
if (_requestCount > 0) {
if (ajaxLoadingType === "default") {
F.ajaxLoadingDefault.setStyle('left', (Ext.getBody().getWidth() - F.ajaxLoadingDefault.getWidth()) / 2 + 'px');
F.ajaxLoadingDefault.show();
} else {
F.ajaxLoadingMask.show();
}
}
}
// 隐藏“正在载入...”的提示信息
function _hideAjaxLoading(ajaxLoadingType) {
if (_requestCount <= 0) {
_requestCount = 0;
if (ajaxLoadingType === "default") {
F.ajaxLoadingDefault.hide();
} else {
F.ajaxLoadingMask.hide();
}
}
}
// 当前 Ajax 的并发请求数
var _requestCount = 0;
// 发起 Ajax 请求之前事件处理
Ext.Ajax.on('beforerequest', function (conn, options) {
_requestCount++;
if (!enableAjaxLoading()) {
// Do nothing
} else {
Ext.defer(_showAjaxLoading, 50, window, [ajaxLoadingType()]);
}
});
// Ajax 请求结束
Ext.Ajax.on('requestcomplete', function (conn, options) {
_requestCount--;
if (!enableAjaxLoading()) {
// ...
} else {
Ext.defer(_hideAjaxLoading, 0, window, [ajaxLoadingType()]);
}
F.control_enable_ajax_loading = undefined;
F.control_ajax_loading_type = undefined;
});
// Ajax 请求发生异常
Ext.Ajax.on('requestexception', function (conn, options) {
_requestCount--;
if (!enableAjaxLoading()) {
// ...
} else {
Ext.defer(_hideAjaxLoading, 0, window, [ajaxLoadingType()]);
}
F.control_enable_ajax_loading = undefined;
F.control_ajax_loading_type = undefined;
});
// // 不适用于所有Extjs控件比如Toolbar中放置按钮这个按钮就没有ownerCt对象
// // 更新一个Javascript对象
// updateObject: function(obj, newObjFunction, renderImmediately) {
// var id = obj.id;
// if (Ext.type(renderImmediately) == 'boolean' && !renderImmediately) {
// // 1.取得父容器
// var owner = obj.ownerCt;
// // 2.本控件在父容器的位置
// var insertIndex = owner.items.indexOf(obj);
// // 3.从父容器中销毁此控件
// owner.remove(obj);
// // 4.创建新的控件
// newObjFunction();
// // 5.将新的控件添加到删除的位置
// owner.insert(insertIndex, Ext.getCmp(id));
// // 6.父容器重新布局
// owner.doLayout();
// }
// else {
// // 1.销毁此控件
// obj.destroy();
// // 2.新建此控件
// newObjFunction();
// }
// }
})();

View File

@ -0,0 +1,45 @@

(function () {
var ExtF = Ext.util.Format;
F.format = {
capitalize: ExtF.capitalize,
dateRenderer: ExtF.dateRenderer,
ellipsisRenderer: function (length) {
return function (value) {
return ExtF.ellipsis(value, length, false);
};
},
fileSize: ExtF.fileSize,
htmlEncode: ExtF.htmlEncode,
htmlDecode: ExtF.htmlDecode,
lowercase: ExtF.lowercase,
uppercase: ExtF.uppercase,
nl2br: ExtF.nl2br,
//number: ExtF.numberRenderer,
stripScripts: ExtF.stripScripts,
stripTags: ExtF.stripTags,
trim: ExtF.trim
//usMoney: ExtF.usMoney
};
})();

View File

@ -0,0 +1,118 @@

(function() {
function getParentIndex(levels, level, index) {
if (level > 0) {
for (var i = index - 1; i >= 0; i--) {
if (levels[i] == level - 1) {
return i;
}
}
}
return -1;
}
function hasLittleBrother(levels, level, index) {
if (index < levels.length - 1) {
for (var i = index + 1; i < levels.length; i++) {
if (levels[i] == level) {
return true;
} else if (levels[i] < level) {
return false;
}
}
}
return false;
}
function getParentTempData(tempdatas, tempdata, prefixIndex) {
for (var i = 0; i < prefixIndex - 1; i++) {
tempdata = tempdatas[tempdata.parentIndex];
}
return tempdata;
}
function getPrefixInner(tempdatas, tempdata, prefixIndex) {
// If level = 3, then prefixIndex array will be: [3, 2, 1]
// prefixIndex === 1 will always present the nearest prefix next to the Text.
if (prefixIndex === 1) {
if (tempdata.littleBrother) {
return '<div class="x-elbow"></div>';
}
else {
return '<div class="x-elbow-end"></div>';
}
} else {
var parentdata = getParentTempData(tempdatas, tempdata, prefixIndex);
if (parentdata.littleBrother) {
return '<div class="x-elbow-line"></div>';
}
else {
return '<div class="x-elbow-empty"></div>';
}
}
return "";
}
function getPrefix(tempdatas, index) {
var tempdata = tempdatas[index];
var level = tempdata.level;
var prefix = [];
for (var i = level; i > 0; i--) {
prefix.push(getPrefixInner(tempdatas, tempdata, i));
}
return prefix.join('');
}
F.simulateTree = {
transform: function(datas) {
if (!datas.length || datas[0].length < 4) {
return datas;
}
//// store: new Ext.data.ArrayStore({ fields: ['value', 'text', 'enabled', 'prefix'] })
//// Sample data:
//[
// ["0", "jQuery", 0, 0],
// ["1", "Core", 0, 1],
// ["2", "Selectors", 0, 1],
// ["3", "Basic Filters", 1, 2],
// ["4", "Content Filters", 1, 2],
// ["41", "Contains", 1, 3],
// ["5", "Attribute Filters", 1, 2],
// ["6", "Traversing", 1, 1],
// ["7", "Filtering", 1, 2],
// ["8", "Finding", 1, 2],
// ["9", "Events", 0, 1],
// ["10", "Page Load", 1, 2],
// ["11", "Event Handling", 1, 2],
// ["12", "Interaction Helpers", 1, 2],
// ["13", "Ajax", 1, 1]
//]
var levels = [];
Ext.Array.each(datas, function (data, index) {
levels.push(data[3]);
});
var tempdatas = [];
Ext.Array.each(levels, function (level, index) {
tempdatas.push({
'level': level,
'parentIndex': getParentIndex(levels, level, index),
'littleBrother': hasLittleBrother(levels, level, index)
});
});
var newdatas = [];
Ext.Array.each(datas, function (data, index) {
newdatas.push([data[0], data[1], data[2], getPrefix(tempdatas, index)]);
});
return newdatas;
}
};
})();

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,317 @@

(function () {
// 计算黄金分割点的位置
// bodySize : 整个页面的Body的大小
// windowSize : 窗口的大小
function _calculateGoldenPosition(bodySize, windowSize) {
var top = (bodySize.height - (bodySize.height / 1.618)) - windowSize.height / 2;
if (top < 0) {
top = 0;
}
var left = (bodySize.width - windowSize.width) / 2;
if (left < 0) {
left = 0;
}
return { left: left, top: top };
}
// 计算中间的位置
// bodySize : 整个页面的Body的大小
// windowSize : 窗口的大小
function _calculateCenterPosition(bodySize, windowSize) {
var top = (bodySize.height - windowSize.height) / 2;
if (top < 0) {
top = 0;
}
var left = (bodySize.width - windowSize.width) / 2;
if (left < 0) {
left = 0;
}
return { left: left, top: top };
}
// 创建IFrame节点片段
function _createIFrameHtml(iframeUrl, iframeName) {
return '<iframe frameborder="0" style="overflow:auto;height:100%;width:100%;" name="' + iframeName + '" src="' + iframeUrl + '"></iframe>';
}
// 获取窗体的外部容器
function _getWrapperNode(panel) {
return Ext.get(panel.el.findParentNode('.x-window-wrapper'));
}
// FineUI窗口域Window
F.wnd = {
closeButtonTooltip: "Close this window",
formChangeConfirmMsg: "Current form has been modified, abandon changes?",
createIFrameHtml: function (iframeUrl, iframeName) {
return _createIFrameHtml(iframeUrl, iframeName);
},
// 窗体定义Original Panel / Ghost Panel
// 显示一个弹出窗体
// 在 panel 实例中定义了几个自定义属性用于标示此实例的状态在PanelBase中定义
// 属性 - f_iframe/f_iframe_url/f_iframe_name/f_iframe_loaded
// panel : 当前弹出的窗体Ext-Window
// iframeUrl : 弹出窗体中包含的IFrame的地址
// windowTitle : 弹出窗体的标题
// left/top : 弹出窗体的左上角坐标(如果为空字符串,则使用中间位置或黄金分隔位置)
// isGoldenSection : 弹出窗体位于页面的黄金分隔位置
// hiddenHiddenFieldID : 隐藏表单字段记录此窗体是否弹出,也页面回发时保持状态用
show: function (panel, iframeUrl, windowTitle, left, top, isGoldenSection, hiddenHiddenFieldID, width, height) {
var target = F.util.getTargetWindow(panel['f_property_target']);
var guid = panel['f_property_guid'];
if (window.frameElement && target !== window) {
// 当前页面在IFrame中也即时 window.frameElement 存在)
// 此弹出窗体需要在父窗口中弹出
if (!target.F[guid]) {
// 父窗口中已经创建了这个Ext-Window对象
var wrapper = guid + '_wrapper';
if (!target.Ext.get(wrapper)) {
target.F.util.appendFormNode('<div class="x-window-wrapper" id="' + wrapper + '"></div>');
} else {
target.Ext.get(wrapper).dom.innerHTML = '';
}
// Ext.apply 的第三个参数是default obejct
var config = Ext.apply({}, {
'renderTo': wrapper,
'id': guid,
'f_property_window': window,
'f_property_ext_window': panel
}, panel.initialConfig);
// 在父页面中创建一个Ext-Window的幻影拷贝
target.F[guid] = target.Ext.create('Ext.window.Window', config);
}
panel = target.F[guid];
}
if (iframeUrl !== '') {
F.wnd.updateIFrameNode(panel, iframeUrl);
}
if (windowTitle != '') {
panel.setTitle(windowTitle);
}
if (typeof(width) === 'number' && width) {
panel.setWidth(width);
}
if (typeof(height) === 'number' && height) {
panel.setHeight(height);
}
Ext.get(hiddenHiddenFieldID).dom.value = 'false';
panel.show();
if (left !== '' && top !== '') {
panel.setPosition(parseInt(left, 10), parseInt(top, 10));
} else {
var bodySize = target.window.Ext.getBody().getViewSize();
var panelSize = panel.getSize(), leftTop;
if (isGoldenSection) {
leftTop = _calculateGoldenPosition(bodySize, panelSize);
} else {
leftTop = _calculateCenterPosition(bodySize, panelSize);
//panel.alignTo(target.Ext.getBody(), "c-c");
}
panel.setPosition(leftTop.left, leftTop.top);
}
if (panel.maximizable) {
F.wnd.fixMaximize(panel);
}
},
// 获取Ghost Panel实例
getGhostPanel: function (panel, targetName, guid) {
if (typeof (targetName) === 'undefined') {
targetName = panel.f_property_target;
}
if (typeof (guid) === 'undefined') {
guid = panel.f_property_guid;
}
var target = F.util.getTargetWindow(targetName);
if (window.frameElement && target !== window) {
// 从父页面中查找幻影Ext-Window对象
panel = target.F[guid];
}
return panel;
},
// 隐藏Ext-Window比如用户点击了关闭按钮
hide: function (panel, enableIFrame, hiddenHiddenFieldID) {
var panel = F.wnd.getGhostPanel(panel);
// 如果返回 false则说明隐藏操作被阻止了
if (panel.hide() !== false) {
// 修改当前页面中记录弹出窗口弹出状态的隐藏表单字段
Ext.get(hiddenHiddenFieldID).dom.value = 'true';
// 如果启用IFrame则清空IFrame的内容防止下次打开时显示残影
if (enableIFrame) {
// 如果不加延迟IE下AJAX会出错因为在success中已经把当前窗体关闭后而后面还要继续使用本页面上相关对象
window.setTimeout(function () {
panel['f_iframe_loaded'] = false;
panel.update("");
}, 100);
}
}
},
// 最大化
maximize: function (panel) {
var panel = F.wnd.getGhostPanel(panel);
panel.maximize();
},
// 最小化
minimize: function (panel) {
var panel = F.wnd.getGhostPanel(panel);
panel.minimize();
},
// 恢复窗体大小
restore: function (panel) {
var panel = F.wnd.getGhostPanel(panel);
panel.restore();
},
// 这是 Extjs 的一个 bug如果 Window 控件不是渲染在 document.body 中,则 maximize 函数并不能真正的最大化
// 现在的 Window 控件时渲染在 from 表单里面的一个 DIV 中的
fixMaximize: function (panel) {
if (panel.maximized) {
var target = F.util.getTargetWindow(panel['f_property_target']);
var bodySize = target.window.Ext.getBody().getViewSize();
panel.setSize(bodySize.width, bodySize.height);
// 不要忘记左上角坐标
panel.setPosition(0, 0);
}
},
// 创建或更新IFrame节点同时更新panel实例中的自定义属性值
updateIFrameNode: function (panel, iframeUrl) {
var iframeUrlChanged = false;
panel = F.wnd.getGhostPanel(panel);
// 如果此Panel中包含有IFrame
if (panel && panel['f_iframe']) {
if (iframeUrl && panel['f_iframe_url'] !== iframeUrl) {
panel['f_iframe_url'] = iframeUrl;
iframeUrlChanged = true;
}
// 如果此Panel中包含的IFrame还没有加载
if (!panel['f_iframe_loaded']) {
window.setTimeout(function () {
// 如果此Panel已经创建完毕但有时Panel可能是延迟创建的比如TabStrip中的Tab只有点击这个Tab时才创建Tab的内容
panel['f_iframe_loaded'] = true;
panel.update(_createIFrameHtml(panel['f_iframe_url'], panel['f_iframe_name']));
}, 0);
}
else {
if (iframeUrlChanged) {
panel.body.query('iframe')[0].src = panel['f_iframe_url'];
}
}
}
},
// 处理表单中有任何字段发生变化时,关闭当前窗口时的提示
confirmModified: function (closeFn) {
if (F.util.isPageStateChanged()) {
F.util.confirm('_self', F.wnd.formModifiedConfirmTitle, F.wnd.formChangeConfirmMsg, function () {
closeFn.apply(window, arguments);
});
} else {
closeFn.apply(window, arguments);
}
},
// Ext-Window中IFrame里页面中的表单发生变化时弹出确认消息
iframeModifiedConfirm: function (panel, closeFn) {
// 这个页面所在的Window对象
var pageWindow = F.wnd.getIFrameWindowObject(panel);
// 如果弹出的页面没能正常加载(比如说网络暂时连接中断)
// 则直接关闭弹出的Ext-Window而不会去检查页面表单变化因为页面对象不存在
if (pageWindow.F) {
pageWindow.F.wnd.confirmModified(closeFn);
}
else {
panel.f_hide();
}
},
// 取得Ghost Panel所在页面window对象
getIFrameWindowObject: function (panel) {
// 当前页面在IFrame中也即时 window.frameElement 存在)
// 此Ext-Window需要在父窗口中弹出
/*
if (window.frameElement && panel['f_property_show_in_parent']) {
panel = parent.F[panel['f_property_guid']];
}
*/
panel = F.wnd.getGhostPanel(panel);
var iframeNode = Ext.query('iframe', panel.body.dom);
if (iframeNode.length === 0) {
// 当前panelExt-Window不包含iframe
return window;
}
else {
return iframeNode[0].contentWindow;
}
},
// 返回当前活动Window组件对象浏览器窗口对象通过F.wnd.getActiveWindow().window获取
getActiveWindow: function () {
// Ext.WindowManager.getActive();有可能返回一个弹出对话框
function getActiveFineUIWindow(wnd) {
var result = wnd.Ext.WindowManager.getActive();
if (!result.f_property_guid) {
wnd.Ext.WindowManager.eachTopDown(function (cmp) {
if (cmp.f_property_guid) {
result = cmp;
return false;
}
});
}
return result;
}
var activeWindow = parent.window;
var activeExtWindow = getActiveFineUIWindow(activeWindow);
if (activeExtWindow) {
if (activeExtWindow['f_property_window']) {
activeWindow = activeExtWindow['f_property_window'];
activeExtWindow = activeExtWindow['f_property_ext_window'];
}
activeExtWindow.window = activeWindow;
}
return activeExtWindow;
},
// 向弹出此Ext-Window的页面写入值
writeBackValue: function () {
var aw = F.wnd.getActiveWindow();
var controlIds = aw['f_property_save_state_control_client_ids'];
var controlCount = Math.min(controlIds.length, arguments.length);
for (var i = 0; i < controlCount; i++) {
aw.window.Ext.getCmp(controlIds[i]).setValue(arguments[i]);
}
}
};
})();

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,49 @@
Ext.apply(F.ajax, {
errorMsg: "Error! {0} ({1})",
timeoutErrorMsg: "Request timeout, please refresh the page and try again!"
});
Ext.apply(F.util, {
alertTitle: "Alert Dialog",
confirmTitle: "Confirm Dialog",
formAlertMsg: "Please provide valid value for {0}!",
formAlertTitle: "Form Invalid",
loading: "Loading..."
});
Ext.apply(F.wnd, {
closeButtonTooltip: "Close this window",
formChangeConfirmMsg: "Current form has been modified, abandon changes?"
});
//if (Ext.ux.SimplePagingToolbar) {
// Ext.apply(Ext.ux.SimplePagingToolbar.prototype, {
// beforePageText: "Page",
// afterPageText: "of {0}",
// firstText: "First Page",
// prevText: "Previous Page",
// nextText: "Next Page",
// lastText: "Last Page",
// displayMsg: "Displaying {0} - {1} of {2}",
// emptyMsg: 'No data to display'
// });
//}
if (Ext.ux.TabCloseMenu) {
Ext.apply(Ext.ux.TabCloseMenu.prototype, {
closeTabText: "Close Tab",
closeOthersTabsText: "Close Other Tabs",
closeAllTabsText: "Close All Tabs"
});
}
if (Ext.ux.form && Ext.ux.form.FileUploadField) {
Ext.apply(Ext.ux.form.FileUploadField.prototype, {
buttonText: "Browse..."
});
}

View File

@ -0,0 +1,40 @@
/**
* pt_BR translation
* By Ujvari
* 2009-09-21
*
*/
//if(Ext.ux.SimplePagingToolbar){
//Ext.apply(Ext.ux.SimplePagingToolbar.prototype, {
// beforePageText: "P&aacute;gina",
// afterPageText: "de {0}",
// firstText: "Primeira P&aacute;gina",
// prevText: "P&aacute;gina Anterior",
// nextText: "Pr&oacute;xima P&aacute;gina",
// lastText: "&Uacute;ltima P&aacute;gina",
// displayMsg: "Mostrando {0} - {1} de {2}",
// emptyMsg: 'Sem dados a serem exibidos'
//});
//}
Ext.apply(F.ajax, {
errorMsg: "Mensagem de Erro: {0} ( {1} )"
});
Ext.apply(F.util, {
alertTitle: "Alerta",
confirmTitle: "Confirma&ccedil;&atilde;o",
formAlertMsg: "Por favor, insira um valor para o campo {0}!",
formAlertTitle: "Formul&aacute;rio Inv&aacute;lido",
loading: "Carregando..."
});
Ext.apply(F.wnd, {
closeButtonTooltip: "Close this window",
formChangeConfirmMsg: "O formul&aacute;rio atual foi modificado, cancelar Altera&ccedil;&otilde;es?"
});

View File

@ -0,0 +1,30 @@
//if(Ext.ux.SimplePagingToolbar){
//Ext.apply(Ext.ux.SimplePagingToolbar.prototype, {
// beforePageText: "Страница",
// afterPageText: "из {0}",
// firstText: "Первая Страница",
// prevText: "Предыдущая Страница",
// nextText: "Следующая Страница",
// lastText: "Последняя Страница",
// displayMsg: "Отображается {0} - {1} из {2}",
// emptyMsg: 'Нет данных для отображения'
//});
//}
Ext.apply(F.ajax, {
errorMsg: "Запрос текущей страницы не удался!<br /><br />Сообщение об Ошибке: {0} ({1})"
});
Ext.apply(F.util, {
alertTitle: "Диалог события",
confirmTitle: "Диалог подтверждения",
formAlertMsg: "Пожалуйста укажите значение для {0}!",
formAlertTitle: "Форма неверна",
loading: "Загрузка..."
});
Ext.apply(F.wnd, {
closeButtonTooltip: "Закрывает это окно",
formChangeConfirmMsg: "Текущая форма была изменена, oтменить изменения?"
});

View File

@ -0,0 +1,31 @@
Ext.apply(F.ajax, {
errorMsg: "Hata bilgisi: {0} ({1})"
});
Ext.apply(F.util, {
alertTitle: "Uyarı",
confirmTitle: "Onay",
formAlertMsg: "Lütfen {0} alanı için geçerli bir değer giriniz!",
formAlertTitle: "Hatalı form bilgisi",
loading: "Yükleniyor..."
});
Ext.apply(F.wnd, {
closeButtonTooltip: "Pencereyi Kapat",
formChangeConfirmMsg: "Mevcut sayfadaki bilgiler değiştirildi, değişiklikleri iptal et?"
});
//if (Ext.ux.SimplePagingToolbar) {
// Ext.apply(Ext.ux.SimplePagingToolbar.prototype, {
// beforePageText: "Sayfa",
// afterPageText: " / {0}",
// firstText: "İlk Sayfa",
// prevText: "Önceki Sayfa",
// nextText: "Sonraki Sayfa",
// lastText: "Son Sayfa",
// displayMsg: "{0} - {1} (Toplam {2})",
// emptyMsg: 'Gösterilecek bilgi yok'
// });
//}

View File

@ -0,0 +1,51 @@
Ext.apply(F.ajax, {
errorMsg: "出错了!{0} ({1})",
timeoutErrorMsg: "请求超时,请刷新页面并重试!"
});
Ext.apply(F.util, {
alertTitle: "提示对话框",
confirmTitle: "确认对话框",
formAlertMsg: "请为 {0} 提供有效值!",
formAlertTitle: "表单不完整",
loading: "正在加载..."
});
Ext.apply(F.wnd, {
closeButtonTooltip: "关闭此窗口",
formChangeConfirmMsg: "当前表单已经被修改,确认放弃修改?"
});
//if (Ext.ux.SimplePagingToolbar) {
// Ext.apply(Ext.ux.SimplePagingToolbar.prototype, {
// beforePageText: "转到",
// afterPageText: " 共 {0} 页",
// firstText: "第一页",
// prevText: "前一页",
// nextText: "下一页",
// lastText: "最后页",
// displayMsg: "显示 {0} - {1},共 {2} 条",
// emptyMsg: '没有数据需要显示'
// });
//}
if (Ext.ux.TabCloseMenu) {
Ext.apply(Ext.ux.TabCloseMenu.prototype, {
closeTabText: "关闭标签",
closeOthersTabsText: "关闭其它标签",
closeAllTabsText: "关闭全部标签"
});
}
if (Ext.ux.form && Ext.ux.form.FileUploadField) {
Ext.apply(Ext.ux.form.FileUploadField.prototype, {
buttonText: "浏览..."
});
}

View File

@ -0,0 +1,50 @@

Ext.apply(F.ajax, {
errorMsg: "出錯了!{0} ({1})",
timeoutErrorMsg: "請求超時,請刷新頁面並重試!"
});
Ext.apply(F.util, {
alertTitle: "提示對話方塊",
confirmTitle: "確認對話方塊",
formAlertMsg: "請為 {0} 提供有效值!",
formAlertTitle: "表單不完整",
loading: "正在載入..."
});
Ext.apply(F.wnd, {
closeButtonTooltip: "關閉此窗口",
formChangeConfirmMsg: "當前表單已經被修改,確認放棄修改?"
});
//if (Ext.ux.SimplePagingToolbar) {
// Ext.apply(Ext.ux.SimplePagingToolbar.prototype, {
// beforePageText: "轉到",
// afterPageText: " 共 {0} 頁",
// firstText: "第一頁",
// prevText: "前一頁",
// nextText: "下一頁",
// lastText: "最後頁",
// displayMsg: "顯示 {0} - {1},共 {2} 條",
// emptyMsg: "没有資料需要顯示"
// });
//}
if (Ext.ux.form && Ext.ux.TabCloseMenu) {
Ext.apply(Ext.ux.TabCloseMenu.prototype, {
closeTabText: "關閉標籤",
closeOthersTabsText: "關閉其它標籤",
closeAllTabsText: "關閉全部標籤"
});
}
if (Ext.ux.form && Ext.ux.form.FileUploadField) {
Ext.apply(Ext.ux.form.FileUploadField.prototype, {
buttonText: "瀏覽..."
});
}

View File

@ -1,6 +1,7 @@
Ext.define('Ext.ux.FormViewport', {
extend: 'Ext.container.Container',
alias: 'widget.formviewport',
isViewport: true,

View File

@ -2,6 +2,9 @@
Ext.define('Ext.ux.SimplePagingToolbar', {
extend: 'Ext.toolbar.Paging',
alias: 'widget.simplepagingtoolbar',
cls: 'x-toolbar-paging',
// Override parent
initComponent: function () {
@ -9,9 +12,9 @@ Ext.define('Ext.ux.SimplePagingToolbar', {
me.store = Ext.Object.merge({}, me.store, {
getCount: function () {
return me.x_recordCount;
return me.f_recordCount;
},
currentPage: me.x_pageIndex + 1
currentPage: me.f_pageIndex + 1
});
me.callParent();
@ -27,29 +30,29 @@ Ext.define('Ext.ux.SimplePagingToolbar', {
// Override parent
getPageData: function () {
var fromRecord = 0, toRecord = 0;
if (this.x_databasePaging) {
fromRecord = (this.x_pageIndex * this.x_pageSize) + 1;
toRecord = fromRecord + this.x_pageSize - 1;
if (this.f_databasePaging) {
fromRecord = (this.f_pageIndex * this.f_pageSize) + 1;
toRecord = fromRecord + this.f_pageSize - 1;
} else {
fromRecord = this.x_startRowIndex + 1;
toRecord = this.x_endRowIndex + 1;
fromRecord = this.f_startRowIndex + 1;
toRecord = this.f_endRowIndex + 1;
}
if (toRecord > this.x_recordCount) {
toRecord = this.x_recordCount;
if (toRecord > this.f_recordCount) {
toRecord = this.f_recordCount;
}
return {
total: this.x_recordCount,
currentPage: this.x_pageIndex + 1,
pageCount: this.x_pageCount <= 0 ? 1 : this.x_pageCount,
total: this.f_recordCount,
currentPage: this.f_pageIndex + 1,
pageCount: this.f_pageCount <= 0 ? 1 : this.f_pageCount,
fromRecord: fromRecord,
toRecord: toRecord
};
},
x_update: function (configs) {
f_update: function (configs) {
Ext.Object.merge(this, configs);
this.store.currentPage = this.x_pageIndex + 1;
this.store.currentPage = this.f_pageIndex + 1;
this.onLoad();
}

View File

@ -10,7 +10,13 @@
-webkit-user-select: auto;
}*/
.f-hidden {
display: none;
}
.f-inline-block {
display: inline-block;
}
.cursor-pointer {
@ -69,6 +75,24 @@
color: gray;
}
.f-input-text-hidden {
position: absolute;
top: 0;
left: -10000px;
width: 1px;
height: 1px;
border: none;
padding: 0;
}
.f-field-ddlpop-autowidth .x-boundlist-item {
white-space: nowrap;
}
/* radiogroup background color */
/*.x-form-radio-group .x-panel-body
{
@ -96,7 +120,7 @@
}
.box-accrodion-link-ul li
.f-accrodion-link-ul li
{
margin-bottom: 2px;
padding: 1px 5px;
@ -104,13 +128,13 @@
border-bottom: #eee 1px solid;
}
.box-accrodion-link-ul li.box-accrodion-link-hover
.f-accrodion-link-ul li.f-accrodion-link-hover
{
border: #ffbd69 1px solid;
background-image: url(../images/accordion_link_hover2.gif);
background-repeat: repeat-x;
}
.box-accrodion-link-ul li.box-accrodion-link-select
.f-accrodion-link-ul li.f-accrodion-link-select
{
background-image: url();
border: #ffb74c 1px solid;

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