我定义了一个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"的定义。
请问这是怎么回事?
<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"的定义。
请问这是怎么回事?
解决方案 »
- Ajax WebService返回多个值?
- GridView里放Gridview,应该怎么样填充数据呢?
- IIS 原理 asp.net原理
- 用地址栏传值,若那个变量没有,怎么判断?
- 新手:关于只让登录后的用户才能访问后台文件的问题!
- asp.net2005中的session在建立页面可以访问,在其他页面不能访问,为什么?
- 如何让FormView中DropdownList的值写到TextBox中去?
- 使用用户控件时在地址栏与页面间有空隙
- 关于按钮触发js特效后台无法执行
- 我安装了vs.net中文正式版,但是asp.net服务无法启动,iis不认以aspx结尾的文件。
- 请问高手:我用VS.NET2002 开发的ASP.NET程序能否在WIN2003上运行?
- 求一个.NET论坛,要有原代码的,美工也页面不是太好没关系,关键要有原码。最好是C#的,VB.NET也行,帮个忙告诉我,我现在急需,非常感谢
{
label1.Text = label1.Text + " " + e.Item.ItemIndex; }
{
if (e.Item.ItemIndex != -1)
label1.Text = label1.Text + " " + e.Item.ItemIndex;
}
{
if (e.Item.ItemIndex != -1)
label1.Text = label1.Text + " " + e.Item.ItemIndex.ToString();
}
if (e.Item.ItemIndex != -1)
这句也说没有包含对"Item"的定义。
这看起来好像是命名空间出错了,
可是我查了,DataGridItemEventArgs类里的确有Item属性呀
using System.Web.UI.WebControls;
public void Item_Created(object sender, DataGridItemEventArgs e)
public void Item_Created(object sender, DataGridItemEventArgs e)
改成:
public void Item_Created(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e)
可是我还有一个疑问:
我在前面已经导入了命名空间呀
using System.Web.UI.WebControls;
为什么还要这么写?
首先要说的是这两个事件的发生时间。
ItemDataBound嘛,只要执行了DataBind方法,就会马上激发这个事件。
ItemCreated呢,如果页面是第一次访问(Page.IsPostBack = false),那在第一次执行DataBind的时候,会先激发ItemCreated事件,也就是说,执行了DataBind后,首先会用ItemCreated来建立Header行,然后用ItemDataBound来绑定Header行,再用ItemCreated来建立第一行,再调用ItemDataBound来绑定第一行,也就是说ItemCreated和ItemDataBound是交替执行的。
页面返回时,也会执行ItemCreated事件,在Page_Load之前,但是这时候就不会再执行ItemDataBound事件了。
所以,如果你想在DataGrid里动态添加什么控件,就需要在ItemCreated事件中,而不是在ItemDataBound事件中。
楼上的好像答非所问呀
或者System.Web.UI.WebControls.DataGridItemEventArgs e)
而是Object,不知道楼主注意到没有,我特意给你改了的就是这个
Object 和object是不同的