用Table实现GridView控件功能,很多时候大家都是用微软提供的控件,但有时候需要自己写的时候又不知道从哪里写起,这里讲的是用最简单的控件实现微软自带的强大控件功能,当然这里的需求并不是复杂的!
前台代码:
- <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="service.aspx.cs" Inherits="service" Title="Untitled Page" %>
- <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
- <table style="width: 100%">
- <tr>
- <td style="text-align: right">
- 員工姓名:<asp:TextBox ID="tb_name" runat="server"></asp:TextBox></td>
- <td style="text-align: right">
- 身份證號:<asp:TextBox ID="tb_idcard" runat="server"></asp:TextBox></td>
- <td>
- <asp:Button ID="BT_Add" runat="server" OnClick="BT_Add_Click" Text="增加" /></td>
- </tr>
- <tr>
- <td colspan="3">
- <asp:Table ID="Table1" runat="server" style="text-align: left" BackColor="#C0C0FF" BorderColor="Black" BorderStyle="None" GridLines="Horizontal" Width="100%">
- </asp:Table>
- </td>
- </tr>
- <tr>
- <td colspan="3" style="text-align: right;">
- <asp:Button ID="bt_one" runat="server" Text="第一页" OnClick="bt_one_Click" />
- <asp:Button ID="bt_up" runat="server" Text="上一页" OnClick="bt_up_Click" />
- <asp:Button ID="bt_next" runat="server" Text="下一页" OnClick="bt_next_Click" />
- <asp:Button ID="bt_last" runat="server" Text="最后页" />
- 共
- <asp:Label ID="lb_count" runat="server" Text="" style="font-weight: bold; color: #0000ff; text-decoration: none"></asp:Label> 页
- </td>
- </tr>
- </table>
- <input id="h_pg" type="hidden" runat="server" />
- <input id="hf1" type="hidden" runat="server" />
- </asp:Content>
后台代码:
- using System;
- using System.Data;
- using System.Configuration;
- using System.Collections;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using Test.Model;
- using Test.Bll;
- public partial class service : System.Web.UI.Page
- {
- Test.Bll.Service bs = new Test.Bll.Service();
- Test.Model.Service model = new Test.Model.Service();
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- hf1.Value = "0";
- h_pg.Value = "0";
- }
- //得到数据总数
- DataTable dtc = bs.Getcount().Tables[0];
- string pgnum = dtc.Rows[0][0].ToString();
- //计算一共有多少页
- lb_count.Text = Convert.ToString(Convert.ToInt32(pgnum) / 10);
- #region 下一页
- if (Convert.ToInt32(h_pg.Value) < Convert.ToInt32(pgnum) / 10-1)
- {
- bt_next.Attributes.Add("onclick", "document.getElementById('" + this.h_pg.ClientID + "').value=" + Convert.ToString(Convert.ToInt32(h_pg.Value) + 1) + ";");
- }
- else
- {
- bt_next.Attributes.Add("onclick", "alert('已经是最后一页了!'); return;");
- }
- #endregion
- #region 上一页
- if (Convert.ToInt32(h_pg.Value) <= Convert.ToInt32(pgnum) / 10 && Convert.ToInt32(h_pg.Value) != 0)
- {
- bt_up.Attributes.Add("onclick", "document.getElementById('" + this.h_pg.ClientID + "').value=" + Convert.ToString(Convert.ToInt32(h_pg.Value) - 1) + ";");
- }
- else
- {
- bt_up.Attributes.Add("onclick", "alert('已经是第一页了!'); return;");
- }
- #endregion
- #region 第一页
- bt_one.Attributes.Add("onclick", "document.getElementById('" + this.h_pg.ClientID + "').value=0;");
- #endregion
- #region 最后一页
- bt_last.Attributes.Add("onclick", "document.getElementById('" + this.h_pg.ClientID + "').value=" + Convert.ToString((Convert.ToInt32(pgnum) / 10-1)));
- #endregion
- #region 填充数据到Table1中,并实现编辑,保存,取消编辑,删除功能
- Table1.Controls.Clear();
- string hf = hf1.Value;
- int pg = Convert.ToInt32(h_pg.Value);
- DataTable dt = bs.Getpagelist(pg).Tables[0];
- TableRow tr;
- TableCell td;
- Label lb;
- TextBox txt;
- TableHeaderRow thr;
- thr = new TableHeaderRow();
- TableHeaderCell thd;
- thd = new TableHeaderCell();
- thd.Text = "員工編號";
- thr.Cells.Add(thd);
- thd = new TableHeaderCell();
- thd.Text = "員工姓名";
- thr.Cells.Add(thd);
- thd = new TableHeaderCell();
- thd.Text = "身份證號";
- thr.Cells.Add(thd);
- thd = new TableHeaderCell();
- thd.Text = "操 作";
- thr.Cells.Add(thd);
- Table1.Controls.Add(thr);
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- tr = new TableRow();
- td = new TableCell();
- lb = new Label();
- txt = new TextBox();
- if (hf == "0")
- {
- lb.Visible = true;
- txt.Visible = false;
- }
- else
- {
- lb.Visible = false;
- txt.Visible = true;
- }
- lb.Text = dt.Rows[i][0].ToString();
- td.Controls.Add(lb);
- txt.Text = dt.Rows[i][0].ToString();
- txt.ReadOnly = true;
- txt.ID = "txt" + dt.Rows[i][0].ToString() + "_" + "0";
- td.Controls.Add(txt);
- tr.Cells.Add(td);
- td = new TableCell();
- lb = new Label();
- txt = new TextBox();
- if (hf == "0")
- {
- lb.Visible = true;
- txt.Visible = false;
- }
- else
- {
- lb.Visible = false;
- txt.Visible = true;
- }
- lb.Text = dt.Rows[i][1].ToString();
- td.Controls.Add(lb);
- txt.Text = dt.Rows[i][1].ToString();
- txt.ID = "txt" + dt.Rows[i][0].ToString() + "_" + "1";
- td.Controls.Add(txt);
- tr.Cells.Add(td);
- td = new TableCell();
- lb = new Label();
- txt = new TextBox();
- if (hf == "0")
- {
- lb.Visible = true;
- txt.Visible = false;
- }
- else
- {
- lb.Visible = false;
- txt.Visible = true;
- }
- lb.Text = dt.Rows[i][2].ToString();
- td.Controls.Add(lb);
- txt.Text = dt.Rows[i][2].ToString();
- txt.ID = "txt" + dt.Rows[i][0].ToString() + "_" + "2";
- td.Controls.Add(txt);
- tr.Cells.Add(td);
- td = new TableCell();
- Button bt;
- Button btq;
- Button bts;
- bt = new Button();
- bt.Text = "编辑";
- bt.Attributes.Add("onclick", "document.getElementById('" + this.hf1.ClientID + "').value=1;");
- bt.Click += new EventHandler(bt_Click);
- bts = new Button();
- btq = new Button();
- bts.Text = "保存";
- btq.Text = "取消";
- bts.Attributes.Add("onclick", "document.getElementById('" + this.hf1.ClientID + "').value=0;");
- btq.Attributes.Add("onclick", "document.getElementById('" + this.hf1.ClientID + "').value=0;");
- bts.ID = dt.Rows[i][0].ToString();
- bts.Click += new EventHandler(bts_Click);
- if (hf == "0")
- {
- bt.Visible = true;
- bts.Visible = false;
- btq.Visible = false;
- }
- else
- {
- bt.Visible = false;
- bts.Visible = true;
- btq.Visible = true;
- }
- td.Controls.Add(bt);
- td.Controls.Add(bts);
- td.Controls.Add(btq);
- tr.Cells.Add(td);
- Button btd = new Button();
- btd.Text = "删除";
- btd.ID = "btd" + dt.Rows[i][0].ToString();
- btd.Click += new EventHandler(btd_Click);
- td.Controls.Add(btd);
- if (hf == "0")
- {
- btd.Visible = true;
- }
- else
- {
- btd.Visible = false;
- }
- Table1.Controls.Add(tr);
- }
- #endregion
- }
- /// <summary>
- /// 删除
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- void btd_Click(object sender, EventArgs e)
- {
- string id = ((Button)sender).ID;
- string sql = id.Replace("btd", "");
- model.serviceid = Convert.ToInt32(sql);
- int q = bs.Delete(model);
- if (q > 0)
- {
- Response.Write("<script>alert('删除成功!');</script>");
- }
- else
- {
- Response.Write("<script>alert('删除失败!');</script>");
- }
- Page_Load(sender, e);
- }
- void bt_Click(object sender, EventArgs e)
- {
- Page_Load(sender, e);
- }
- /// <summary>
- /// 保存
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- void bts_Click(object sender, EventArgs e)
- {
- string id = ((Button)sender).ID;
- string sql = id.Replace("bts", "");
- model.serviceid = Convert.ToInt32(sql);
- TextBox tb1 = ((TextBox)Table1.FindControl("txt" + sql + "_1"));
- TextBox tb2 = ((TextBox)Table1.FindControl("txt" + sql + "_2"));
- model.name = tb1.Text;
- model.idcard =tb2.Text;
- int q = bs.Update(model);
- if (q > 0)
- {
- Response.Write("<script>alert('修改成功!');</script>");
- }
- else
- {
- Response.Write("<script>alert('修改失败!');</script>");
- }
- Page_Load(sender, e);
- }
- #region 添加数据
- /// <summary>
- /// 增加
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void BT_Add_Click(object sender, EventArgs e)
- {
- model.name = tb_name.Text;
- model.idcard = tb_idcard.Text;
- int q = bs.Add(model);
- if (q > 0)
- {
- Response.Write("<script>alert('添加成功!');</script>");
- tb_name.Text = "";
- tb_idcard.Text = "";
- }
- else
- {
- Response.Write("<script>alert('添加失败!');</script>");
- }
- Page_Load(sender, e);
- }
- #endregion
- /// <summary>
- /// 下一页
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void bt_next_Click(object sender, EventArgs e)
- {
- }
- /// <summary>
- /// 上一页
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void bt_up_Click(object sender, EventArgs e)
- {
- }
- /// <summary>
- /// 第一页
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void bt_one_Click(object sender, EventArgs e)
- {
- }
- }
效果图