/// <summary> /// /// Author:Liudpc /// Create Date: 2010-9-2 13:42:28 /// Description: 得到输出的信息 /// </summary> /// <param name="request"></param> /// <param name="pro"></param> /// <returns></returns> public WebInterface.WidgetResponseWWI GetResponse(WebInterface.WidgetRequestWWI request, WidgetProcessWWE pro) { ListShowResponseWWE res = new ListShowResponseWWE(); ListShowRequestWWE req = (ListShowRequestWWE)request; DataTable dt = pro.DataInfo; StringBuilder sb = new StringBuilder(); /* switch (req.ShowType) { case "select": for (int i = 0, j = dt.Rows.Count; i < j; i++) { sb.Append(string.Format("<option value='{1}'>{0}<option>",dt.Rows[i].ItemArray)); } break; } */ List<ItemKvdWWE> kvdList = new List<ItemKvdWWE>(); int iColumnCount = dt.Columns.Count; int iValue=iColumnCount>1?1:0; for (int i = 0, j = dt.Rows.Count; i < j; i++) { kvdList.Add(new ItemKvdWWE() { K = dt.Rows[i][0].ToString().Trim(), V = dt.Rows[i][iValue].ToString().Trim(), D = (iColumnCount > 2 ? dt.Rows[i][2].ToString().Trim() : "") }); } res.Kvd = kvdList; res.HtmlString = sb.ToString(); return res; }
public GridShowResponseWWE GetHtmlByEntity(WebEntity.GridShowWWE gsw, GridShowRequestWWE request, WidgetProcessWWE pro) { GridShowResponseWWE response = new GridShowResponseWWE(); response.Request = request; if (gsw != null) { if (request.ShowColumn == null) { request.ShowColumn = new List<GridShowColumnBaseWWE>(); foreach (var t in gsw.ColumnList) { request.ShowColumn.Add(new GridShowColumnBaseWWE() { Guid = t.Guid, HeaderText = t.HeaderText, OrderType = t.OrderType, ShowDisplay = t.ShowDisplay }); } } DataTable dt = new DataTable(); if (request.ProcessType == "" || request.ProcessType == "server") { //开始分析排序依据 if (pro != null && pro.DataInfo != null&&pro.DataFlag) { dt = GetDataByTable(gsw, request,pro); } else { dt = GetDataByEntity(gsw, request); } StringBuilder sb = new StringBuilder(); sb.Append(""); //定义显示 Dictionary<string, string> dShow = new Dictionary<string, string>(); Dictionary<string, string> dOrder = new Dictionary<string, string>(); if (request.ShowColumn.Count > 0) { for (int i = 0, j = request.ShowColumn.Count; i < j; i++) { dShow.Add(request.ShowColumn[i].Guid, request.ShowColumn[i].ShowDisplay); dOrder.Add(request.ShowColumn[i].Guid, request.ShowColumn[i].OrderType); } } int iColumnCount = gsw.ColumnList.Count; if (iColumnCount > 0) { sb.Append("<tr>"); for (int i = 0; i < iColumnCount; i++) { bool bIsOrder = string.IsNullOrEmpty(ReckeckOrderColumn(gsw.ColumnList[i].ColumnData)); var vSort = request.ShowColumn.SingleOrDefault(t => t.Guid == gsw.ColumnList[i].Guid); string sOrderType = string.IsNullOrEmpty(vSort.OrderType) ? "d" : vSort.OrderType; ; if (string.IsNullOrEmpty(ReckeckOrderColumn(gsw.ColumnList[i].ColumnData))) { sOrderType = "n"; } string sSortVisgn = ""; string sSortFunction = WebProcess.WidgetProcessWWP.SwwJsBaseName("GS.Sort", true, request.Guid, vSort.Guid); switch (sOrderType) { case "d": sSortVisgn = " <a href=\"javascript:" + sSortFunction + "\"> " + vSort.HeaderText + "</a>"; break; case "a": sSortVisgn = " <a href=\"javascript:" + sSortFunction + "\"> " + vSort.HeaderText + "</a>↑"; break; case "e": sSortVisgn = " <a href=\"javascript:" + sSortFunction + "\"> " + vSort.HeaderText + "</a>↓"; break; case "n": default: sSortVisgn = vSort.HeaderText; break; } sb.Append("<th class=\"SWW_CSS_GS_TABLE_" + sOrderType + (dShow[gsw.ColumnList[i].Guid] == "d" ? "" : " SWW_CSS_GS_DisplayNone") + "\" " + (string.IsNullOrEmpty(gsw.ColumnList[i].Width) ? "" : gsw.ColumnList[i].Width) + " >" + sSortVisgn + "</th>"); } sb.Append("</tr>"); /* response.DataItem = new List<List<string>>(); for (int i = 0, j = dt.Rows.Count; i < j; i++) { response.DataItem.Add(new List<string>()); for (int n = 0; n < iColumnCount; n++) { response.DataItem[i].Add(dt.Rows[i][n].ToString().Trim()); } } */ for (int i = 0, j = dt.Rows.Count; i < j; i++) { sb.Append("<tr class=\"SWW_CSS_GS_TR_"+(i%2)+"\">"); for (int n = 0; n < iColumnCount; n++) { sb.Append("<td " + (dShow[gsw.ColumnList[n].Guid] == "d" ? "" : " class=\"SWW_CSS_GS_DisplayNone\" ") + (gsw.ColumnList[n].Style == "" ? "" : "style=\"" + gsw.ColumnList[n].Style + "\"") + ">"); if (!string.IsNullOrEmpty(gsw.ColumnList[n].ColumnData)) { string sData = RecheckColumnName(gsw.ColumnList[n].ColumnData); switch (gsw.ColumnList[n].ColumnType) { case "r": sb.Append("<input type=\"radio\" name=\"" + request.ClientId + "_column_" + gsw.ColumnList[n].Guid + "\" value=\"" + dt.Rows[i][sData].ToString().Trim() + "\" />" + GetDataRowReplace(gsw.ColumnList[n].ColumnShow, dt.Rows[i])); break; case "c": sb.Append("<input type=\"checkbox\" name=\"" + request.ClientId + "_column_" + gsw.ColumnList[n].Guid + "\" value=\"" + dt.Rows[i][sData].ToString().Trim() + "\" />" + GetDataRowReplace(gsw.ColumnList[n].ColumnShow, dt.Rows[i])); break; case "l": sb.Append("<a href=\"" + GetDataRowReplace(gsw.ColumnList[n].ColumnShow, dt.Rows[i]).Replace("[this]", dt.Rows[i][sData].ToString().Trim()) + "\">" + dt.Rows[i][sData].ToString().Trim() + "</a>"); break; case "d": default: sb.Append(dt.Rows[i][sData].ToString().Trim()); break; } } else { sb.Append(GetDataRowReplace(gsw.ColumnList[n].ColumnShow, dt.Rows[i])); } sb.Append("</td>"); } sb.Append("</tr>"); } } sb.Append("</table>"); response.HtmlString = sb.ToString(); } else if (request.ProcessType == "client") { response.DataItem = new List<List<string>>(); for (int i = 0, j = dt.Rows.Count; i < j; i++) { List<string> strList = new List<string>(); for (int n = 0, m = dt.Columns.Count; n < m; n++) { strList.Add(dt.Rows[i][n].ToString().Trim()); } response.DataItem.Add(strList); } } else if (request.ProcessType == "demo") { StringBuilder sb = new StringBuilder(); sb.Append("<table id=\"GS_table_" + request.ClientId + "\" cellspacing=\"1\" cellpadding=\"0\">"); List<string> lTd = new List<string>(); sb.Append("<tr>"); for (int i = 0, j = request.ShowColumn.Count; i < j; i++) { if (GetSelectValue(request.ShowColumn[i].ShowDisplay) == "d") { sb.Append("<th>" + request.ShowColumn[i].HeaderText + "</th>"); lTd.Add("<td></td>"); } } sb.Append("</tr>"); string sTd = "<tr {0}>" + string.Join("", lTd.ToArray()) + "</tr>"; for (int i = 0; i < request.PageSize; i++) { sb.Append(string.Format( sTd," class=\"SWW_CSS_GS_TR_"+(i%2)+"\"")); } sb.Append(""); response.HtmlString = sb.ToString(); } } return response; }
public WebInterface.WidgetResponseWWI GetResponse(WebInterface.WidgetRequestWWI request, WidgetProcessWWE pro) { return GetHtmlByEntity(GetEntityById(request.Id), (GridShowRequestWWE)request,pro); }
/// <summary> /// /// Description: 根据表得到信息 /// Author:Liudpc /// Create Date: 2010-8-30 13:53:39 /// </summary> /// <param name="gsw"></param> /// <param name="req"></param> /// <param name="pro"></param> /// <returns></returns> public DataTable GetDataByTable(GridShowWWE gsw, GridShowRequestWWE req, WidgetProcessWWE pro) { DataTable dtSource = pro.DataInfo; req.RowsCount = dtSource.Rows.Count; DataTable dtNew = new DataTable(); for (int i = 0, j = dtSource.Columns.Count; i < j; i++) { dtNew.Columns.Add(dtSource.Columns[i].ColumnName); } for (long i = (req.PageIndex - 1) * req.PageSize, j = Math.Min(req.PageIndex * req.PageSize, req.RowsCount); i < j; i++) { dtNew.Rows.Add(dtSource.Rows[(int)i].ItemArray); } return dtNew; }