private   void   DataGrid1_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e) 

if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
  //你的代码
}
}如果你要找的东西在EditTemplate中,还须判断 ListItemType.EditItem

解决方案 »

  1.   

    if(e.Item.ItemType   ==   ListItemType.Item||e.Item.ItemType   ==   ListItemType.AlternatingItem) ???
    是什么意思,解释一下好吗?》
      

  2.   

    为什么执行到
    if(d==0) 

    ((Button)e.Item.FindControl(   "shenhebtn   ")).Enabled       =       true; 
    ((Button)e.Item.FindControl(   "qishenbtn   ")).Enabled       =       false; } 这里就出现报错未将对象引用设置到对象的实例。   
    说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。   异常详细信息:   System.NullReferenceException:   未将对象引用设置到对象的实例。
      

  3.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    //状态判断
    string bgs_id = Convert.ToString(Request.QueryString["bgs_id"]);
    DataSet ds = new DataSet();
    ds = Payment.bgsPayment_List(bgs_id);
    for(int j=0;j<ds.Tables[0].Rows.Count;j++)
    {
    int ids = Convert.ToInt32(ds.Tables[0].Rows[j]["id"]);
    Payment.bgsPayment_state(ids);
    int d = Payment.reviewedstate;
    //Button shenhebtn1 = (Button)e.Item.FindControl("shenhebtn");
    //Button qishenbtn1 = (Button)e.Item.FindControl("love");
    if(d==0)
    {
    if(e.Item.ItemType   ==   ListItemType.Item||e.Item.ItemType   ==   ListItemType.AlternatingItem) 
    { ((Button)e.Item.FindControl("shenhebtn")).Enabled   =   true;
    ((Button)e.Item.FindControl("qishenbtn")).Enabled   =   false;
    } }
    else
    {
    if(e.Item.ItemType   ==ListItemType.Item||e.Item.ItemType   ==   ListItemType.AlternatingItem)
    {
    ((Button)e.Item.FindControl("shenhebtn")).Enabled   =   false;
    ((Button)e.Item.FindControl("qishenbtn")).Enabled   =   true; } } }

    }这样子加也不对吧?
      

  4.   

    如果绑定的项(Item)的类型是 ItemTemplate或者AlternatingTemplate,那么做以下的事情..DataGrid1的ItemDataBound事件是针对DataGrid中的每一项都做数据绑定的,也就是说HeaderTemplate,FooterTemplate,ItemTemplate,AlternatingTemplate或者EditTemplate都会触发这个事件,如果你的shenhebtn和qishenbtn这两个按钮在ItemTemplate或AlternatingTemplate中的话,那么在HeaderTemplate、FooterTemplate和EditTemplate找不到按钮当然要报NullReferenceException
      

  5.   

    我的shenhebtn和qishenbtn这两个按钮在是ItemTemplate中的
      

  6.   

    private       void       DataGrid1_ItemDataBound(object       sender,       System.Web.UI.WebControls.DataGridItemEventArgs       e)   
    {   
    if(e.Item.ItemType   ==   ListItemType.Item   ¦ ¦   e.Item.ItemType   ==   ListItemType.AlternatingItem) 

        //状态判断 
    string   bgs_id   =   Convert.ToString(Request.QueryString["bgs_id"]); 
    DataSet   ds   =   new   DataSet(); 
    ds   =   Payment.bgsPayment_List(bgs_id); 
    for(int   j=0;j <ds.Tables[0].Rows.Count;j++) 

    int   ids   =   Convert.ToInt32(ds.Tables[0].Rows[j]["id"]); 
    Payment.bgsPayment_state(ids); 
    int   d   =   Payment.reviewedstate; 
    //Button   shenhebtn1   =   (Button)e.Item.FindControl("shenhebtn"); 
    //Button   qishenbtn1   =   (Button)e.Item.FindControl("love"); 
    if(d==0) 

    ((Button)e.Item.FindControl(   "shenhebtn   ")).Enabled       =       true; 
    ((Button)e.Item.FindControl(   "qishenbtn   ")).Enabled       =       false; } 
    else 

    ((Button)e.Item.FindControl(   "shenhebtn   ")).Enabled       =       false; 
    ((Button)e.Item.FindControl(   "qishenbtn   ")).Enabled       =       true; } } } 
      

  7.   

    请问要如何解决?而且((Button)e.Item.FindControl("shenhebtn")).Enabled       =       false; 
    ((Button)e.Item.FindControl("qishenbtn")).Enabled       =       true; 
    这两句代码没有起作用,执行不到那里去?