在DataGrid快速添加新行

时间:2010-03-16 17:38:19  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:d footer template来提供一个空的行,这样既可以提高速度,也可以避免其它方法带来的不足。      为了为浏览者提供一个空行,我们使用DataGrid的Footer Template,我们直接在Footer Template里添加文本框,这样可以避免不必要的操作:比如点击“编辑”按钮等。这样也可以减少往复数据提交的次数。我们这里仍然 LinkButton(插入),并设置CommandName属性...
  正文: ASP/ target=_blank class=infotextkey>asp.NET DataGrid为我们提供的内建的记录行编辑功能,但是没有提供内建的添加新行的功能。一个办法就是:在DataTable中添加新行,然后再重新绑定到DataGrid,这个办法可行,但在更新前需要进行确认,可能会产生空行。另外一个解决办法就是:利用DataGrid footer template来提供一个空的行,这样既可以提高速度,也可以避免其它方法带来的不足。
  
  为了为浏览者提供一个空行,我们使用DataGrid的Footer Template,我们直接在Footer Template里添加文本框,这样可以避免不必要的操作:比如点击“编辑”按钮等。这样也可以减少往复数据提交的次数。我们这里仍然 LinkButton(插入),并设置CommandName属性为“Insert”,这个CommandName在DataGrid的 ItemCommand事件中,确保只有用户点击了“Insert”LinkButton才添加记录。添加到数据库的方法是很简单的。
  
  下面的这个例子提供了DataGrid快速添加新行的功能。aspx代码和Cohe Behind代码分别如下,注意更改数据录连接字符串:
  
  查看例子
  
  InsertableDataGrid.aspx
  <%@ Page Language="vb" AutoEventWireup="false" Codebehind="InsertableDataGrid.aspx.vb" Inherits="aspxWeb.InserTableDataGrid"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0"> <meta name="CODE_LANGUAGE" content="Visual Basic 7.0"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <asp:DataGrid id="DataGrid1" runat="server" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4" ShowFooter="True" AutoGenerateColumns="False"> <SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle> <ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle> <HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle> <FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle> <Columns> <asp:TemplateColumn HeaderText="Employee ID"> <ItemTemplate> <asp:Label id=Label3 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.employeeid") %>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:LinkButton id="LinkButton1" runat="server" CommandName="Insert">Insert</asp:LinkButton> </FooterTemplate> <EditItemTemplate> <asp:TextBox id=TextBox5 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.employeeid") %>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="Last Name"> <ItemTemplate> <asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.lastname") %>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox id="TextBox2" runat="server"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox id="TextBox1" runat="server"></asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="First Name"> <ItemTemplate> <asp:Label id=Label2 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.firstname") %>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox id="TextBox4" runat="server"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox id="TextBox3" runat="server"></asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> </Columns> <PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle> </asp:DataGrid> </form> </body> </HTML>
"在DataGrid快速添加新行"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/13251.html


关键字:

关于《在DataGrid快速添加新行》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td