我有一个使用实体框架的.NET4 Web应用程序
在我的一个页面中,我有一个绑定到实体数据源的gridview。在Gridview定义中我有
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
并且定义了EntityDataSource
<asp:EntityDataSource ID="eds_timesheets" runat="server" ConnectionString="name=TIME_ENTRY_DB"
DefaultContainerName="TIME_ENTRY_DB" EnableDelete="True" EnableFlattening="False"
EnableUpdate="True" EntitySetName="TIMESHEETs" Include="USER, ACTIVITY, PROJECT"
EntityTypeFilter="TIMESHEET">
</asp:EntityDataSource>
一切都按预期工作,但我现在想要在意外按下的情况下确认删除。
我已经尝试将代码放在gridview的row命令上,该命令将注册一个javascript警报窗口,但此时似乎EntityDataSource已经执行了删除。
没有用于gridview命令字段的OnClientClick来放置一个小的javascript片段。
有没有人闯入并随后解决了这个问题?是否更容易拥有一个链接按钮并自己处理实体数据源的删除?
答案 0 :(得分:8)
使用TemplateField,然后在其中放入一个带有CommandName="Delete"
的Button。然后,您可以使用OnClientClick
属性来调用您的javascript确认。
如下所示(可以使用Button,ImageButton或LinkButton):
<asp:TemplateField>
<ItemTemplate>
<asp:Button id="DeleteButton" runat="server" text="Delete"
CommandName="Delete" OnClientClick="return confirm('Are you sure?');" ></asp:Button>
</ItemTemplate>
</asp:TemplateField>
当然,您不希望在CommandField中显示删除按钮。