private void DataGrid1_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e)
{
for( int col=2;col<=3;col++)
{
TableCell oldtc = this.DataGrid1.Items[1].Cells[col];
for(int i=2;i<20;i++)
{
TableCell tc = this.DataGrid1.Items[i].Cells[col];
if(tc.Text == oldtc.Text)
{
tc.Visible = false;
if(oldtc.RowSpan == 0)
{
oldtc.RowSpan = 1;
}
oldtc.RowSpan = oldtc.RowSpan +1;
oldtc.VerticalAlign = VerticalAlign.Middle;
}
else
{
oldtc = tc;
}
}
}
并且在数据绑定时设置了datakeyfield
this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();
this.DataGrid1.DataKeyField ="ProductID";
但是运行时出现错误提示
索引超出范围。必须为非负值并小于集合大小。参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index源错误:
行 103: for( int col=2;col<=3;col++)
行 104: {
行 105: TableCell oldtc = this.DataGrid1.Items[1].Cells[col];
行 106: for(int i=2;i<20;i++)
行 107: {
请大家指点啊 小弟快愁死了
{
for( int col=2;col<=3;col++)
{
TableCell oldtc = this.DataGrid1.Items[1].Cells[col];
for(int i=2;i<20;i++)
{
TableCell tc = this.DataGrid1.Items[i].Cells[col];
if(tc.Text == oldtc.Text)
{
tc.Visible = false;
if(oldtc.RowSpan == 0)
{
oldtc.RowSpan = 1;
}
oldtc.RowSpan = oldtc.RowSpan +1;
oldtc.VerticalAlign = VerticalAlign.Middle;
}
else
{
oldtc = tc;
}
}
}
并且在数据绑定时设置了datakeyfield
this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();
this.DataGrid1.DataKeyField ="ProductID";
但是运行时出现错误提示
索引超出范围。必须为非负值并小于集合大小。参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index源错误:
行 103: for( int col=2;col<=3;col++)
行 104: {
行 105: TableCell oldtc = this.DataGrid1.Items[1].Cells[col];
行 106: for(int i=2;i<20;i++)
行 107: {
请大家指点啊 小弟快愁死了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货