asp.net – ObjectDataSource删除问题
发布时间:2020-12-16 07:15:36 所属栏目:asp.Net 来源:网络整理
导读:环境:asp.net框架2.0 我在自定义对象上遇到Delete方法和ObjectDataSource问题. Select,Insert和Update方法工作正常. 这是类的代码: public class Car{ public string ID {get; set;}//I know this is 3.0+ syntax. public string Description {get; set;}/
环境:asp.net框架2.0
我在自定义对象上遇到Delete方法和ObjectDataSource问题. Select,Insert和Update方法工作正常. 这是类的代码: public class Car { public string ID {get; set;}//I know this is 3.0+ syntax. public string Description {get; set;}//I know this is 3.0+ syntax. public bool Equals(Car other) { if (ReferenceEquals(null,other)) return false; if (ReferenceEquals(this,other)) return true; return other.ID == ID; } public override bool Equals(object obj) { if (ReferenceEquals(null,obj)) return false; if (ReferenceEquals(this,obj)) return true; return obj.GetType() == typeof (Car) && Equals((Car) obj); } public override int GetHashCode() { return ID; } } public class CarList { private static List<Car> _cars; public CarList() { if(_cars == null) _cars = new List<Car>(); //Create some cars and insert them here... } public List<Car> Select() { return _cars; } public void Update(Car updatedCar) { int i = _cars.IndexOf(updatedCar); if(i != -1) { _cars[i] = updatedCar; } } public void Insert(Car insertedCar) { _cars.Add(insertedCar); } public void Delete(Car deletedCar) { _cars.Remove(deletedCar); } } 这是ObjectDataSource和DetailsView的代码: <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DataObjectTypeName="Car" TypeName="CarList" DeleteMethod="Delete" InsertMethod="Update" SelectMethod="Select" UpdateMethod="Update"> </asp:ObjectDataSource> <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" AutoGenerateRows="False" CellPadding="4" DataSourceID="ObjectDataSource1" ForeColor="#333333" GridLines="None" Height="50px" Width="125px"> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <CommandRowStyle BackColor="#D1DDF1" Font-Bold="True" /> <RowStyle BackColor="#EFF3FB" /> <FieldHeaderStyle BackColor="#DEE8F5" Font-Bold="True" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <Fields> <asp:BoundField DataField="Id" HeaderText="Id" /> <asp:BoundField DataField="Description" HeaderText="Model" /> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" /> </Fields> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#2461BF" /> <AlternatingRowStyle BackColor="White" /> </asp:DetailsView> 当我尝试删除一个Item并对方法Delete执行调试时,它的参数为deletedCar,如下所示: ID = 0 但是,当我对Update或Insert Methods执行调试时,Car对象正确填充了正确的数据. 到底是怎么回事? 解决方法
在DetailsView中设置DataKeyNames(主键属性).
<asp:DetailsView DataKeyNames="ID" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 使用HTML.EditorFor Vs使用HTML.CheckBox
- asp.net-mvc-4 – 具有自定义角色的MVC 4 Intranet身份验证
- asp.net-mvc – 传递的JSON集合未被控制器拾取
- 使用asp.net 4.5 OAuth注册google与clientid和secret
- asp.net – HttpContext.Current不解析在MVC 4项目
- asp.net – COM异常 – TYPE_E_CANTLOADLIBRARY?
- jquery父元素和子元素点击事件传递问题_不可把父元素的事件
- 包含模型列表的模型(MVC-3,Razor)
- ASP.NET CAPTCHA实现
- 如何从asp.net中的javascript调用codebehind函数?
推荐文章
站长推荐
- asp.net – dropdownlist在页面重新加载时不会重
- asp.net-mvc – ASP.net MVC返回文件和重定向
- asp.net 3.5升级到4.0 IIS6 ReturnURL问题
- asp.net-mvc-4 – Resharper无法解析主页中的部分
- asp.net-web-api – ASP.NET Web API RTM和子域路
- asp.net-mvc – 实体框架:已经有一个与此命令关
- asp.net – 在Visual Studio 2015社区中看不到“
- asp.net-mvc – 在ASP.NET核心中创建单元测试
- asp.net-mvc – 如何单元测试返回ContentResult的
- 我可以在ASP.NET中获取浏览器时区,还是依靠JS操作
热点阅读