for (int i = 0; i < GridView1.Rows.Count; i++)
{
TextBox tj1 = (TextBox)GridView1.Rows[i].FindControl("TextBox20");
Label tj = (Label)GridView1.Rows[i].FindControl("Label20");
if (tj.Text == "已提交" || tj1.Text== "已提交")
如果if的条件满足了,就不报错;如果不满足,就报“未将对象引用设置到对象的实例”的错误。
哪位高人能帮帮我啊????
{
TextBox tj1 = (TextBox)GridView1.Rows[i].FindControl("TextBox20");
Label tj = (Label)GridView1.Rows[i].FindControl("Label20");
if (tj.Text == "已提交" || tj1.Text== "已提交")
如果if的条件满足了,就不报错;如果不满足,就报“未将对象引用设置到对象的实例”的错误。
哪位高人能帮帮我啊????
{
if (tj.Text == "已提交" ¦ ¦ tj1.Text== "已提交")
}
如果先给他们赋值,就没法判断了啊
if ((tj != null && tj.Text == "已提交") ¦ ¦ (tj1 != null && tj1.Text== "已提交"))
是不是逻辑性的问题?if (tj.Text == "已提交" && tj1.Text== "已提交")建议在那上面加上Trim()或SubString()最好,
TextBox txt = GridView1.Rows[i].FindControl("TextBox20") as TextBox;
Label lbl = GridView1.Rows[i].FindControl("Label20") as Label;
if(txt!=null&&lbl!=null)
{
if (tj.Text == "已提交" ¦ ¦ tj1.Text== "已提交")
...
}
{
TextBox tj1 = (TextBox)GridView1.Rows[i].FindControl("TextBox20");
Label tj = (Label)GridView1.Rows[i].FindControl("Label20");
if (tj.Text == "已提交" ¦ ¦ tj1.Text== "已提交")
你这么写造成的结果是 当RowType为 Header时,tj1和tj都为null所以 才会出现为将对象引用到对象的实例你可以使用3楼的方法先判断是否为空,然后再执行text判断;
也可以增加 下面这个方法 先判断rowType然后在执行 findcontrol
Row.RowType == DataControlRowType.DataRow)
TextBox txt = GridView1.Rows[i].FindControl("TextBox20") as TextBox;
Label lbl = GridView1.Rows[i].FindControl("Label20") as Label;
if(txt!=null&&lbl!=null)
{
if (txt.Text == "已提交" ¦ ¦ lbl.Text== "已提交")
...
}