加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

在ASP.NET 2.0中操作数据之四十九:为GridView控件添加RadioButt

发布时间:2016-11-23 03:12:29 所属栏目:MsSql教程 来源:网络整理
导读:导言: GridView控件提供了大量的内置功能。它包含了一系列的域(field)来显示诸如text、images、hyperlinks和buttons。另外它支持模板(template)用于用户自定义界面。我们可以构建这样一个GridView控件,用户仅需要点击控件里的一个按钮,每一条记录行

导言:

  GridView控件提供了大量的内置功能。它包含了一系列的域(field)来显示诸如text、images、hyperlinks和buttons。另外它支持模板(template)用于用户自定义界面。我们可以构建这样一个GridView控件,用户仅需要点击控件里的一个按钮,每一条记录行都可以选择、编辑、删除。除了控件本身内置的功能外,在某些情况下,我们添加一些额外的、控件没有内置的功能。在本章及接下来的2篇教程里我们将探讨如何优化GridView,以支持额外的功能。

  本篇及接下来的教程将主要探讨优化行选择程序(row-selection process),就像在教程《使用 GridView和DetailView实现的主/从报表》里考察的一样,我们在GridView控件里添加一个包含选择按钮的命令域(CommandField),点击该按钮后产生回传(postback),所选行的index值传给GridView控件的SelectedIndex属性。在那篇教程里我们看到了如何使用该功能显示所选行的详细信息。

  除了Select button,我们经常在用户界面包含radio button和checkbox用于选择记录。在某些情况下我们可以对GridView扩充,在每条记录里用radio button或checkbox替换掉Select button。比如,我们只希望选择GridView记录中的一条时,用radio button比用Select button好;再比如,当用户要选择多条记录时——就像在邮箱里同时删除几份邮件一样,用checkbox是最好的。本教程先考察为GridView添加radio buttons,再考察添加checkboxes。

第一步:创建优化GridView的Web页面

  在开始之前让我们在网站项目里创建一个本节及后面2节要用到的ASP.NET页面。新建一个名为EnhancedGridView的文件夹,然后,添加如下所示的页面,确保使用Site.master母版。

Default.aspx
RadioButtonField.aspx
CheckBoxField.aspx
InsertThroughFooter.aspx

/uploads/allimg/c161121/14OI93W35620-525G3.gif
图1:添加相关页面

  像其它文件夹一样,Default.aspx页面将显示本节的所有教程。记得用户控件SectionLevelTutorialListing.ascx提供该功能,从解决方案管理器里将其拖到Default.aspx页面上。

/uploads/allimg/c161121/14OI93WI440-53Z91.gif
图2:添加用户控件SectionLevelTutorialListing.ascx

  最后,将这4篇教程添加到Web.sitemap文件里,特别的,加在“Using the SqlDataSource Control” <siteMapNode>后:

<siteMapNode 
 title="Enhancing the GridView" 
 url="~/EnhancedGridView/Default.aspx" 
 description="Augment the user experience of the GridView control.">
 <siteMapNode 
 url="~/EnhancedGridView/RadioButtonField.aspx" 
 title="Selection via a Radio Button Column" 
 description="Explore how to add a column of radio buttons in the GridView." />
 <siteMapNode 
 url="~/EnhancedGridView/CheckBoxField.aspx" 
 title="Selection via a Checkbox Column" 
 description="Select multiple records in the GridView by using a column of 
  checkboxes." />
 <siteMapNode 
 url="~/EnhancedGridView/InsertThroughFooter.aspx" 
 title="Add New Records through the Footer" 
 description="Learn how to allow users to add new records through the 
  GridView's footer." />
</siteMapNode>

完成后,花几分钟在浏览器查看该系列教程,如图所示:

/uploads/allimg/c161121/14OI93X03620-541K5.gif
图3:Site Map里完整地列出了本系列教程

第2步:在GridView控件里显示供应商

  让我们创建一个GridView控件,用于显示来自美国的供应商列表,同时每行记录包含一个radio button。当点击radio button后,用户将查看到供应商提供的产品。在开始具体研究如何实现以前,我们先创建一个显示供应商的GridView。

  在文件夹EnhancedGridView里打开adioButtonField.aspx页面,进入设计模式,从工具箱拖一个GridView到页面。设其ID为Suppliers,在智能标签里选“创建新数据源”,特别的,我们选用ObjectDataSource,命名为SuppliersDataSource,然后选用SuppliersBLL 。

/uploads/allimg/c161121/14OI93X24c0-553001.gif
图4:创建一个名为SuppliersDataSource的ObjectDataSource

/uploads/allimg/c161121/14OI93X500F-5D342.gif
图5:设置该ObjectDataSource使用SuppliersBLL类

因为我们只想列出来自美国的供应商,在SELECT选项卡的下拉列表里选择 GetSuppliersByCountry(country)方法。

/uploads/allimg/c161121/14OI93XM530-5I2Y.gif
图6:设置该ObjectDataSource使用SuppliersBLL类(原文如此)

在UPDATE选项卡选择“(None)”,点下一步

/uploads/allimg/c161121/14OI93Y1430-5V5N.gif
图7:设置该ObjectDataSource使用SuppliersBLL类(原文如此)

  因为GetSuppliersByCountry(country)方法需要接受一个参数,向导提示我们设置参数源,在这里我们指定一个“硬编码”值(就本例而言,我们指定USA),在数据源下拉列表里选“None”,在指定值文本框输入“USA”。点“完成”结束向导设置。

/uploads/allimg/c161121/14OI93Y63c0-5963J.gif
图8:为参数country使用默认值“USA”

  只保留GridView里的CompanyName, City和Country三列(BoundFields),其余的全部删除。同时将CompanyName列的HeaderText属性改为“Supplier”。设置完以后, GridView和ObjectDataSource控件的声明代码看起来和下面的差不多:

<asp:GridView ID="Suppliers" runat="server" AutoGenerateColumns="False"
 DataKeyNames="SupplierID" DataSourceID="SuppliersDataSource" 
 EnableViewState="False">
 <Columns>
 <asp:BoundField DataField="CompanyName" HeaderText="Supplier" 
  SortExpression="CompanyName" />
 <asp:BoundField DataField="City" HeaderText="City" 
  SortExpression="City" />
 <asp:BoundField DataField="Country" HeaderText="Country" 
  SortExpression="Country" />
 </Columns>
</asp:GridView>
<asp:ObjectDataSource ID="SuppliersDataSource" runat="server" 
 OldValuesParameterFormatString="original_{0}"
 SelectMethod="GetSuppliersByCountry" TypeName="SuppliersBLL">
 <SelectParameters>
 <asp:Parameter DefaultValue="USA" Name="country" Type="String" />
 </SelectParameters>
</asp:ObjectDataSource>

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读