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= "<div id="de" onclick="JavaScript:return confirm( '确定删除该学生吗? ')">删除</div> "
HeaderText= "操作 " CommandName= "Delete "> </asp:ButtonColumn>