创建完全可编辑的 DataGrid

2016-01-29 13:33 2 1 收藏

创建完全可编辑的 DataGrid,创建完全可编辑的 DataGrid

【 tulaoshi.com - ASP.NET 】

在论坛中我看到过许多相同或相似的问题:我怎样在我的DataGrid的每一行中放置检查框、文本框等等?怎样更新它们的值?答案相当简单,在这篇文章中,我将向你展示如何完成它。

我们都知道,DataGrid是一个功能非常强大的工具。根据我的经验,在90%以上的时间中, DataGrid 都被用来显示数据,并可能一次编辑一行数据。  而某些时候,可能需要一次编辑多行,甚至是所有数据。一个实际的例子就是在网上销售物品的应用程序中, 顾客可能一次要变更他们篮子中的一种或多种物品,单击检查框移去他们不想要的商品。

构想

在这个例子中,我写了一个简单的WebForm来管理存储在XML中的联系人列表。 这个需求是非常简单的:具有添加新联系人,编辑/删除现有联系人的能力。用户可以一次修改或删除多个联系人,我也允许用户按他们选定的列来对数据网格进行排序。

我的例子是用 C# 编写的。 如果你更喜欢这些代码的VB版本,在下载文件中有这两种格式的代码。

Contacts.xml

这个例子中的 XML 数据文件非常简单直观。由于它非常简单,所以我没有创建规划。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

<?xml version="1.0" standalone="yes"?
<Contacts
  <Contact
    <Emailmyaddress@mycompany.com</Email
    <FirstNameJohn</FirstName
    <LastNameDoe</LastName
  </Contact
  <Contact
    <Emailyouraddress@yourcompany.com</Email
    <FirstNameJane</FirstName
    <LastNameDoe</LastName
  </Contact
</Contacts

ContactList.aspx

设置 WebForm 非常简单。我放置了一个新的 DataGrid 到我的窗体中,并且设置它为4列,第一列都包含了用来删除联系人的检查框。你会注意到我在这里做的主要工作就是以模板列( TemplateColumn)的形式创建了每一列。 这允许我放置文本框和检查框对象到数据模板(ItemTemplate)中 . 这是一个在网格每一行中显示文本以外的其它东西的技巧。 除此以外,你还会注意到我使用 FooterTemplate 来使新建联系人变得简单而直观。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

我也包含了一个链接按钮(LinkButton),用来保存用户所做的修改及删除操作。但它并不用来添加新联系人。添加新联系人的操作由最后一列的页脚模板中链接按钮(LinkButton)来完成。

<asp:datagrid id="dgContacts" runat="server" ShowFooter="True" AllowSorting="True" Forefont color="Black" GridLines="None" CellPadding="2" Backfont color="LightGoldenrodYellow" BorderWidth="1px" Borderfont color="Tan" Width="499px" AutoGenerateColumns="False" DataKeyField="Email"
  <SelectedItemStyle Forefont color="GhostWhite" Backfont color="DarkSlateBlue"</SelectedItemStyle
  <AlternatingItemStyle Backfont color="PaleGoldenrod"</AlternatingItemStyle
  <HeaderStyle Font-Bold="True" Backfont color="Tan"</HeaderStyle
  <FooterStyle Backfont color="Tan"</FooterStyle
  <Columns
    <asp:TemplateColumn SortExpression="FirstName" HeaderText="First Name"
      <ItemTemplate
        <asp:TextBox id=First runat="server" Width="109px" Text='<%# DataBinder.Eval(Container, "DataItem.FirstName") %'
        </asp:TextBox
      </ItemTemplate
      <FooterTemplate
        <asp:TextBox id="NewFirst" runat="server" Width="109px"</asp:TextBox
      </FooterTemplate
    </asp:TemplateColumn
    <asp:TemplateColumn SortExpression="LastName" HeaderText="Last Name"
      <ItemTemplate
        <asp:TextBox id=Last runat="server" Width="109px" Text='<%# DataBinder.Eval(Container, "DataItem.LastName") %'
        </asp:TextBox
      </ItemTemplate
      <FooterTemplate
        <asp:

来源:https://www.tulaoshi.com/n/20160129/1490621.html

延伸阅读
水晶球是用天然水晶柱加工而成的,加工制造过程不易。水晶球素材很精美,但毕竟是素材不能根据自己的需要进行编辑,这点很是遗憾,不打紧,利用PPT中的自选图形可以轻松制作精美并可编辑的水晶球效果。自选图形是指一组现成的形状,包括如矩形和圆这样的基本形状,以及各种线条和连接符、箭头总汇、流程图符号、星与旗帜和标注等。 ①启动Powe...
在制作汇报PPT的时候,需要在PPT中插入Excel报表中的数据或者图表。在将图表复制到PPT当中,有时会发现图表显示不全,或者希望在PPT中插入的图表可以进行编辑,数据可以自动的更新,甚至是数据量非常大,只是希望显示成图表,在演示的时候再打开查看,那该怎么做呢?其实,要想实现并非难事,使用PPT中的插入对象功能便可轻松插入可编辑的EXCEL...
标签: Web开发
如何通过JAVASCRIPT实现当点击相应的单元格,该单元格内文本变成可编辑的INPUT或SELECT,离开单元格后又单元格内文本为修改后文本。 我通过以下方法来实现点击单元格变成INPUT,可不知该在点其它单元格后恢复文本状态和如何返回INPUT后修改的值。是否有更好的方法来实现该效果。 123 456 abc efg 2、 123 456 abc efg
使用DataGrid控件 DataGrid控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示Recordset对象的记录和字段。可以使用DataGrid来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid控件可以在设计时快速进行配置,只需少量代码或无需代码。当在设计时设置了DataGrid控件的DataSource属性后,就会用...
标签: ASP
最近做网站遇到了一个奇怪的问题,在进行DataGrid进行分页时,无法响应 PageIndexChanged 事件 。 我也查阅了很多关于这方面的文章,可是还是没有得到解决方案。 在和别人的探讨中发现了症结所在 首先,我先将代码贴过来: 下面是DataGird控件的HTML代码(不包含字段绑定) <asp:datagrid id="SearchGrid" runat="server" width="10...

经验教程

469

收藏

34
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部