还有更正你的程序的一点问题,ItemDataBound是针对行进行的,如果你每次做循环那么将非常影响效率而且可能不能正确取值!

解决方案 »

  1.   

    关于效率问题,请教有什么别的好点的办法
    在这张表里有个info_sign字段有三个可能的值
    用""、"0"、"1"分别表示未审核、未通过和已审核
    在DataGrid中怎样通过判断这三个值来显示不同的信息呢
      

  2.   

    关于错误,我也认为不应该是那的错误,可是事实却是如此,检查了好几遍都没查出问题为什么会出在这“/cztapp”应用程序中的服务器错误。
    --------------------------------------------------------------------------------未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 93:  else if("1"==info_sign)
    行 94:  {
    行 95:  Label1.Text = "已审核";
    行 96:  }
    行 97:  else if(""==info_sign)
     源文件: e:\web\cztapp\manage\info_gl.aspx.cs    行: 95 堆栈跟踪: 
    [NullReferenceException: 未将对象引用设置到对象的实例。]
       cztapp.manage.info_gl.DataGrid1_ItemDataBound(Object sender, DataGridItemEventArgs e) in e:\web\cztapp\manage\info_gl.aspx.cs:95
       System.Web.UI.WebControls.DataGrid.OnItemDataBound(DataGridItemEventArgs e) +110
       System.Web.UI.WebControls.DataGrid.CreateItem(Int32 itemIndex, Int32 dataSourceIndex, ListItemType itemType, Boolean dataBind, Object dataItem, DataGridColumn[] columns, TableRowCollection rows, PagedDataSource pagedDataSource) +181
       System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource) +1128
       System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +49
       System.Web.UI.WebControls.BaseDataList.DataBind() +23
       cztapp.manage.info_gl.BindData() in e:\web\cztapp\manage\info_gl.aspx.cs:78
       cztapp.manage.info_gl.Page_Load(Object sender, EventArgs e) in e:\web\cztapp\manage\info_gl.aspx.cs:36
       System.Web.UI.Control.OnLoad(EventArgs e) +67
       System.Web.UI.Control.LoadRecursive() +35
       System.Web.UI.Page.ProcessRequestMain() +731
      

  3.   

    问题搞定了,加for循环太浪费了,根本不用,单要加上if(Label1!=null),ItemDataBound是针对行进行的,当然包括页眉和页角,出错的原因是因为循环第一次时还没有Label1,后面就有了,所以……