首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

GridView1_RowDataBound事件,索引超出范围。很奇怪的有关问题,小弟我明明做了判断的

2012-09-08 
GridView1_RowDataBound事件,索引超出范围。很奇怪的问题,我明明做了判断的。C# codeprotected void GridVie

GridView1_RowDataBound事件,索引超出范围。很奇怪的问题,我明明做了判断的。

C# code
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)    {        if (e.Row.RowType == DataControlRowType.DataRow)        {           //取主键的时候前面要加个判断,因为开始的时候是bof,不是从0开始的.           //string aa = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();            e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#9CCBF7';this.style.cursor='hand'");            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");            //注意格式,是单引号加双引号,否则会提示“常量中有换行符”            //这地方注意传递主键的时候的方式            e.Row.Attributes.Add("ondblclick", "returnSelect('" + GridView1.DataKeys[e.Row.RowIndex].Value.ToString() + "','" + e.Row.Cells[1].Text.ToString() + "','" + e.Row.Cells[2].Text.ToString() + "','" + e.Row.Cells[3].Text.ToString() + "','" + e.Row.Cells[4].Text.ToString() + "','" + e.Row.Cells[5].Text.ToString() + "','" + e.Row.Cells[6].Text.ToString() + "');");        }    }


很奇怪的问题,我命名做了判断的。 我测试了一下,gridview里面有数据的时候不会报错,没有数据的时候就会报错。



[解决办法]
没有数据的时候根本执行绑定事件,应该不是跟数据有关系的,

你的GridView1是否设置了DataKeyNames属性

[解决办法]
我这两天遇到几次你这样的问题,就是在判断中加了一个条件象这样就不会错了:
if (GridView1.Columns.count > 7)
if (e.Row.RowType == DataControlRowType.DataRow)

这里是假设你的GridView1有7列

[解决办法]
你肯定是搞错了
数据源没有数据的时候,根本就不会执行
GridView1_RowDataBound
事件的

热点排行