Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET 2.0数据操作教程之二十二:为删除数据添加客户端确认

ASP.NET 2.0数据操作教程之二十二:为删除数据添加客户端确认2010-08-09 翻译:cnblogs chagel返回“”

导言

在前面一些教程中,我们已经看到如何使用应用程序框架, ObjectDataSource,以及那些提供增、改、删功能的数据Web控件。在我们已经实 现的删除数据的界面中,包含一个删除按钮,当点击它的时候,会导致数据回传 以及调用ObjectDataSource的Delete()方法。然后Delete()方法会调用对应业务 逻辑层中的方法,再进入数据访问层,直至调用最终操作数据库的DELETE语句。

虽然这个界面已经能够让用户通过GridView,DetailsView,或者 FormView控件来删除记录,但是在用户点击删除按钮的时候,它缺少一些提示信 息。如果用户本想点击编辑按钮,但是不小心点击了删除按钮,那么原本会更新 的记录将会被删除。为了避免此类事情发生,在这篇教程里面,我们将为点击删 除按钮的时候,添加一个能在客户端显示提醒的窗口。

JavaScript的 confirm(string)方法将在一个模式窗口中显示那些作为string参数传进来的文本 ,这个窗口将会显示两个按钮-确定(OK)和取消(Cancel)。(见图1)confirm (string)方法将根据点击不同的按钮来返回一个布尔类型值。(返回true,如果 点击了确定(OK),返回false如果点击了取消(Cancel))

图1:JavaScript的confirm(string)方法显示一个模式的,客户端的窗 口

在一个表单的提交过程中,如果从客户端的事件处理器返回一个false 值,那么这个表单将取消提交。使用这种特性,我们可以在这个删除按钮的客户 端事件处理器 onClick中,调用confirm(“你确定要删除这个产品吗? ”),让它返回一个布尔值。如果用户点击了取消,confirm(string)将返回 false,因此会取消表单的提交。在没有回传的前提下,这个已经点击了删除按钮 的产品并没有被删除。相反,如果在确认窗口中用户点击了确定,回传将会继续 而且这个产品将会被删除。参考 使用JavaScript的confirm()方法控制表单提交 来获取这方面的更多信息。

在添加这些有用的客户端脚本时候,使用模版 和使用一个CommandField相比,将会有一些细微的差别。因此,在这篇教程中, 我们将同时考察FormView和GridView的例子。

注意:正如这篇教程中讨论 到的,使用客户端确认技术时候,我们假设用户的浏览器支持JavaScript并且已 经启用了JavaScript支持。如果这其中的任何一个假设不能满足,那么点击删除 按钮的时候将会立即进行回传而不会显示一个确认窗口。

第一步:新建一 个支持删除的FormView

首先在EditInsertDelete目录下面,创建 ConfirmationOnDelete.aspx页面,并添加一个FormView控件,然后给这个控件绑 定一个ObjectDataSource,这个数据源控件将从ProductsBLL类的GetProducts() 方法获取产品信息。同时给它的Delete()方法绑定指向ProductsBLL类的 DeleteProduct(productID)方法。确保INSERT和UPDATE标签的下拉框中为(None )。最后,在FormView的属性窗口中勾上Enable Paging多选框。

通过这 些步骤,创建了一个以下语句声明的ObjectDataSource:

1<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="DeleteProduct"
2
3 OldValuesParameterFormatString="original_{0}" SelectMethod="GetProducts" TypeName="ProductsBLL">
4
5 <DeleteParameters>
6
7 <asp:Parameter Name="productID" Type="Int32" />
8
9 </DeleteParameters>
10
11</asp:ObjectDataSource>
12