报什么错?System.Web.UI.WebControls.Image b=(System.Web.UI.WebControls.Image)e.Item.FindControl("img1");
if(b!=null)b.ImageUrl=strph;
if(b!=null)b.ImageUrl=strph;
解决方案 »
- 关于gridview显示的简单问题。
- 跨域名跨数据库的查询操作,有谁会?
- 关于SqlDataSource参数过多问题
- Button加入的确认删除对话框,点击取消后,照样删除,为什么呢?
- windows web方式登录 有个新问题 `````````
- ==>求教:如何在WAP中实现存在数据库中的附件下载?..在线等...
- TextBox的onclick事件,如何加cs中定义的方法;
- 怎样获取一个Acess数据库中表的字段名?
- 【急】如何在ASP.NET的asp代码中(vb)调用Confirm,并取得按钮的返回值?请高人赐教!
- 为大家提供一个自由的专注于.Net技术的博客网站(直接注册,不用申请)
- 怎样能列出一个对象的所有属性?
- 如何执行OleDbCommandText里的查询语句
{
if(e.Item.ItemIndex>=0)
{
Image b=(Image)e.Item.FindControl("img1");
b.ImageUrl=strph;
}
}
(我的个人理解,因为我也曾经试图在这个事件里面取值,并且失败了)
所以,在这个事件里面只能设置控件的状态
而不能取绑定后的值
try{
if(e.Item.ItemIndex>=0)
{
int ids;
ids=e.e.Item.Cells[0].Controls[0];
int idp=returnvalue(ids);
System.Web.UI.WebControls.Image b=new System.Web.UI.WebControls.Image();
b=(System.Web.UI.WebControls.Image)e.Item.FindControl("img1");
b.ImageUrl=strph;
}
}
catch{
...
}
{
if (e.Item.ItemIndex >= 0)
{
for (int i = 2;i <= e.Item.Cells.Count - 1; i++)
dbArg[i] += double.Parse(e.Item.Cells[i].Text);
}
else if (e.Item.ItemType == ListItemType.Footer)
{
e.Item.Cells[1].Text = "汇总";
e.Item.Cells[1].HorizontalAlign = HorizontalAlign.Center;
for (int i = 2;i <= e.Item.Cells.Count - 1; i++ )
e.Item.Cells[i].Text = dbArg[i].ToString();
}
}
(我的个人理解,因为我也曾经试图在这个事件里面取值,并且失败了)我不这么认为,我认为已经绑定了,只不过在这时候我么可以进行修改
在Create方法内,一般的做法是: if (dataBind) {
item.DataBind();
OnItemDataBound(e); item.DataItem = null;
}
所以,在OnItemDataBound前,数据已经帮定了。
而且,在这个方法中可以使用item.DataItem
(这个是和页面的<%# %>标记使用Container.DataItem相关的)对于你的程序,首先e.Item.ItemIndex肯定大于-1的,所以那个if是多余的了。
然后,你应该使用 e.Item.DataItem 来获取数据,而不是绑定后的列的某些字符值.例如如果DataSource=dataTable,那么应该是:
DataRow thisRow=(DataRow)e.Item;如果DataSource=dataView,那么应该是:
DataRow thisRow=((DataRowView)e.Item).Row;至于你的程序出错,你要确定Cells[0].Controls[0]的确是你预期的控件?
CreateItem(建立Header) --> ItemDataBound(绑定Header) --> CreateItem(建立第一行) --> ItemDataBound(绑定第一行) --> CreateItem(建立第二行) --> ItemDataBound(绑定第二行) ...
在ItemDataBound中就可以得到绑定后的数据。当页面返回的时候,只执行CreateItem事件。DataGrid的数据将从ViewState里获取。
..