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;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |