在ASP.NET 2.0中操作数据之二十八:GridView里的Button

论坛 期权论坛     
niminba   2021-5-23 01:19   5   0
<p><strong>导言</strong></p>
<p>  一般控件(比如GridView)显示数据的时候对数据只能读取,而需要处理数据的功能是非常常见的.典型的情况是为每行数据添加一个Button, LinkButton, 或ImageButton . 当点击这些button时,数据会PostBack,执行一些服务器端的代码. 一条条的编辑或删除数据是最常见的情况.实际上,编辑和删除是如此常见,从概述插入、更新和删除数据 开始, 我们可以看到GridView, DetailsView, 和 FormView可以零代码的完成这些功能.</p>
<p>  除了编辑和删除button,GridView, DetailsView, and FormView 也可以包含一些执行自定义服务器端代码的Buttons, LinkButtons, 或 ImageButtons .在这一章我们来看看如何向一个GridView 或 DetailsView 里添加自定义的button.我们还将创建一个根据supplier进行分页的页面.对每个给定的supplier,FormView会显示它的相关信息,外加一个Button .点击这个Button 时,所有相关products会被标记为停止使用.另外,GridView 会列出选定的supplier提供的所有product ,并且每一行会包含“Increase Price”和“Discount Price”两个Button.这两个Button用来提高或降低10%的product单价(见图一).</p>
<p><img alt="//img.jbzj.com/file_images/article/201605/201605090907328.png" src="https://beijingoptbbs.oss-cn-hangzhou.aliyuncs.com/jb/2426819-61616a1d2248398366470a9319dbbe5d.png"></p>
<p><strong>图 1: FormView和GridView 都包含了执行自定义行为的Button<br>
</strong></p>
<p><strong>第一步: 添加一个Button 教程页</strong></p>
<p>  在研究如何添加自定义button之前,我们先花一点时间在网站里创建一些页,这些页会在本指南里用到.先添加一个名为CustomButtons的文件夹,然后添加如下的两个页.添加页的时候确保每页都选择了Site.master作为母板页.</p>
<p>&nbsp;&nbsp;&nbsp; Default.aspx<br>
&nbsp;&nbsp;&nbsp; CustomButtons.aspx</p>
<p><img alt="//img.jbzj.com/file_images/article/201605/201605090907329.png" src="https://beijingoptbbs.oss-cn-hangzhou.aliyuncs.com/jb/2426819-10e634992262870bdffed3a7d6155af5.png"></p>
<p><strong>图 2: 添加本指南需要的页面</strong></p>
<p>  象其它文件夹一样,CustomButtons 文件夹里的Default.aspx 用来列出教程章节.记得SectionLevelTutorialListing.ascx 这个用户控件提供了这个功能.因此,从解决方案浏览里将这个用户控件拖到页面上.</p>
<p><img alt="//img.jbzj.com/file_images/article/201605/2016050909073210.png" src="https://beijingoptbbs.oss-cn-hangzhou.aliyuncs.com/jb/2426819-a817ddbfd71340e26c873f333dc9cdf7.png"></p>
<p><strong>图 3: 添加SectionLevelTutorialListing.ascx 用户控件 到Default.aspx</strong></p>
<p>最后,将这些页的地址加到 Web.sitemap 的条目里.在Paging and Sorting &lt;siteMapNode&gt;之后添加下面的标记.</p>
<div class="blockcode">
<pre class="brush:csharp;">
&lt;siteMapNode
title="Adding Custom Buttons"
description="Samples of Reports that Include Buttons for Performing
Server-Side Actions"
url="~/CustomButtons/Default.aspx"&gt;
&lt;siteMapNode
title="Using ButtonFields and Buttons in Templates"
description="Examines how to add custom Buttons, LinkButtons,
or ImageButtons as ButtonFields or within templates."
url="~/CustomButtons/CustomButtons.aspx" /&gt;
&lt;/siteMapNode&gt;

</pre>
</div>
<p>修改完Web.sitemap后,在浏览器里看一下本教程站点,现在左边的菜单里包含了编辑,插入,删除教程的项.</p>
<p><img alt="//img.jbzj.com/file_images/article/201605/2016050909073311.png" src="https://beijingoptbbs.oss-cn-hangzhou.aliyuncs.com/jb/2426819-a8be272d8202522fd7a750cc0c7b265e.png"></p>
<p><strong>图 4:&nbsp; Site Map包含了添加自定义button教程<br>
</strong></p>
<p><strong>第二步: 添加一个列出 Supplier的FormView</strong></p>
<p>  我们首先来添加一个列出suppliers的FormView .正如在导言里讨论的那样,FormView根据supplier分页,并在GridView显示supplier 提供的所有product .另外FormView 会包含一个Button .当点击时,所有相关products会被标记为停止使用.在我们为FormView添加自定义button之前,我们首先创建显示supplier 信息的FormView .</p>
<p>  打开CustomButtons文件夹里的CustomButtons.aspx 页,从工具箱里拖一个FormView进来,将FormView的ID设置为Suppliers.打开FormView的智能标签,创建一个名为SuppliersDataSource的ObjectDataSource.</p>
<p><img alt="//img.jbzj.com/file_images/article/201605/2016050909073312.png" src="https://beijingoptbbs.oss-cn-hangzhou.aliyuncs.com/jb/2426819-295856d5ab6168a049d36a8ddc645d35.png"></p>
<p><strong>图 5: 创建一个名为SuppliersDataSource的ObjectDataSource</strong></p>
<p>  选择SuppliersBLL 类的GetSuppliers()方法配置ObjectDataSource(见图6).由于这个FormView没有提供修改supplier 信息的界面,所以在UPDATE 标签的下拉列表里选择None.</p>
<p><img alt="//img.jbzj.com/file_images/article/201605/2016050909073313.png" src="https://beijingoptbbs.oss-cn-hangzhou.aliyuncs.com/jb/2426819-feb402422488493de1945843e14aa90e.png"></p>
<p><strong>图 6: 使用 SuppliersBLL 类的GetSuppliers() 方法配置数据源</strong></p>
<p>  数据源配置完成后,Visual Studio会生成一个InsertItemTemplate,一个EditItemTemplate和一个FormVie
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP