日期:2014-05-18  浏览次数:20467 次

DataGrid删除行的问题
我的方法哪下:
1.首先, <asp:datagrid   .....       OnDeleteCommand= "Grid_DeleteOrder "   > ;
记录ID: <asp:BoundColumn   Visible= "True "   DataField= "MainID "> </asp:BoundColumn> ,这是第一列。
删除按钮: <asp:ButtonColumn   Text= "删除 "   CommandName= "Delete "> </asp:ButtonColumn>

2.然后,在Grid_DeleteOrder()事件中:
得到ID:MainID   =   e.Item.Cells[0].Text   ;
执行删除sql,删除语句没有问题。

3.系统环境:.net1.1。

现在的问题是:
在win2000   Server下,运行正常,可正常删除。
但是在win2003下,也能删除成功,但是经常会删除到别的行,有50%的可能吧,记录越少比如说不分页的情况下,基本上都删除正常,分页多的话,即出现异常。

请教:
1.问题出在哪里?有可能和分页有关。
2.和系统环境有关吗?

盼复,不胜感激。


------解决方案--------------------
问题出在你代码写错了。。。

把代码贴全。。。不要动不动就怪罪系统。
------解决方案--------------------
你的问题和系统没有任何关系,删除行要进行判断,如果是最后一页并且是最后一行时,就要将当前页的索引减1.
------解决方案--------------------
lz硬要这样认为。。。那也没办法了。。。
------解决方案--------------------
e.Item.Cells[0].Text
------解决方案--------------------
很明白, LZ 的代码逻辑上有问题, 细节检查, 调试跟踪
------解决方案--------------------
拿代码来说话更客观些,否则妄加猜测毫无意义

就目前而言根据e.Item.Cells[0].Text判断删除内容可能不是一个好办法
------解决方案--------------------
如果你的 MainID 是 PK 的话,这样去删除记录是没有问题的。
跟踪一下每次执行删除的时候,得到的 MainID 是否就是你所想要删除的记录的 MainID?
------解决方案--------------------
汗 。。。。
------解决方案--------------------
好象是页面 回送了,试下IsPostBack
------解决方案--------------------
MainID不唯一?
------解决方案--------------------
Convert.toInt32(e.Item.Cells[0].Text)试试
------解决方案--------------------
这个dgTeacher_DeleteCommand才是删除事件吧?
------解决方案--------------------
lz可以测试下,是否是删错了???

看逻辑和代码都没问题


Datagrid删除后,重新绑定了,lz可能没看清楚
------解决方案--------------------
根据你的说明,1 建议你先改动下代码,记录一下删除的时候前后数据库的信息,记录下当初的e.item.*****那个里面的内容(写入到文本文件或者数据库的临时表)。2 建议你还是用datakeyfield这个属性以及其相关去datakey的方法。3 既然有的系统正常,那么首先你得确定系统没问题,这样你得将该系统的最新补丁以及vs的补丁打全了。这样排除硬件问题,再来看看是否是软件的问题
------解决方案--------------------
招聘2--4Y ASP.NET工程师,有朋友的话麻烦推荐下吧.
MSN:lin830413@hotmail.com
有软件测试的朋友也推荐给我哦,谢谢
------解决方案--------------------
如果是使用DataGrid自带的删除功能就在DataGrid1_DeleteCommand事件中写代码。
------解决方案--------------------
打个断点调试一下。
------解决方案--------------------
删除后得新绑定。
------解决方案--------------------
下面是我的代码,提供参考:
<asp:ButtonColumn Text= "&lt;div id=&quot;de&quot; onclick=&quot;JavaScript:return confirm( '确定删除该学生吗? ')&quot;&gt;删除&lt;/div&gt; "
HeaderText= "操作 " CommandName= "Delete "> </asp:ButtonColumn>