我定义了一个DataGrid:
<asp:DataGrid ID="ItemsGrid" OnItemCreated="Item_Created" AutoGenerateColumns="True">
然后在CS文件中定义了Item_Created函数:
public void Item_Created(Object sender, DataGridItemEventArgs e) 
{
   label1.Text = label1.Text + " " + e.Item.ItemIndex;
}
或是它却报错:
 Web.WebControls.DataGridItemEventArgs并不包含对"Item"的定义。
请问这是怎么回事?

解决方案 »

  1.   

    if(e.Item.ItemIndex != -1)
    {
    label1.Text = label1.Text + " " + e.Item.ItemIndex; }
      

  2.   

    public void Item_Created(Object sender, DataGridItemEventArgs e) 
    {
       if (e.Item.ItemIndex != -1)
           label1.Text = label1.Text + " " + e.Item.ItemIndex;
    }
      

  3.   

    public void Item_Created(Object sender, DataGridItemEventArgs e) 
    {
       if (e.Item.ItemIndex != -1)
           label1.Text = label1.Text + " " + e.Item.ItemIndex.ToString();
    }
      

  4.   

    这样就会报两个错,
    if (e.Item.ItemIndex != -1)
    这句也说没有包含对"Item"的定义。
      

  5.   

    Web.WebControls.DataGridItemEventArgs并不包含对"Item"的定义。
    这看起来好像是命名空间出错了,
    可是我查了,DataGridItemEventArgs类里的确有Item属性呀
      

  6.   

    问题不太清楚,先改改这2各地方试试
    using System.Web.UI.WebControls;
    public void Item_Created(object sender, DataGridItemEventArgs e) 
      

  7.   

    不错,是命名空间出了问题,修改如下:
    public void Item_Created(object sender, DataGridItemEventArgs e) 
    改成:
    public void Item_Created(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e) 
      

  8.   

    谢谢,已经不报错了,
    可是我还有一个疑问:
    我在前面已经导入了命名空间呀
    using System.Web.UI.WebControls;
    为什么还要这么写?
      

  9.   

    ItemDataBound,ItemCreated
    首先要说的是这两个事件的发生时间。
    ItemDataBound嘛,只要执行了DataBind方法,就会马上激发这个事件。
    ItemCreated呢,如果页面是第一次访问(Page.IsPostBack = false),那在第一次执行DataBind的时候,会先激发ItemCreated事件,也就是说,执行了DataBind后,首先会用ItemCreated来建立Header行,然后用ItemDataBound来绑定Header行,再用ItemCreated来建立第一行,再调用ItemDataBound来绑定第一行,也就是说ItemCreated和ItemDataBound是交替执行的。
    页面返回时,也会执行ItemCreated事件,在Page_Load之前,但是这时候就不会再执行ItemDataBound事件了。
    所以,如果你想在DataGrid里动态添加什么控件,就需要在ItemCreated事件中,而不是在ItemDataBound事件中。
      

  10.   

    TO goody9807():
    楼上的好像答非所问呀
      

  11.   

    虽然已结贴并且只给了2分.... 呵呵~但是还是要告诉楼主问题并不是using System.Web.UI.WebControls;
    或者System.Web.UI.WebControls.DataGridItemEventArgs e) 
    而是Object,不知道楼主注意到没有,我特意给你改了的就是这个
    Object 和object是不同的