[英]TemplateField in GridView Asp.Net Web Forms
我在模板字段中遇到问题,我在其中为网格视图中的一行创建数据链接。 第一次运行页面时,它运行良好,但是稍后,当我在该网格视图中隐藏其他一些列时,我想返回我的第一个视图(我显示了所有隐藏的列),然后在我的代码中抛出空指针异常。 但是查询该网格是相同的,列也是相同的。 当我隐藏并向代码中添加一些列时,总是会发生这种情况。
请您帮助我,我将不胜感激。
<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具有null值而具有null值。
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 + "';");
}
}
1)使某些字段可见为false不应在运行时创建任何错误。
2)对于空指针异常,我认为您正在尝试类型转换空值。 如果您的任何字段包含空值,则建议在类型转换之前对其进行检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.