Example #1
0
    public static void SetupGrid(string tablename, GridView grid, string searchStr, string treeStr, int pagesize, int nowpage, out int RecCount)
    {
        SortedList <int, Column> columns = new SortedList <int, Column>();
        Table tab = new Table(tablename);

        foreach (Column c in tab.Columns)
        {
            if (c.IsListShow)
            {
                int key = c.ListShowOrder;
                while (columns.ContainsKey(key))
                {
                    key++;
                }
                columns.Add(key, c);
            }
        }
        string sql = "select " + tab.PKFiled;

        foreach (Column c in columns.Values)
        {
            if (sql == "select")
            {
                sql += " " + c.ColumnName;
                if (c.ListShowType == ListShowType.Foreign)
                {
                    string fsql = "(select " + c.DataTextField + " from testnewstype where " + c.DataValueField + "=" + tablename + "." + c.ColumnName + ") as " + c.ColumnName + "_Foreign";
                    sql += "," + fsql;
                }
            }
            else
            {
                sql += "," + c.ColumnName;
                if (c.ListShowType == ListShowType.Foreign)
                {
                    string fsql = "(select " + c.DataTextField + " from " + c.ForeignTable + " where " + c.DataValueField + "=" + tablename + "." + c.ColumnName + ") as " + c.ColumnName + "_Foreign";
                    sql += "," + fsql;
                }
            }
            DataControlField field = ListFieldFactory.GetListField(c.ListShowType.ToString(), tablename, c.ColumnName);
            grid.Columns.Add(field);
        }
        sql += " from " + tab.TableName + " where 1=1";

        if ((!string.IsNullOrEmpty(searchStr)) && (!string.IsNullOrEmpty(tab.SearchColumn)))
        {
            sql += " and (";
            string   searchSql = string.Empty;
            string[] arr       = searchStr.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            foreach (string str in arr)
            {
                if (!string.IsNullOrEmpty(searchSql))
                {
                    searchSql += " or ";
                }
                searchSql += tab.SearchColumn + " like '%" + searchStr.Replace("'", "''") + "%'";
            }

            sql += searchSql;
            sql += ")";
        }
        if ((!string.IsNullOrEmpty(treeStr)) && (!string.IsNullOrEmpty(tab.TreeColumn)))
        {
            sql += " and " + tab.TreeColumn + "='" + treeStr.Replace("'", "''") + "'";
        }

        //Response.Write(sql);
        //Response.End();
        if (!string.IsNullOrEmpty(tab.SelectOrder))
        {
            if (tab.SelectOrder.Trim().ToLower().StartsWith("order by"))
            {
                sql += " " + tab.SelectOrder;
            }
            else
            {
                sql += " order by " + tab.SelectOrder;
            }
        }

        grid.AutoGenerateColumns = false;

        //添加排序
        if (!string.IsNullOrEmpty(tab.OrderField))
        {
            HyperLinkField orderup = new HyperLinkField();
            orderup.Text = "<img src='images/up.jpg' border=0 />";
            orderup.DataNavigateUrlFields       = tab.PKFiled.Split(',');
            orderup.DataNavigateUrlFormatString = "OrderGO.aspx?id={0}&d=up&t=" + tablename;
            orderup.ItemStyle.Width             = new Unit(20);
            grid.Columns.Add(orderup);

            HyperLinkField orderdown = new HyperLinkField();
            orderdown.Text = "<img src='images/down.jpg' border=0 />";
            orderdown.DataNavigateUrlFields       = tab.PKFiled.Split(',');
            orderdown.DataNavigateUrlFormatString = "OrderGO.aspx?id={0}&d=down&t=" + tablename;
            orderdown.ItemStyle.Width             = new Unit(20);
            grid.Columns.Add(orderdown);
        }
        //添加查看
        if (tab.AllowShow)
        {
            HyperLinkField showField = new HyperLinkField();
            showField.Text = "查看";
            showField.DataNavigateUrlFields       = tab.PKFiled.Split(',');
            showField.HeaderText                  = "查看";
            showField.DataNavigateUrlFormatString = "show.aspx?id={0}&t=" + tablename + "&p=" + HttpContext.Current.Request.QueryString["p"] + "&m=" + HttpContext.Current.Request.QueryString["m"];
            showField.ItemStyle.Width             = new Unit(40);
            grid.Columns.Add(showField);
        }
        //添加编辑
        if (tab.AllowEdit)
        {
            HyperLinkField editField = new HyperLinkField();
            editField.Text = "编辑";
            editField.DataNavigateUrlFields       = tab.PKFiled.Split(',');
            editField.HeaderText                  = "编辑";
            editField.DataNavigateUrlFormatString = "edit.aspx?id={0}&t=" + tablename + "&p=" + HttpContext.Current.Request.QueryString["p"] + "&m=" + HttpContext.Current.Request.QueryString["m"];
            editField.ItemStyle.Width             = new Unit(40);
            grid.Columns.Add(editField);
        }
        if (tab.AllowDel)
        {
            //添加删除
            ConfirmLinkField delField = new ConfirmLinkField();
            delField.Text = "删除";
            delField.DataNavigateUrlFields       = tab.PKFiled.Split(',');
            delField.DataNavigateUrlFormatString = "del.aspx?id={0}&t=" + tablename;
            delField.HeaderText      = "删除";
            delField.ItemStyle.Width = new Unit(40);
            grid.Columns.Add(delField);
        }
        //绑定

        DataTable tabsource = DBFactory.GetConn().exeTable(sql);

        RecCount = tabsource.Rows.Count;
        if (pagesize > 0)
        {
            grid.DataSource = PagerHelper.GetPagedData(pagesize, nowpage, tabsource.DefaultView);
            grid.DataBind();
        }
        else
        {
            grid.DataSource = tabsource;
            grid.DataBind();
        }
    }
