• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 在ASP.NET 2.0中操作数据之六十四:GridView批量添加数据

在ASP.NET 2.0中操作数据之六十四:GridView批量添加数据

作者:heker2007 字体:[增加 减小] 来源:互联网 时间:2017-05-11

heker2007通过本文主要向大家介绍了gridview asp.net,asp:gridview,asp gridview分页,asp:gridview属性,asp.net等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

导言:

  在前面的第62章《GridView批量更新数据》里,我们用GridView控件里定制了一个批编辑界面,同样的我们也可以定制一个批添加界面.假设有这种情况,我们接受一批从Tokyo(东京)发过来的货物:6种不同的tea 和 coffee,如果用户在一个DetailsView控件里一次输入一个产品,他将会重复的输入很多相同的值,比如相同的种类(Beverages),相同的供应商(Tokyo Traders),相同的discontinued值(False),以及相同的order值(0).重复性的输入这些相同的值不仅累,还很容易出错.只需额外多做一些工作,我们就可以创建一个批添加界面。用户只需一次行的选择supplier 和category,输入一系列产品的names 和unit prices,再点击一个按钮就可以将这些新产品添加进数据库(如图1所示).这些添加的产品的ProductName 和UnitPrice数据由界面上方的2个DropDownList控件指定,Discontinued 和UnitsOnOrder的值由“硬编辑”指定,分别为false和0.

http://files.weikejianghu.com/file_images/article/201605/2016051811030752.png
图1:批添加界面


本教程,我们将创建一个如图1所示的批添加界面。在前面2章的基础上我们将把添加过程用事务封装以保证原子操作.让我们开始吧!

第一步:创建一个展示界面

  我们将创建一个包含2个区域的单一页面:展示区域和添加区域.我们在这一步创建的是展示区域,它包含一个用于展示产品的GridView控件以及一个标题为“Process Product Shipment”的button按钮.当点击该按钮时,展示界面将替换为一个如图1所示的添加界面.如果点“Add Products from Shipment” 或 “Cancel”按钮时又会返回展示页面.添加界面将在第二步完成.

  这个包含2个界面的页面每次只能让一个界面可见。我们将用2个Panel Web控件作为容器包含这2个界面——一个Panel Web控件包含一个界面.

  首先打开BatchData文件夹里的BatchInsert.aspx页面,在设计器模式里从工具箱里拖一个Panel控件到页面(如图2所示),设置其ID为DisplayInterface.当将Panel控件拖到页面时其Height 和 Width属性分别为50px 和 125px.在属性窗口里清除这些属性.

http://files.weikejianghu.com/file_images/article/201605/2016051811030753.png
图2:从工具箱里拖一个Panel控件到页面

  然后拖一个Button 和 GridView控件到Panel控件里。设Button的ID为ProcessShipment ,Text属性为“Process Product Shipment”.  设GridView的ID为ProductsGrid,从其智能标签里将其绑定到一个名为ProductsDataSource的ObjectDataSource.设置该ObjectDataSource调用ProductsBLL class类的GetProducts方法.由于该GridView控件只用来展示数据,从UPDATE, INSERT, DELETE标签里选“(None)”. 点Finish完成设置

http://files.weikejianghu.com/file_images/article/201605/2016051811030754.png
图3:调用ProductsBLL Class类的GetProducts方法来显示数据

http://files.weikejianghu.com/file_images/article/201605/2016051811030755.png
图4:在UPDATE, INSERT, DELETE标签里选“(None)”

  完成ObjectDataSource设置后,Visual Studio会自动地添加一些BoundFields以及一个CheckBoxField。只保留ProductName, CategoryName, SupplierName, UnitPrice, 以及Discontinued这几列.你可以再做一些外观的改进.我将UnitPrice列定制为货币值,重新对列进行了排序,再对一些列的HeaderText值进行了修改.再在GridView的智能标签里启用了“分页”和“排序”功能.完成上述工作后,页面的声明代码看起来应该和下面的差不多:

<asp:Panel ID="DisplayInterface" runat="server">
 <p>
 <asp:Button ID="ProcessShipment" runat="server"
  Text="Process Product Shipment" />
 </p>
 <asp:GridView ID="ProductsGrid" runat="server" AllowPaging="True"
 AllowSorting="True" AutoGenerateColumns="False"
 DataKeyNames="ProductID" DataSourceID="ProductsDataSource">
 <Columns>
  <asp:BoundField DataField="ProductName" HeaderText="Product"
  SortExpression="ProductName" />
  <asp:BoundField DataField="CategoryName" HeaderText="Category"
  ReadOnly="True" SortExpression="CategoryName" />
  <asp:BoundField DataField="SupplierName" HeaderText="Supplier"
  ReadOnly="True" SortExpression="SupplierName" />
  <asp:BoundField DataField="UnitPrice" DataFormatString="{0:c}"
  HeaderText="Price" HtmlEncode="False"
  SortExpression="UnitPrice">
  <ItemStyle HorizontalAlign="Right" />
  </asp:BoundField>
  <asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued"
  SortExpression="Discontinued">
  <ItemStyle HorizontalAlign="Center" />
  </asp:CheckBoxField>
 </Columns>
 </asp:GridView>
 <asp:ObjectDataSource ID="ProductsDataSource" runat="server"
 OldValuesParameterFormatString="original_{0}"
 SelectMethod="GetProducts" TypeName="ProductsBLL">
 </asp:ObjectDataSource>
