【问题标题】:populating records in gridview在gridview中填充记录
【发布时间】:2012-03-13 15:35:39
【问题描述】:

我有一个 gridview 并从列表中绑定其中的记录。我需要从列表中删除多行

int deleled=0;
foreach(gridviewrow row in gridview1.rows)
{
   checkbox chkSelectedItem=(checkbox)row.findcontrol("chkSelectedItem");
   if(chkSelectedItem.checked)
   {
      int id=(int)gridview1.DataKeys[row.RowIndex].Values["Id"];
      Person person=new Person();
      person.Id=id;

      deleted+=person.Delete(user);

      gridview1.DeleteRow(row.rowindex);
    }
}

gridview1.datasource=persons;
gridview1.databind();

这里我有单独的类来删除用户...工作正常,我需要删除数据库中的选定记录以及 gridview,我必须在 gridview 中显示其他记录.....问题是我在 Persons 表中记录了许多用户,我需要在 gridview 中显示特定人员的详细信息...

删除记录工作正常,没问题,但是当我删除 gridview 中的行时,它会跳过索引...例如,如果在总共 10 条记录中选择记录 1、3、5、7、9,当控件出现在第 0 个索引处的第 1 条记录时,在执行 gridview1.DeleteRow(row.rowindex); 第 2 条记录(在第 1 个索引处)填充第 0 个索引,当控件获取 id 时,它只获取第 4 条记录而不是第 3 条记录....我什至尝试使用 list 获取选定的索引并尝试删除使用该列表中的索引的记录也显示了同样的问题,我可以理解控制流程....但我不知道如何解决这个问题....任何人都可以帮助我

【问题讨论】:

    标签: gridview


    【解决方案1】:

    如果您的 Persons 列表不是很大,一种方法是首先取消绑定 GridView 的数据源,从 Persons 列表中删除 Person 并且不要自己删除 GridView 的行,然后将该列表绑定到其数据源。

    【讨论】:

    • 感谢 coder 的帮助,我尝试在列表中收集索引并以 REVERSE 顺序在单独的循环中执行列表,它工作正常,感谢您的回复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 2020-10-11
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多