Example #2
0
    public static DataControlField GetListField(string ShowType, string Table, string Column)
    {
        Table  t = new Table(Table);
        Column c = t.GetColumns(Column);

        if (ShowType == ListShowType.Link.ToString())
        {
            HyperLinkField field = new HyperLinkField();
            field.Text = c.LinkText;
            field.DataNavigateUrlFields       = c.UrlField.Split(',');
            field.DataNavigateUrlFormatString = c.LinkUrl;
            field.HeaderText = c.ListShowName;
            return(field);
        }
        else if (ShowType == ListShowType.BoundLink.ToString())
        {
            HyperLinkField field = new HyperLinkField();
            field.DataTextField               = c.ColumnName;
            field.DataNavigateUrlFields       = c.UrlField.Split(',');
            field.DataNavigateUrlFormatString = c.LinkUrl;
            field.HeaderText           = c.ListShowName;
            field.DataTextFormatString = c.StringFormat;
            return(field);
        }
        else if (ShowType == ListShowType.Foreign.ToString())
        {
            HyperLinkField field = new HyperLinkField();
            field.DataTextField         = c.ColumnName + "_Foreign";
            field.DataNavigateUrlFields = c.UrlField.Split(',');
            if (!string.IsNullOrEmpty(c.LinkUrl))
            {
                field.DataNavigateUrlFormatString = c.LinkUrl;
            }
            else
            {
                field.DataNavigateUrlFormatString = "list.aspx?t=" + c.Table.TableName + "&p={0}&m=" + c.ForeignTable;
            }
            field.HeaderText           = c.ListShowName;
            field.DataTextFormatString = c.StringFormat;
            return(field);
        }
        else if (ShowType == ListShowType.Pic.ToString())
        {
            ImageField field = new ImageField();
            field.HeaderText               = c.ListShowName;
            field.DataImageUrlField        = c.ColumnName;
            field.DataImageUrlFormatString = c.StringFormat;
            int height = c.ImgHeight;
            height = (height > 50) ? 50 : height;
            field.ControlStyle.Height = new Unit(height);
            return(field);
        }
        else if (ShowType == ListShowType.ConfirmLink.ToString())
        {
            ConfirmLinkField field = new ConfirmLinkField();
            field.HeaderText = c.ListShowName;
            if (string.IsNullOrEmpty(c.LinkText))
            {
                field.DataTextField        = c.ColumnName;
                field.DataTextFormatString = c.StringFormat;
            }
            else
            {
                field.Text = c.LinkText;
            }
            field.DataNavigateUrlFields       = c.UrlField.Split(',');
            field.DataNavigateUrlFormatString = c.LinkUrl;
            field.ConfirmText = c.ConfirmText;

            return(field);
        }
        else if (ShowType == ListShowType.BoolLink.ToString())
        {
            BoolLinkField field = new BoolLinkField();
            field.DataTextField               = c.ColumnName;
            field.HeaderText                  = c.ListShowName;
            field.TrueText                    = c.TrueText;
            field.FalseText                   = c.FalseText;
            field.DataNavigateUrlFields       = c.UrlField.Split(',');
            field.DataNavigateUrlFormatString = c.LinkUrl;

            return(field);
        }
        else if (ShowType == ListShowType.Template.ToString())
        {
            Page page = HttpContext.Current.Handler as Page;
            if (page != null)
            {
                TemplateField field = new TemplateField();
                field.HeaderText   = c.ListShowName;
                field.ItemTemplate = page.LoadTemplate(c.ListTemplate);

                return(field);
            }
            else
            {
                BoundField field = new BoundField();
                field.DataField        = c.ColumnName;
                field.HeaderText       = c.ListShowName;
                field.DataFormatString = c.StringFormat;
                return(field);
            }
        }
        else if (ShowType == ListShowType.Hidden.ToString())
        {
            BoundField field = new BoundField();
            field.DataField        = c.ColumnName;
            field.HeaderText       = c.ListShowName;
            field.DataFormatString = c.StringFormat;
            field.Visible          = false;
            return(field);
        }
        else //(ShowType == ListShowType.Text.ToString())
        {
            BoundField field = new BoundField();
            field.DataField        = c.ColumnName;
            field.HeaderText       = c.ListShowName;
            field.DataFormatString = c.StringFormat;
            return(field);
        }
    }
