DataGird 删除最后一行后显示索引超出界限

Clayborne 2006-05-23 11:13:10
if(this._DataGrid.CurrentRowIndex>=0) this._DataGrid.UnSelect(this._DataGrid.CurrentRowIndex);
this._DataGrid.SetDataBinding(DataSource,"");
this._DataGrid.TableStyles.Clear();
DataGridTableStyle dgts=new DataGridTableStyle();
dgts.MappingName=MappingName;
foreach(DataGridColumnStyle cs in dgcs)
{
cs.NullText=AppString.cmndatagridNullText;
}
dgts.GridColumnStyles.AddRange(dgcs);
this._DataGrid.TableStyles.Add(dgts);
this._DataGrid.Refresh();


不管我怎么重新绑定,怎么设置被选中的行,这个错误就一定会出现,怎么绕过这个Bug呢?
...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiming0755 2006-06-14
  • 打赏
  • 举报
回复
GXY2005 说得有道理。
insiderc 2006-06-13
  • 打赏
  • 举报
回复
你差数据邦定指向索引类,相当于指针用法
this.sqlDataAdapter1.Fill(this.dataSet11.职员奖励表);
cmManage = (CurrencyManager) BindingContext[this.dataSet11,"职员奖励表"];
cmManage.Position = 0;
}
//------------------处理数据导航条和新增修改等事务---------------------
private void toolBar_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if (e.Button.ToolTipText == "首记录")
{
cmManage.Position = 0;
return;
}
if (e.Button.ToolTipText == "上一记录")
{
if (cmManage.Position > 0)
cmManage.Position--;
return;
}
if (e.Button.ToolTipText == "下一记录")
{
if (cmManage.Position < cmManage.Count-1)
cmManage.Position++;
return;
}
if (e.Button.ToolTipText == "尾记录")
{
cmManage.Position = cmManage.Count-1;
return;
}
if (e.Button.ToolTipText == "新增记录")
{
cmManage.AddNew();
return;
}
if (e.Button.ToolTipText == "删除记录")
{
if (MessageBox.Show("确实要删除这条记录吗?","询问",MessageBoxButtons.YesNo) == DialogResult.Yes)
{
if (cmManage.Count > 0)
cmManage.RemoveAt(cmManage.Position);
else
{
MessageBox.Show("没有可以删除的数据","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
return;
}
}
//参考
GXY2005 2006-05-25
  • 打赏
  • 举报
回复
DataGrid.CurrentRowIndex
---------------------------
没有数据就没有当前行,所有首先判断有没数据,再执行你的代码!
Knight94 2006-05-25
  • 打赏
  • 举报
回复
to DataGird 删除最后一行后显示索引超出界限

你如何删除的
Clayborne 2006-05-24
  • 打赏
  • 举报
回复
to insiderc()

就算不分页也有错误的。
insiderc 2006-05-23
  • 打赏
  • 举报
回复
//delete operator
try
{
//邦定;
}
catch
{
this.dg1.CurrentPageIndex--;
//邦定;
}
sky0003 2006-05-23
  • 打赏
  • 举报
回复
我好象也是遇到过这样的问题
我好象在for循环的里面就进行了Fill DataGrid
所以在删除的时候出现了这样的问题
Clayborne 2006-05-23
  • 打赏
  • 举报
回复
补充一下,删除的是最后一行数据。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