Exemple #1
0
        /// <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;
        }
Exemple #2
0
        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;
        }
Exemple #3
0
 public WebInterface.WidgetResponseWWI GetResponse(WebInterface.WidgetRequestWWI request, WidgetProcessWWE pro)
 {
     return GetHtmlByEntity(GetEntityById(request.Id), (GridShowRequestWWE)request,pro);
 }
Exemple #4
0
        /// <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;
        }