GridView控件

 

GridView控件用来在表中显示数据源中的值.. GridView控件可用于任何重复的结构中的数据.
控件支持以下功能:
1:可绑定数据源控件;
2:内置排序功能;
3:内置更新和删除功能;
4:内置行选择功能;
5:用于超链接列的多个数据字段;
6:可通过主题和样式进行自定义外观;
首先创建数据实体层MessageType
 
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
 
namespace JingXin.Model
{
    public class MessageType
    {
        private int _M_Id;
 
        public int M_Id
        {
            get { return _M_Id; }
            set { _M_Id = value; }
        }
 
        private string _M_Name;
 
        public string M_Name
        {
            get { return _M_Name; }
            set { _M_Name = value; }
        }
 
    }
}
创建数据库连接: help
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
 
namespace JingXin.DAL
{
    public class Help
    {
        private SqlConnection conn = null;
        private SqlCommand com = null;
        private string sqlconnection = "Data Source=.;Initial Catalog=JingXin;User ID=sa;Password=sa";
 
        public Help()
        {
            conn = new SqlConnection(sqlconnection);
            com = new SqlCommand ();
             com.Connection = conn;
        }
 
        public int ExeNo(string sql, System.Data.CommandType ct)
        {
            int fh;
            com.CommandText = sql;
            com.CommandType = ct;
            conn.Open();
            fh = com.ExecuteNonQuery();
            conn.Close();
            return fh;
        }
 
        public System.Data.DataTable ExeTable(string sql,CommandType ct)
        {
            System.Data.DataTable dt = new System.Data.DataTable();
            com.CommandText = sql;
            com.CommandType = ct;
            SqlDataAdapter oda = new SqlDataAdapter(com);
            oda.Fill(dt);
            return dt;
        }
 
    }
}
 
创建方法类MessageTypeDAL
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
 
namespace JingXin.DAL
{
    public class MessageTypeDAL:Help
    {
        private Model.MessageType Mt;
        public MessageTypeDAL()
        { }
        public MessageTypeDAL(Model.MessageType mt)
        {
            this.Mt = mt;
        }
 
        public int Update()
        {
            string sql = " UPDATE [MessageType] SET M_Name='" + Mt.M_Name + "' WHERE M_Id = " + Mt.M_Id + " ";
            return ExeNo(sql, CommandType.Text);
        }
 
        public int Delete()
        {
            string sql = " DELETE FROM [MessageType] WHERE M_Id = " + Mt.M_Id + " ";
            return ExeNo(sql, CommandType.Text);
        }
 
        public DataTable Select()
        {
            string sql = " SELECT * FROM [MessageType] ";
            return ExeTable(sql, CommandType.Text);
        }
 
       
    }
}
创建页面
MessageTypeManage.aspx
从工具中数据拖取GridView控件

 

 

 

 

在GridView中实现显示数据
1、编辑GridView的页眉模板
2、编辑GridView的项模板(itemtemplete)
3、写方法,在一个类中将要显示的数据库表中所有数据
   添加到内存的一个DataTable里
4、在页面的load事件里加载数据,注意需要设置GridView的datasource属性和调用GridView的databind()方法
5、在itemtemplete中将数据库表中的字段绑定到指定的label上去,注意绑定的方法,调用Eval()
 
在GridView中实现删除数据
1、在项模板中添加一列,放入linkbutton,并且将该linkButton的CommandName属性设置为delete
2、调用GridView的DeleteCommand事件,在该事件中实现删除
3、通过事件的参数e来获取选中行的索引值,根据该索引值在GridView中findControl你指定的控件
4、去数据库删除(即调用删除方法),刷新本页面
 
在GridView中实现编辑
1、编辑editItemTemplete,注意主键列不能使用textBox
2、将页面编辑按钮的CommandName属性设置为edit
3、在GridView的EditCommand事件中将当前选中行赋值给GridView的EditItemIndex属性
4、刷新本页面
 
