asp.net – GridView中的多个DataKeyNames
|
我有一个从ObjectDataSource填充的GridView,其DataKeyNames字段中有两个项目.一个是主键,ID,另一个是类别字段(类别字段用于添加标题行以描述类别). 显示工作正常,但我正在尝试创建删除操作.对象的delete方法只需要ID字段,而在ObjectDataSource中,即使我将方法定义为只需要一个ID字段,.net也会抱怨,因为它正在寻找一个同时具有DataKeyNames中定义的字段的方法. 如果我将类别的参数添加到delete方法,它可以工作,但是定义一个不用于任何东西的参数很烦人. 我可以将ObjectDataSource和GridView对象配置为具有DataKeyNames的两个值,但具体应该传递给哪些方法? 这两个对象的(简化)定义是: <asp:ObjectDataSource ID="ObjDS1" runat="server" SelectMethod="getAllItems"
TypeName="Items" DeleteMethod="deleteItem">
<DeleteParameters>
<asp:Parameter Name="ID" Type="Int32" />
<!-- This shouldn't be necessary: -->
<asp:Parameter Name="Category" Type="String" />
</DeleteParameters>
</asp:ObjectDataSource>
<asp:GridView ID="gvJItems" runat="server" AutoGenerateColumns="False" DataKeyNames="ID,Category"
DataSourceID="ObjDS1">
<Columns>
<asp:BoundField DataField="ID" Visible="false" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="85%"/>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lbDelete" Runat="server"
OnClientClick="return confirm('Are you sure you want to delete this?');"
CommandName="Delete">Delete</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
解决方法所有DataKey值将始终传递给Delete方法,因为 DataKeyNames命名的字段旨在成为在GridView中唯一标识该项的字段.它们通常用于更多,以便在ViewState中逐行地轻松维护额外的字段,但这样做会产生您在ObjectDataSource方法中看到的副作用.要回答您的原始问题,不,您不能将Data包含在DataKeyNames中而不将其传递给Delete方法.但是,您可以通过将值放在模板列中的隐藏输入中来维护ViewState中的值.但是,获取该值比忽略Delete方法的参数更有意义. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – ConfigurationManager.AppSettings缓存
- asp.net-mvc – 使ASP.NET绑定指定media =屏幕的CSS bundle
- asp.net – 为什么HttpUtility.UrlEncode(HttpUtility.UrlD
- asp.net – 为什么在“Glimpse Web Debugger”中没有显示“
- 如何阻止IIS 8停止空闲的ASP.NET应用程序?
- asp.net-mvc – ASP.NET MVC – 如何获取一个URL而不是一个
- asp.net-mvc – 如何在ASP.NET MVC 2中使用模型绑定器的DI
- asp.net-mvc-3 – MVC-Mini-Profiler错误地显示重复的查询
- asp.net-mvc – asp.net mvc我可以有一个视图为多个动作方法
- asp.net – HttpContext.Current如何工作?
- 是否有必要创建ASP.NET 4.0 SQL会话状态数据库,与
- asp.net – iFrame中的Response.Redirect(),重定
- asp.net-mvc – .OTF字体未部署到Azure
- MONO / ASP.NET Linux主机?
- .net – 使用新技术时的安全问题
- asp.net-mvc – 在ASP.Net MVC中定义自定义URL路
- asp.net-mvc – Razor中()(括号)和{}(大括号)之间
- asp.net-mvc – EntityFramework.SqlServer未在W
- asp.net-mvc – Cookie中的ASP.NET MVC Store Te
- asp.net-mvc – 使用IIS 7重写模块重写Ampersand
