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>
.cs:
string strStudent = "delete from MAG_STUDENT where MS_ID= ' "+Convert.ToInt32(e.Item.Cells[0].Text.ToString())+ " ' ";//删除学生
bool blOk1=sql.ExecuteSql(strStudent);
[解决办法]
最简单的办法
1、把ID那一列显示出来
2、对照数据库看看ID值和数据库里的是否一样
3、设置断点,删除的时候看看获取的ID是否和预期的一样?
[解决办法]
应该跟你的postback的使用有关系,lz检查一下是不是有分页的情况下删除的都是第一页对应的记录。
跟环境肯定不会有关系。