<%@ WebHandler Language="C#" Class="CheckPriKey" %> using System; using System.Collections.Generic; using System.Web; using System.Data; using System.IO; using eMIS.Data; using System.Data.Common; using System.Text; using System.Web.SessionState; using eMIS; public class CheckPriKey : IHttpHandler, IRequiresSessionState { public void ProcessRequest (HttpContext context) { string menuId = context.Request.QueryString["pid"].ToString(); //string condtion = context.Request.QueryString["c"].ToString(); string condtion; if (context.Request.QueryString["c"] != null) { condtion = context.Request.QueryString["c"].ToString(); } else { condtion = context.Request.QueryString["cond"].ToString(); condtion = DataManager.Decrypt(condtion); } string flowNodeId = (context.Request.QueryString["fnid"]==null?"":context.Request.QueryString["fnid"].ToString()); string orderField = (context.Request.QueryString["of"]==null?"":context.Request.QueryString["of"].ToString()); StringBuilder sb = new StringBuilder(); DataManager dm = new DataManager(); InstanceManager inst = new InstanceManager(context, dm, menuId); ProgramManager program = inst.Program; //inst.StateKey = "sub"; inst.InitState(); //2015年1月16日注释,解决flownode丢失问题,20日发现有的从表datashow查询不到记录 if (context.Request.QueryString["cpara"]!=null) { inst.SetStateValue("vr", DataManager.UrlDecode(context.Request.QueryString["cpara"].ToString())); } string s; string progReadonly = ""; string progAdd = "1"; string progDel = "1"; FieldPopedomManager fieldPopedomManager = null; bool b = (flowNodeId != ""); if(b) { inst.FlowNode = flowNodeId; inst.FlowNodePopedom = flowNodeId; fieldPopedomManager = new FieldPopedomManager(inst); //progReadonly = fieldPopedomManager.SubProgrameReadonly().ToString(); ActionPermission ap = fieldPopedomManager.ProgramPermission(inst.ProgramID); progReadonly = ap.Update?"0":"1"; progAdd = ap.Addnew ? "1" : "0"; progDel = ap.Delete ? "1" : "0"; } DataTable dt = program.EditElements; int l = dt.Rows.Count; string n, elementId; DataRow row = null; string jsonHead = "{count:" + l; string jsonStyle = "[{count:" + l +"}"; string jsonProg = ""; string fieldName; int i,i2; string readonlyControl; string format,defaultValue; int ae; for (i = 0; i < l; i++) { row = dt.Rows[i]; elementId = row["kjid"].ToString(); jsonHead += ",e" + elementId + ":" + (i+1); n = "s" + menuId + "_" + elementId; fieldName = StringHelper.GetRightString(row["dyzd"].ToString()); //arrd(i) = GetColumn(rs(3) & "") readonlyControl = row["zdxs"].ToString(); if (b) { ae = fieldPopedomManager.FieldPermission(fieldName, elementId); if(ae!=1) readonlyControl = ( ae==0||ae==2 ? "1" : "0"); } i2 = row["YS"].ToString().IndexOf("format:"); if (i2 == -1) { format = "-1"; } else { format = "1,formatText:\""+row["YS"].ToString().Substring(i2,row["YS"].ToString().IndexOf(")")-i2+1)+"\""; } defaultValue = row["mrz"].ToString(); if (defaultValue.ToLower().Contains("session")) { defaultValue = inst.Tag.ReplaceExpression(defaultValue, ""); } jsonProg += ",{dataType:" + row["QZZDLX"].ToString() + ",getDataFieldCond:\"" + StringHelper.ConvertToJson( row["QZZDTJ"].ToString()) + "\",getDataField:\"" + row["QZZD"].ToString() + "\",elementType:" + row["kjlx"].ToString() + ",readonly:" + readonlyControl + ",hidden:" + row["YC"].ToString() + ",field:\"" + fieldName + "\",valueField:\"" + row["gxzd"].ToString() + "\",allowNull:" + row["YXWK"].ToString() + ",id:" + elementId + ",relation:\"" + StringHelper.ConvertToJson(row["QZZDTJ"].ToString()) + "\",defaultValue:\"" + defaultValue + "\",desc:\"" + row["kjms"].ToString() + "\",format:" + format + ",param:\"" + StringHelper.ConvertToJson(row["SX"].ToString()) + "\"}"; if (row["yc"].ToString() == "0") { s = row["ys"].ToString(); if (s == "") { s = "width:90px;"; } } else { s = "width:0;"; } jsonStyle += ",{name:\"." + n + "\",style:\"" + StringHelper.ConvertToJson(s) + "\"}"; } sb.Append("{id:" + menuId + ",config:[" + jsonHead + "}" + jsonProg + "],progAdd:\"" + progAdd + "\",progDel:\"" + progDel + "\",progReadonly:\"" + progReadonly + "\""); sb.Append(",styles:" + jsonStyle + "]"); inst.QueryCondition = condtion; if (orderField != "") inst.SqlOrder = orderField; if (inst.SqlOrder == "") { inst.Program.CreateFileds(); inst.SqlOrder ="sysrowindex asc"; } DataTable table = inst.GetMulitEditDataTable(); ControlManager control = new ControlManager(inst); l = table.Columns.Count; sb.Append(",data:[{count:" + l.ToString()); DataTable elements = inst.Program.EditElements; int elementsCount = elements.Rows.Count; string primaryKey = inst.Program.PrimaryKey; s = ""; string f; for (i = 0; i < elementsCount; i++) { f = StringHelper.GetRightString(elements.Rows[i]["dyzd"].ToString()); sb.Append(",\"" + f + "\":" + (i+1).ToString() + ""); s += ",'" + f + "'"; } sb.Append(",fields:[''" + s + "]}"); string v, t; int c = table.Rows.Count; DataRow businessDataRow=null; for (int idx = 0; idx < c;idx++ ) { businessDataRow = table.Rows[idx]; sb.Append(",[\"" + businessDataRow[primaryKey].ToString() + "\""); for (i = 0; i < elementsCount; i++) { control.Init(businessDataRow, elements.Rows[i]); //control.GetDataFieldCondition = ""; v = control.Value; t = control.Text; v = v.Replace("\\", "\\\\"); //v = v.Replace("\"", "\\\""); v = v.Replace("\"", """); v = v.Replace("\r\n", "\\r\\n"); v = v.Replace("\n", "\\n"); if (v == t) { sb.Append(",{v:\"" + v + "\",t:null}"); } else { t = t.Replace("\\", "\\\\"); //t = t.Replace("\"", "\\\""); t = t.Replace("\"", """); t = t.Replace("\r\n", "\\r\\n"); t = t.Replace("\n", "\\n"); sb.Append(",{v:\"" + v + "\",t:\"" + t + "\"}"); } //v = v.Replace("\r", "\\r"); //v = v.Replace("\n", "\\n"); //v = v.Replace("\t", "\\t"); } sb.Append("]"); } sb.Append("]}"); context.Response.Write(sb.ToString()); } public bool IsReusable { get { return false; } } }