Example #3
0
    public static void SetupMenuGrid(string tablename, GridView grid)
    {
        SortedList <int, Column> columns = new SortedList <int, Column>();
        Table tab = new Table(tablename);

        foreach (Column c in tab.Columns)
        {
            if (c.IsListShow)
            {
                int key = c.ListShowOrder;
                while (columns.ContainsKey(key))
                {
                    key++;
                }
                columns.Add(key, c);
            }
        }
        BoundField field1 = new BoundField();

        field1.DataField       = "depth";
        field1.ItemStyle.Width = new Unit(30);
        grid.Columns.Add(field1);

        foreach (Column c in columns.Values)
        {
            DataControlField field = ListFieldFactory.GetListField(c.ListShowType.ToString(), tablename, c.ColumnName);
            if (c.ColumnName == columns.Values[0].ColumnName)
            {
                field.ItemStyle.HorizontalAlign = HorizontalAlign.Left;
                field.ItemStyle.CssClass        = string.Empty;
            }
            grid.Columns.Add(field);
        }

        //添加排序
        if (!string.IsNullOrEmpty(tab.OrderField))
        {
            HyperLinkField orderup = new HyperLinkField();
            orderup.Text = "<img src='images/up.jpg' border=0 />";
            orderup.DataNavigateUrlFields       = tab.PKFiled.Split(',');
            orderup.DataNavigateUrlFormatString = "OrderGO.aspx?id={0}&d=up&t=" + tablename + "&desc=1";
            orderup.ItemStyle.Width             = new Unit(20);
            grid.Columns.Add(orderup);

            HyperLinkField orderdown = new HyperLinkField();
            orderdown.Text = "<img src='images/down.jpg' border=0 />";
            orderdown.DataNavigateUrlFields       = tab.PKFiled.Split(',');
            orderdown.DataNavigateUrlFormatString = "OrderGO.aspx?id={0}&d=down&t=" + tablename + "&desc=1";
            orderdown.ItemStyle.Width             = new Unit(20);
            grid.Columns.Add(orderdown);
        }
        //添加添加
        if (tab.AddChildDepth != 0 && tab.AddChildDepth != 1)
        {
            HyperLinkField addField = new HyperLinkField();
            addField.Text = "添加子栏目";
            addField.DataNavigateUrlFields       = tab.PKFiled.Split(',');
            addField.HeaderText                  = "<a href='edit.aspx?id=0&type=add&f=menu&t=" + tablename + "&p=&m='>添加栏目</a>";
            addField.DataNavigateUrlFormatString = "edit.aspx?id={0}&type=add&f=menu&t=" + tablename + "&p=" + HttpContext.Current.Request.QueryString["p"] + "&m=" + HttpContext.Current.Request.QueryString["m"];
            addField.ItemStyle.Width             = new Unit(70);
            grid.Columns.Add(addField);
        }
        //添加编辑
        HyperLinkField editField = new HyperLinkField();

        editField.Text = "编辑";
        editField.DataNavigateUrlFields       = tab.PKFiled.Split(',');
        editField.HeaderText                  = "编辑";
        editField.DataNavigateUrlFormatString = "edit.aspx?id={0}&f=menu&t=" + tablename + "&p=" + HttpContext.Current.Request.QueryString["p"] + "&m=" + HttpContext.Current.Request.QueryString["m"];
        editField.ItemStyle.Width             = new Unit(40);
        grid.Columns.Add(editField);
        //添加删除
        ConfirmLinkField delField = new ConfirmLinkField();

        delField.Text = "删除";
        delField.DataNavigateUrlFields       = tab.PKFiled.Split(',');
        delField.DataNavigateUrlFormatString = "del.aspx?id={0}&t=" + tablename;
        delField.HeaderText      = "删除";
        delField.ItemStyle.Width = new Unit(40);
        grid.Columns.Add(delField);


        DataTable sourceTable = new DataTable();

        sourceTable.Columns.Add("depth");
        SetupMenuSource(tablename, sourceTable, 0, tab.FKField, 0);

        grid.AutoGenerateColumns = false;

        grid.DataSource = sourceTable;
        grid.DataBind();
    }