在C#中动态创建表

时间:2012-12-31 11:46:49

标签: c# c#-4.0 tabular

我在动态代码后面创建了一个表:

This is the screen shot of output right now I am getting

创建此表的代码如下:

protected void BindGridviewNew(Guid SubscriptionID)
    {
        pnlreapeter.Visible = true;
        gridviewnew.Visible = true;
        List<string> plannig = new List<string>();
        var s = m.bussinesCollection.BussinesPlanning.GetSingleSubVersionTrueFalse(SubscriptionID);
        if (s != null)
        {
            if (s.T1.Value)
            {
                plannig.Add("T1");
            }
            if (s.T2.Value)
            {
                plannig.Add("T2");
            }
            if (s.T3.Value)
            {
                plannig.Add("T3");
            }
            if (s.T4.Value)
            {
                plannig.Add("T4");
            }
            if (s.T5.Value)
            {
                plannig.Add("T5");
            }
            if (s.T6.Value)
            {
                plannig.Add("T6");
            }
            if (s.T7.Value)
            {
                plannig.Add("T7");
            }
            if (s.T8.Value)
            {
                plannig.Add("T8");
            }
            if (s.T9.Value)
            {
                plannig.Add("T9");
            }
            if (s.T10.Value)
            {
                plannig.Add("T10");
            }
        }
        DataTable PlanningDate = m.bussinesCollection.BussinesPlanning.GetRowOfPlanningDate(SubscriptionID);
        DataTable Percentage = m.bussinesCollection.BussinesPlanning.GetAllStudentsForProgressForDocentNew(SubscriptionID);
        DataTable dt = new DataTable();
        DataRow newrow;
        newrow = dt.NewRow();
        DataRow Hiddenfield;
        Hiddenfield = dt.NewRow();
        DataRow percentage;
        percentage = dt.NewRow();
        int count = plannig.Count;
        for (int j = 0; j < count; j++)
        {
            dt.Columns.Add(plannig[j], typeof(string));
            string pl = plannig[j];
            string c = pl.Substring(pl.Length - 1, 1);
            int x = Convert.ToInt32(c);           
            DataRow dr = PlanningDate.Rows[0];
            DateTime date = DateTime.Parse(dr[x-1].ToString());
            newrow[plannig[j]] = date.ToShortDateString();
            HiddenField hf = new HiddenField();
            Hiddenfield[plannig[j]] = x;
            DataRow dr1 = Percentage.Rows[0];
            LinkButton link = new LinkButton();
            link.Text = dr1[x].ToString();
            percentage[plannig[j]] = (System.Web.UI.WebControls.LinkButton) link;

        }
        dt.Rows.Add(newrow);
        dt.Rows.Add(percentage);
       // dt.Rows.Add(Hiddenfield);
        gridviewnew.DataSource = dt;
        gridviewnew.DataBind();
    }

这里的问题是,如在屏幕截图中我试图获得链接按钮但列类型是字符串,以便它显示“System.Web.UI.WebControls.LinkBut​​ton”

我想要的表格如下:

     T1    |    T2    |    T3
  3/01/2012| 3/03/2012| 3/05/2012
    100    |    50    |   -

在点击100或50时,应显示一个新的弹出窗口。

任何人都可以帮我创建这一行..?

1 个答案:

答案 0 :(得分:0)

您无法将LinkButton添加到DataTable。您应该做的是将DataTable绑定到GridView,然后使用链接按钮手动将新行添加到网格视图中,我想在RowDataBound事件中,或者如果有将只有一行链接按钮,您可以在网格视图中添加页脚。

点击此链接How to programmatically insert a row in a GridView?