GridView的实现分为三个层面,一个是前端层面,一个是表的层面,最后一个是逻辑处理层。
一、前端实现(一个新增按钮、一个GridView、一个ObjectDataScoure数据源)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication4.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="ObjectDataSource1" style="margin-top: 17px; margin-bottom: 44px">
<Columns>
<asp:TemplateField ShowHeader="False">
<EditItemTemplate>
<asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="True"
CommandName="Update" Text="更新"></asp:LinkButton>
<asp:LinkButton ID="LinkButton4" runat="server" CausesValidation="False"
CommandName="Cancel" Text="取消"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
CommandName="Edit" Text="编辑" ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Delete" Text="删除" OnClientClick="return confirm('确认删除吗?');"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<FooterTemplate>
<asp:LinkButton ID="lnkbtnOk" runat="server" CommandName="Insert"
οnclick="lnkbtnOk_Click" >保存</asp:LinkButton>
<asp:LinkButton ID="lnkbtnCancel" runat="server"
οnclick="lnkbtnCancel_Click" >取消</asp:LinkButton>
</FooterTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" />
<asp:TemplateField HeaderText="teachername" SortExpression="teachername">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("teachername") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("teachername") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtName" runat="server" Width="70px"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gender" SortExpression="gender">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("gender") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("gender") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtgender" runat="server" Width="70px"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="country" SortExpression="country">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("country") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("country") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtcountry" runat="server" Width="70px"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="native" SortExpression="native">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("native") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("native") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtnative" runat="server" Width="70px"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<%-- <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />--%>
<%-- <asp:BoundField DataField="teachername" HeaderText="teachername" SortExpression="teachername" />
<asp:BoundField DataField="gender" HeaderText="gender" SortExpression="gender" />
<asp:BoundField DataField="country" HeaderText="country" SortExpression="country" />
<asp:BoundField DataField="native" HeaderText="native" SortExpression="native" />--%>
<asp:BoundField DataField="teachermumber" HeaderText="teachermumber" SortExpression="teachermumber" />
</Columns>
</asp:GridView>
<asp:Button ID="Button1" runat="server" OnClick="lnkbtnInsert_Click" Text="新增" />
<br />
<br />
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="DeletetTeacher" InsertMethod="AddTeacher" SelectMethod="Getteachers" TypeName="WebApplication4.bll.teacherbll" UpdateMethod="UpdateTeacher" OnSelecting="ObjectDataSource1_Selecting">
<DeleteParameters>
<asp:Parameter Name="ID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="teachername" Type="String" />
<asp:Parameter Name="gender" Type="String" />
<asp:Parameter Name="country" Type="String" />
<asp:Parameter Name="native" Type="String" />
<asp:Parameter Name="teachermumber" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="teachername" Type="String" />
<asp:Parameter Name="gender" Type="String" />
<asp:Parameter Name="country" Type="String" />
<asp:Parameter Name="native" Type="String" />
<asp:Parameter Name="teachermumber" Type="String" />
</UpdateParameters>
</asp:ObjectDataSource>
</div>
<br />
<br />
<br />
</form>
</body>
</html>
实现效果
二数据逻辑处理层
一、 新建一个文件夹命名为bll
二、添加一个类,作为数据逻辑处理层命名为teacherbll
代码实现:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WebApplication4.DataSet1TableAdapters;
namespace WebApplication4.bll
{
public class teacherbll
{
private teacherTableAdapter teacher=null;
/// <summary>
/// 私有化对象
/// </summary>
public teacherTableAdapter adapter
{
get
{
if (teacher == null)
teacher = new teacherTableAdapter();
return teacher;
}
}
/// <summary>
/// 设计访问器
/// </summary>
/// <returns></returns>
[System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select, true)]
public DataSet1.teacherDataTable Getteachers()
{
return adapter.GetData();
}
[System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Insert, true)]
public bool AddTeacher(string teachername, string gender, string country, string native, string teachermumber)
{
DataSet1.teacherDataTable teachers = new DataSet1.teacherDataTable();//实例化一个数据集
DataSet1.teacherRow teacher = teachers.NewteacherRow();//新增数据集的行对象
if (teachername == null)//判断值是否为空
{
teacher.SetteachernameNull();
}
else teacher.teachername = teachername;
if (gender == null)
teacher.SetgenderNull();
else teacher.gender = gender;
if (country == null)
teacher.SetcountryNull();
else teacher.country = country;
if (native == null)
teacher.SetnativeNull();
else teacher.native = native;
if (teachermumber == null)
teacher.SetteachermumberNull();
else teacher.teachermumber = teachermumber;
teachers.AddteacherRow(teacher);//把数据集的新增行添加到表中
int rows = adapter.Update(teachers);//更新数据库中的表
return rows==1;
}
[System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select,true)]
public DataSet1.teacherDataTable GetTeacherByID(int ID)
{
return adapter.GetDataBy(ID);
}
/// <summary>
/// 更新的操作
/// </summary>
/// <param name="ID"></param>
/// <param name="teachername"></param>
/// <param name="gender"></param>
/// <param name="country"></param>
/// <param name="native"></param>
/// <param name="teachermumber"></param>
/// <returns></returns>
[System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Update, true)]
public bool UpdateTeacher(int ID, string teachername, string gender, string country, string native, string teachermumber)
{
DataSet1.teacherDataTable teachers = adapter.GetDataBy(ID);
DataSet1.teacherRow teacher = teachers[0];
if (teachername == null) teacher.SetteachernameNull();
else teacher.teachername = teachername;
if (gender == null) teacher.SetgenderNull();
else teacher.gender = gender;
if (country == null) teacher.SetcountryNull();
else teacher.country = country;
if (native == null) teacher.SetnativeNull();
else teacher.native = native;
if (teachermumber == null) teacher.SetteachermumberNull();
else teacher.teachermumber = teachermumber;
int rows = adapter.Update(teacher);
return rows == 1;
}
/// <summary>
/// 删除的操作
/// </summary>
/// <param name="ID"></param>
/// <returns></returns>
[System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Delete, true)]
public bool DeletetTeacher(int ID)
{
int rows = adapter.Delete(ID);
return rows == 1;
}
}
}
三、表层
一、添加数据-->新建项-->数据集DataSet1.xsd
二、从与数据库进行的连接中选择自己所要处理的表,拖到DataSet1.xsd的页面来
三、在表的页面新建select查询(这里为了方便以ID为查询条件)
四、提醒
别忘了把数据源与控件绑定起来!
实现效果