GridView Asp.Net Web窗体中的TemplateField

时间:2017-05-05 11:30:00

标签: c# asp.net gridview templatefield

我遇到模板字段的问题,我在网格视图中为一行中的数据创建链接。当我第一次运行我的页面它工作正常,但后来当我隐藏在该网格视图中的其他一些列,我想回到我的第一个视图(我显示所有隐藏的列)我的代码后面抛出空指针异常。但查询该网格是相同的,列是相同的。当我隐藏并向代码中添加一些列时,总会发生这种情况。

请你帮助我,我将非常感激。

              <asp:TemplateField HeaderText="zz" Visible="False">
                <ItemTemplate>
                 <asp:Label ID="Label_typ" runat="server"
                 Text='<%# Eval("TYP") %>'></asp:Label> 
                    <br> </br>

                 </ItemTemplate>
            </asp:TemplateField>

女巫背后的代码使我的所有代码变得复杂。没有它,它工作正常。

        if (actualYear.Equals(dd_rok22.SelectedValue))
        {
            int numberOfWeek = 1;
            for (int i = Convert.ToInt32(actualMonth); i <= 12; i++)
            {
                GRID_VIEW_MAKRO.Columns[i + 7].Visible = false;
                if (i == Convert.ToInt32(actualMonth))
                {
                    int numberColumnActual = i;
                    BoundField field2 = new BoundField();
                    GRID_VIEW_MAKRO.Columns.Insert(numberColumnActual + 3, field2);

                    for (int j = 1; j <= weekNumberActualMonth; j++)
                    {
                        BoundField field = new BoundField();
                        GRID_VIEW_MAKRO.Columns.Insert(numberColumnActual + 3, field);

                        field.HeaderText = "M" + actualMonth + "_T" + numberOfWeek;
                        field.DataFormatString = "{0:###,###}";
                        numberColumnActual++;
                        numberOfWeek++;
                    }
                    for (int numberOfWeekPrevious = numberOfWeek; numberOfWeekPrevious <= 4; numberOfWeekPrevious++)
                    {

                        BoundField field = new BoundField();
                        GRID_VIEW_MAKRO.Columns.Insert(numberColumnActual + 2, field);

                        field.HeaderText = "M" + previousMonth2 + "_T" + numberOfWeek;
                        field.DataFormatString = "{0:###,###}";
                        numberOfWeek++;
                        numberColumnActual++;
                    }

                }
            }
        }

并且异常显示当我创建Label时,由于TemplateField具有空值,因此该值具有空值。

protected void OnRowCreated(object sender, GridViewRowEventArgs e)
    {


        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            string mregion= DataBinder.Eval(e.Row.DataItem, "MAKRO_NAME").ToString();





            Label lbl = (Label)e.Row.FindControl("Label_typ");

            string CellValue = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "ROK"));

//it cannot Trim me null value..
            string ID = lbl2.Text.Trim() + '_' + lbl3.Text.Trim();

            e.Row.Attributes.Add("onclick", "top.location.href='report_se.aspx?nazwa=" + ID + "&ye=" + CellValue + "';");


        }
    }

0 个答案:

没有答案