在GridView中实现更新
1、将编辑模板的更新按钮的CommandName属性设置为update
2、写更新的方法
3、在GridView的UpdateCommand事件中获取编辑模板中各个项的具体值,然后调用方法修改数据库
4、将当前编辑项的索引值改为-1,刷新本页面
 
完成后页面代码:

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MessageTypeManage.aspx.cs" Inherits="JingXin.Admin.MessageTypeManage" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>分类管理</title>
    <link rel="stylesheet" href="inc/css.css" type="text/css" />
</head>
<body>
    <center>
        <form id="form1" runat="server">
        <div style="width:100%;">
           
            <table width="100%" border=0 align=center cellpadding=2 cellspacing=1 bordercolor="#799AE1" class=tableBorder>
                <tbody>
                      <tr>
                        <th align=center colspan=16 style="height: 23px">分类管理
                        </th>
                      </tr>
                      <tr bgcolor="#DEE5FA">
                        <td colspan="16" align="center" class=txlrow>&nbsp;</td>
                      </tr>
                </tbody>
            </table>
        </div>
        <asp:GridView ID="GridView1" Width="100%" runat="server"
                    AutoGenerateColumns="False" AllowPaging="True" BackColor="White"
                    BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" CellPadding="4"
                    PageSize="5" GridLines="Vertical"
                    onpageindexchanging="GridView1_PageIndexChanging"
                    onrowcancelingedit="GridView1_RowCancelingEdit"
                    onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"
                    onrowupdating="GridView1_RowUpdating">
                <RowStyle BackColor="White" ForeColor="#003399" />
                <Columns>
                    <asp:TemplateField HeaderText="编号">
                        <ItemTemplate>
                            <%# Eval("M_Id")%>
                            <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("M_Id") %>' />
                        </ItemTemplate>
                        <HeaderStyle BackColor="#799AE1" />
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="分类名">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("M_Name") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <%# Eval("M_Name")%>
                        </ItemTemplate>
                        <HeaderStyle BackColor="#799AE1" />
                    </asp:TemplateField>
                    <asp:CommandField ShowEditButton="True" >
                        <HeaderStyle BackColor="#799AE1" />
                    </asp:CommandField>
                    <asp:CommandField ShowDeleteButton="True" >
                        <HeaderStyle BackColor="#799AE1" />
                    </asp:CommandField>
                </Columns>
                <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
                <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
                <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
                <HeaderStyle HorizontalAlign="Center"
                    VerticalAlign="Middle" />
            </asp:GridView>
        <hr color="blue" />
        <div style="width:100%">
        </div>
        </form>
    </center>
</body>
</html>

 

后台代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
 
namespace JingXin.Admin
{
    public partial class MessageTypeManage : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Data_Bind();
            }
        }
        protected void Data_Bind()
        {
            DAL.MessageTypeDAL mt = new JingXin.DAL.MessageTypeDAL();
            GridView1.DataSource = mt.Select();
            GridView1.DataBind();
        }
 
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            Data_Bind();
        }
 
        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            Data_Bind();
        }
 
        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            Data_Bind();
        }
 
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            String id = (((HiddenField)GridView1.Rows[e.RowIndex].FindControl("HiddenField1")).Value);
            string mname = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1")).Text;
            DAL.MessageTypeDAL MT = new JingXin.DAL.MessageTypeDAL(new Model.MessageType() { M_Id = int.Parse(id), M_Name = mname });
            MT.Update();
            GridView1.EditIndex = -1;
            Data_Bind();
        }
 
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            String id = (((HiddenField)GridView1.Rows[e.RowIndex].FindControl("HiddenField1")).Value);
            DAL.MessageTypeDAL MT = new JingXin.DAL.MessageTypeDAL(new Model.MessageType() { M_Id = int.Parse(id) });
            MT.Delete();
            Data_Bind();
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值