</asp:Panel>

</div>

  我们注意到Button 和 GridView控件的声明代码出现在<asp:Panel>标签内部,因为这些控件置于名为DisplayInterface的Panel控件里面,我们可以将Panel控件的Visible 属性设置为false来隐藏这些控件.我们将在第三步看到,当点击一个按钮时,通过编程的方式改变Panel控件的Visible属性以显示添加界面.

  花点时间在浏览器里登录该页面.如图5所示,你将看到一个显示为“Process Product Shipment”的button按钮,其下的GridView控件每次列出10个产品.

http://files.weikejianghu.com/file_images/article/201605/2016051811030856.png
图5:GridView列出了产品并启用排序和分页功能

第二步:创建添加界面

  创建完展示界面后,我们将创建添加界面。在本教程,我们的添加界面允许用户同时添加5个产品,且这5个产品的category 和 supplier是一样的,而names 和 nit price值不同.在ID为DisplayInterface的Panel控件下面,从工具箱里拖一个Panel控件到页面,设置其ID为InsertingInterface,Visible属性为false,并清除其Height 和 Width属性值。我们将在第三步添加代码将其Visible属性改为true.

  接下来我们将创建如图1所示的添加界面。该界面本来可以通过一些HTML技术来创建的,不过在这里我们将使用一个很简单的4列7行的table表.

  注意:虽然在设计器模式里可以使用工具箱的工具来添加<table> elements元素,不过那样会自动添加一些我们不需要的style属性设置.因此,我更偏向于在源视图模式里添加HTML <table> elements元素. 当写好类<table>声明代码后,我喜欢立即切换到设计器模式,再添加Web控件并设置其属性。当心中有数,已经想好了要创建几行几列的时候,我倾向于使用静态HTML(static HTML)而不是Table Web控件,原因是如果使用Table Web控件的话,我们必须通过FindControl("controlID")的方式来访问放置在里面的的Web控件.不过话又说回来,如果是要创建一个动态变化的表(dynamically-sized tables)的话——比如该表的行和列都绑定到数据库或者基于用户自定义的标准格式,我还是要使用Table Web控件,原因很简单,我们可以通过编程来创建该Table Web控件.

在ID为InsertingInterface的Panel控件的<asp:Panel>标签里输入如下的声明代码:

<table class="DataWebControlStyle" cellspacing="0">
 <tr class="BatchInsertHeaderRow">
 <td class="BatchInsertLabel">Supplier:</td>
 <td></td>
 <td class="BatchInsertLabel">Category:</td>
 <td></td>
 </tr>
 <tr class="BatchInsertRow">
 <td class="BatchInsertLabel">Product:</td>
 <td></td>
 <td class="BatchInsertLabel">Price:</td>
 <td></td>
 </tr>
 <tr class="BatchInsertAlternatingRow">
 <td class="BatchInsertLabel">Product:</td>
 <td></td>
 <td class="BatchInsertLabel">Price:</td>
 <td></td>
 </tr>
 <tr class="BatchInsertRow">
 <td class="BatchInsertLabel">Product:</td>
 <td></td>
 <td class



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ASP.NET GridView的Bootstrap分页样式
  • asp.net实现固定GridView标题栏的方法(冻结列功能)
  • 在ASP.NET 2.0中操作数据之六十四:GridView批量添加数据
  • 在ASP.NET 2.0中操作数据之六十三:GridView实现批量删除数据
  • 在ASP.NET 2.0中操作数据之六十二:GridView批量更新数据
  • 在ASP.NET 2.0中操作数据之五十一:从GridView的页脚插入新记录
  • 在ASP.NET 2.0中操作数据之四十九:为GridView控件添加RadioButton
  • 在ASP.NET 2.0中操作数据之二十八:GridView里的Button
  • 在ASP.NET 2.0中操作数据之十五:在GridView的页脚中显示统计信息
  • 在ASP.NET 2.0中操作数据之十二:在GridView控件中使用TemplateField

相关文章

  • 2017-05-11浅谈ASP.NET的include的使用方法
  • 2017-05-11ASP.NET内置对象之Application对象
  • 2017-05-11ASP.NET页面优化 性能提升8倍的方法
  • 2017-05-11php基础练习--简单验证码实现
  • 2017-05-11ASP.NET中Session和Cache的区别总结
  • 2017-05-11ASP.NET MVC5 网站开发框架模型、数据存储、业务逻辑(三)
  • 2017-05-11asp.net UrlReWriter使用经验小结
  • 2017-05-11关于C# if语句中并列条件的执行
  • 2018-08-20Visual Studio 2015 配置 Opencv3.2的图文详解
  • 2017-05-11ASP.NET 调用百度搜索引擎的代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。
    • asp.net core webapi 服务端配置跨域的实例
    • Asp.Net FckEditor在web.config中配置的具体实例
    • 10个.NET中删除空白字符串的方法
    • Repeater对数据进行格式化处理
    • 在Web用户控件中引用样式表中样式的方法
    • ASP.NET GridView中文本内容无法换行(自动换行/正常换行)
    • asp.net url传递后地址栏乱码(中文超过两个汉字)
    • 解决asp.net上传文件超过了最大请求长度的问题
    • Visual Studio.Net 内幕(7)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有