asp.net(gridview的使用)

一、分页

前台代码

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging"
            PageSize="3" OnDataBound="GridView1_DataBound">
            <PagerSettings Mode="NextPrevious" NextPageText="下一页&gt;&gt;" PreviousPageText="&lt;&lt;上一页" />
        </asp:GridView>
        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
        &nbsp;
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
        <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
        <asp:GridView ID="GridView2" runat="server">

后台代码

protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack) bindgrid();
        }
        void bindgrid()
        {
            //查询student数据库获取结果集ds
            string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            DataSet ds = new DataSet();
            using (SqlConnection sqlconn = new SqlConnection(sqlconnstr))
            {
                SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconn);
                sqld.Fill(ds, "tabstudent");
            }
            //以数据集中名为tabstudent的DataTable作为数据源,为控件绑定数据
            GridView1.DataSource = ds.Tables["tabstudent"].DefaultView;
            GridView1.DataBind();
        }

              protected void GridView1_DataBound(object sender, EventArgs e)
        {
            //分页数据绑定前设置当前页信息
            Label2.Text = "共" + (GridView1.PageCount).ToString() + "页";
            Label1.Text = "第" + (GridView1.PageIndex + 1).ToString() + "页";
            Label3.Text = string.Format("总页数:{0},当前页:{1}", GridView1.PageCount, GridView1.PageIndex + 1);
        }

     
              protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
              {
                  //设置要显示的页的索引并重新绑定数据
                  GridView1.PageIndex = e.NewPageIndex;
                  bindgrid();
              }

效果图
在这里插入图片描述

二、编辑和删除

前台代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridViewBingding_2.aspx.cs" Inherits="WebSite9.GridViewBingding_2" %>

<!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" AutoGenerateColumns="False" OnRowCancelingEdit="GridView1_RowCancelingEdit"
            OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" 
            DataKeyNames="NO" OnRowDeleting="GridView1_RowDeleting" Height="185px" 
            Width="536px" AllowSorting="True">
            <Columns>
                <asp:BoundField DataField="No" HeaderText="NO" ReadOnly="True" SortExpression="NO" />
                <asp:BoundField DataField="Name" HeaderText="Name" />
                <asp:BoundField DataField="Sex" HeaderText="Sex" />
                <asp:BoundField DataField="birthday" HeaderText="birthday" />
                <asp:BoundField DataField="address" HeaderText="adress" />
                <asp:TemplateField HeaderText="图片">
                    <ItemTemplate> 
                        <asp:Image ID="Image1" runat="server"  Height="80px" Width="80px"  
                        ImageUrl='<%# "../images/"+ Eval("Photo")
                                   %>'/> 
                     </ItemTemplate>
                </asp:TemplateField>
                <asp:CommandField ShowEditButton="True" />
            </Columns>
            <EmptyDataTemplate>
                学号
            </EmptyDataTemplate>
        </asp:GridView>
   </div>
    </form>
</body>
</html>

后台代码

protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack) bindgrid();
        }
        void bindgrid()
        {
            string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ;
            DataSet ds = new DataSet();
            using (SqlConnection sqlconn = new SqlConnection(sqlconnstr))
            {
                SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconn);
                sqld.Fill(ds, "tabstudent");
            }
            //判断是否已经进行排序,如果是则按照ViewState中存储的信息生成排序后的DataView对象
            if (ViewState["SortDirection"] == null)
                GridView1.DataSource = ds.Tables["tabstudent"].DefaultView;
            else
            {
                DataView SortedDV = new DataView(ds.Tables["tabstudent"]);
                SortedDV.Sort = ViewState["SortExpression"].ToString() + " " + ViewState["SortDirection"].ToString();
                GridView1.DataSource = SortedDV;
            }
            GridView1.DataBind();
        }

        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            bindgrid();
        }
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ;
            SqlConnection sqlconn = new SqlConnection(sqlconnstr);
            //提交行修改
            sqlconn.Open();
            SqlCommand Comm = new SqlCommand();
            Comm.Connection = sqlconn;
            Comm.CommandText = "update student set Name=@Name,birthday=@birthday,address=@address where No=@No";
            Comm.Parameters.AddWithValue("@No", GridView1.DataKeys[e.RowIndex].Value.ToString());
            Comm.Parameters.AddWithValue("@Name", ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text);
            Comm.Parameters.AddWithValue("@birthday", ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text);
            Comm.Parameters.AddWithValue("@address", ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text);
            Comm.ExecuteNonQuery();
            sqlconn.Close();
            sqlconn = null;
            Comm = null;
            GridView1.EditIndex = -1;
            bindgrid();
        }
        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            bindgrid();
        }
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            //设置数据库连接
            string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ;
            SqlConnection sqlconn = new SqlConnection(sqlconnstr);
            sqlconn.Open();
            //删除行处理
            String sql = "delete from student where No='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
            SqlCommand Comm = new SqlCommand(sql, sqlconn);
            Comm.ExecuteNonQuery();
            sqlconn.Close();
            sqlconn = null;
            Comm = null;
            GridView1.EditIndex = -1;
            bindgrid();
        }
        protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
        {
            if (ViewState["SortDirection"] == null) ViewState["SortDirection"] = "DESC";
            if (ViewState["SortDirection"].ToString() == "ASC")
                ViewState["SortDirection"] = "DESC";
            else
                ViewState["SortDirection"] = "ASC";
            ViewState["SortExpression"] = e.SortExpression;
            this.DataBind();
        }	

效果图
在这里插入图片描述

发布了34 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_38420342/article/details/84258210