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