(急)c#中datagridview表中删除行后重新加载后删除的行会变成空白行。数据是没有了,空白行是什么情况?

删除行前

删除行后从新加载

我回答过你上次提的问题,你这是从XML文件中解析出来数据加载到DataGridView中。
我给你的答案完全可以实现你的目的,不知道你有没有看。

既然是空白行,肯定是加载时赋值问题。需要跟踪代码看看赋值时是否出错。

也有可能你删除了行,但在XML文件时没有删除节点,解析加载时解析出来节点的InnerText为空。追答

如果你只删属性,student节点不删,在解析加载时就需要做判断,如果节点的属性为空,则不加载此节点。
如果你直接删除该student节点,那就简单了,删除完后再调用加载方法,即刷新datagridview即可。

直接删除student节点
(我的XML中用的是innertext,你需要改成你的格式,即attribute)
for (int i = 0; i < dgvXML.SelectedRows.Count; i++)
{
string id = dgvXML.SelectedRows[i].Cells[0].Value.ToString();
XmlDocument doc = new XmlDocument();
doc.Load(this.txtPath.Text);
XmlNodeList nod = doc.DocumentElement.ChildNodes;
XmlNode root = doc.DocumentElement;//定位根节点,以从根点删除需要删除的节点
foreach (XmlNode peo in nod) //循环student节点,找到要删除的节点
{
if (XmlNode.Equals(peo.SelectSingleNode("ID").InnerText, id)) //以ID为索引,找到要删除的节点
{
root.RemoveChild(peo);//从根节点删除该ID的PERSON
doc.Save(this.txtPath.Text);
}
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-16
你是怎么加载啊啊?唉,贴两张图片有是什么意思呢?你想告诉我们你的表格第一行没有了么?,提问要抓住重点啊!!
我看到你的问题我更急啊!!追问

我代码字数有限制,刚申请的号,下面有那个xml的代码,怎么完全删除我那个代码只能删除里面的属性,把他们都删除了怎么写啊,请大神指点,

(百度提醒:对同一回答追问超过3条后每次消耗5个财富值,我没财富值了)

追答

所以啊,要提关键的,我看楼上的 【白天1030】这个不是说帮你搞定了撒,你可以发私信撒!!

第2个回答  2015-04-16
代码贴上来追问

追答

删除之后Student.xml你打开看下,是否还存在。

相似回答