FineUI 官方论坛

标题: (求代码分享)grid 动态添加列 动态绑定数据 [打印本页]

作者: flyboywfy    时间: 2015-3-31 10:15
标题: (求代码分享)grid 动态添加列 动态绑定数据
有没有成功实现grid动态绑定列和数据的,求代码分享?
我目前的问题是 按钮点击之后要改变列的列头,无法更新。
我的方法是1、在Page_Init中更新列
代码是  
protected void Page_Init(object sender, EventArgs e)
    {
            InitGrid();
    }
protected void InitGrid()
    {
        string YearMonthValue = string.Format(tbxYear.Text + "-" + ddlMonth.SelectedValue);
        //根据年月获取 该月的日期对象
        List<WorkingCalendar_Model> ListWCM = WorkingCalendar_BLL.GetWCMListByYearAndMonth(YearMonthValue);
        if (ListWCM.Count > 0)
        {
            //移除所有列
             Grid1.Columns.Clear();
             Grid1.AllColumns.Clear();
            FineUI.BoundField bf;
            bf = new FineUI.BoundField();
            bf.DataField = "UserName";
            bf.DataFormatString = "{0}";
            bf.HeaderText = "姓名";
            bf.HtmlEncode = false;         
            bf.HtmlEncodeFormatString = false;
            Grid1.Columns.Add(bf);
            foreach (WorkingCalendar_Model wcm in ListWCM)
            {
                FineUI.BoundField bfnew;
                bfnew = new FineUI.BoundField();
                bfnew.DataField = DateTime.Parse(wcm.WorkDayTime.ToString()).ToString("yyyy-MM-dd");
                bfnew.DataFormatString = "{0}";
                //bfnew.HeaderText = wcm.WorkDayTime.Value.Day.ToString() + "号";
                bfnew.HeaderText = DateTime.Parse(wcm.WorkDayTime.ToString()).ToString("MM-dd");
                bfnew.HtmlEncode = false;
                bfnew.HtmlEncodeFormatString = false;
                Grid1.Columns.Add(bfnew);
            }
            FineUI.BoundField bfEnd;
            bfEnd = new FineUI.BoundField();
            bfEnd.DataField = "UserName";
            bfEnd.DataFormatString = "{0}";
            bfEnd.HeaderText = "姓名";
            bfEnd.HtmlEncode = false;
            bfEnd.HtmlEncodeFormatString = false;
            Grid1.Columns.Add(bfEnd);
            Grid1.DataKeyNames = new string[] { "UserName" };
            //Grid1.RefreshIFrame();
            // Grid1.UpdateTemplateFields();
            // PageContext.RegisterStartupScript(Grid1.GetRefreshIFrameReference());
        }
    }

2、接着 page_load内容如下
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            tbxYear.Text = DateTime.Now.Year.ToString();
            this.ddlMonth.SelectedValue = DateTime.Now.ToString("MM");
            string YearMonthValue = string.Format(tbxYear.Text + "-" + ddlMonth.SelectedValue);
            ddlOrgIDBind();
            Bind();
        }
    }

3、绑定数据 是Bind()

目前的问题是 点击选中月份 列标题不会动态更新。
求教啊 。。。。。。


作者: shihahayue    时间: 2015-3-31 11:03
单纯改表头文字用extjs就可以了,

作者: flyboywfy    时间: 2015-3-31 11:06
shihahayue 发表于 2015-3-31 11:03
单纯改表头文字用extjs就可以了,

表头 是根据要绑定的数据动态 添加的。而且表头的列数也是动态变化的
作者: flyboywfy    时间: 2015-4-1 15:50
有没有实际做过grid动态添加列的啊,帮忙提示下吧,最好带上代码




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4