http://blog.csdn.net/zhangyj_315/archive/2009/03/31/4038018.aspx
前台代码如下:
- <%@ Page Language= "C#" AutoEventWireup= "true" CodeFile= "PersonMag2.aspx.cs" Inherits= "PersonMag" %>
- <!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 runat="server" >
- <title>无标题页</title>
- <link rel="STYLESHEET" type= "text/css" href= "css/pagefont.css" mce_href= "css/pagefont.css" >
- </head>
- <body>
- <form id="form1" runat= "server" >
- <div>
- <table width="98%" border= "0" align= "center" cellpadding= "0" cellspacing= "0" >
- <tr>
- <td height: 399px;">
- <fieldset style="width: 98%" >
- <legend class = "MyTitle" >管理档案</legend>
- <br />
- <table width="100%" border= "0" cellspacing= "10" cellpadding= "0" >
- <tr>
- <td>
- <asp:GridView ID="GridView1" runat= "server" CellPadding= "3" AutoGenerateColumns= "False" Width= "100%" AllowPaging= "True" OnPageIndexChanging= "GridView1_PageIndexChanging" DataKeyNames= "user_id" OnRowDataBound= "GridView1_RowDataBound" OnRowDeleting= "GridView1_RowDeleting" HorizontalAlign= "Center" PageSize= "20" BackColor= "White" BorderColor= "#CCCCCC" BorderStyle= "None" BorderWidth= "1px" OnRowUpdating= "GridView1_RowUpdating" OnSelectedIndexChanging= "GridView1_SelectedIndexChanging" >
- <FooterStyle BackColor="White" ForeColor= "#000066" />
- <RowStyle ForeColor="#000066" />
- <SelectedRowStyle BackColor="#669999" Font-Bold= "True" ForeColor= "White" />
- <PagerStyle BackColor="White" ForeColor= "#000066" HorizontalAlign= "Left" />
- <HeaderStyle BackColor="#006699" Font-Bold= "True" ForeColor= "White" />
- <Columns>
- <asp:BoundField DataField="User_name" HeaderText= "姓名" />
- <asp:BoundField DataField="User_dept" HeaderText= "部门" >
- <ItemStyle HorizontalAlign="Center" />
- </asp:BoundField>
- <asp:BoundField DataField="User_position" HeaderText= "职务" >
- <ItemStyle HorizontalAlign="Center" />
- </asp:BoundField>
- <asp:BoundField DataField="user_sex" HeaderText= "性别" >
- <ItemStyle HorizontalAlign="Center" />
- </asp:BoundField>
- <asp:BoundField DataField="user_mobile" HeaderText= "手机" />
- <asp:TemplateField HeaderText="注册日期" >
- <ItemTemplate>
- <%# string .Format( "{0:yyyy}-{0:MM}-{0:dd}" , Eval( "user_AddDate" ))%>
- </ItemTemplate>
- <ItemStyle HorizontalAlign="Center" />
- </asp:TemplateField>
- <asp:HyperLinkField DataNavigateUrlFields="user_id" DataNavigateUrlFormatString= "PersonSee.aspx?id={0}" HeaderText= "查看区" Text= "查看" >
- <ItemStyle HorizontalAlign="Center" />
- </asp:HyperLinkField>
- <asp:HyperLinkField DataNavigateUrlFields="User_id" DataNavigateUrlFormatString= "PersonEdit.aspx?id={0}"
- HeaderText="修改区" Text= "修改" >
- <ItemStyle HorizontalAlign="Center" />
- </asp:HyperLinkField>
- <asp:ButtonField CommandName="Delete" HeaderText= "删除区" ShowHeader= "True" Text= "删除" >
- <ItemStyle HorizontalAlign="Center" />
- </asp:ButtonField>
- <asp:ButtonField CommandName="Update" HeaderText= "还原密码" ShowHeader= "True" Text= "还原密码" >
- <ItemStyle HorizontalAlign="Center" />
- </asp:ButtonField>
- <asp:ButtonField CommandName="Select" HeaderText= "详细资料" ShowHeader= "True" Text= "详细资料..." />
- </Columns>
- </asp:GridView>
- </td>
- <td rowspan="2" width= "40%" ><asp:DetailsView ID= "DetailsView1" runat= "server" Height= "50px"
- Width="80%" BackColor= "White" BorderColor= "#CCCCCC" BorderStyle= "None" BorderWidth= "1px" CellPadding= "3" HeaderText= "详细资料" HorizontalAlign= "Center" AutoGenerateEditButton= "True" DataKeyNames= "user_id" OnItemUpdating= "DetailsView1_ItemUpdating" OnModeChanging= "DetailsView1_ModeChanging" AutoGenerateInsertButton= "True" AutoGenerateRows= "False" AutoGenerateDeleteButton= "True" OnItemDeleting= "DetailsView1_ItemDeleting" OnItemInserting= "DetailsView1_ItemInserting" >
- <FooterStyle BackColor="White" ForeColor= "#000066" />
- <EditRowStyle BackColor="#669999" Font-Bold= "True" ForeColor= "White" />
- <RowStyle ForeColor="#000066" />
- <PagerStyle BackColor="White" ForeColor= "#000066" HorizontalAlign= "Left" />
- <HeaderStyle BackColor="#006699" Font-Bold= "True" ForeColor= "White" />
- <Fields>
- <asp:BoundField DataField="user_id" HeaderText= "ID" />
- <asp:BoundField DataField="user_name" HeaderText= "姓名" />
- <asp:BoundField DataField="user_sex" HeaderText= "性别" />
- </Fields>
- </asp:DetailsView>
- </td>
- </tr>
- <tr>
- <td>
- <asp:Label ID="Label1" runat= "server" Text= "主题数:" ></asp:Label>
- <asp:Label ID="Label2" runat= "server" >Label</asp:Label>
- <asp:Label ID="Label6" runat= "server" Text= "每页共:" ></asp:Label>
- <asp:Label ID="Label3" runat= "server" >Label</asp:Label>
- <asp:LinkButton ID="LinkButton1" runat= "server" OnClick= "LinkButton1_Click1" >首页</asp:LinkButton>
- <asp:LinkButton ID="LinkButton2" runat= "server" OnClick= "LinkButton2_Click1" >上一页</asp:LinkButton>
- <asp:Label ID="Label4" runat= "server" >Label</asp:Label>
- <asp:Label ID="Label7" runat= "server" Text= "/" ></asp:Label>
- <asp:Label ID="Label5" runat= "server" >Label</asp:Label>
- <asp:LinkButton ID="LinkButton3" runat= "server" OnClick= "LinkButton3_Click1" >下一页</asp:LinkButton>
- <asp:LinkButton ID="LinkButton4" runat= "server" OnClick= "LinkButton4_Click1" >未页</asp:LinkButton>
- </td>
- </tr>
- </table>
- <br />
- </fieldset>
- </td>
- </tr>
- </table>
- </div>
- </form>
- </body>
- </html>
后台代码如下:
- 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 System.Data.SqlClient;
- public partial class PersonMag : System.Web.UI.Page
- {
- SqlConnection conn = connsql.ZYJCreateConnection();
- string sqlstr = "" ;
- string user_id = "" ;
- string User_Roles = "" ;
- protected void Page_Load( object sender, EventArgs e)
- {
- CheckPower c = new CheckPower(); //验证是否登陆了
- sqlstr = "select * from UserList order by user_id desc" ;
- if (!IsPostBack)
- {
- //权限设置
- //if (Request.Cookies["user_id"] != null)
- //{
- // user_id = Request.Cookies["user_id"].Value.ToString();
- // User_Roles = Request.Cookies["User_Roles"].Value.ToString().Trim();
- //}
- //if (User_Roles == "3")
- //{
- // GridView1.Columns[7].Visible = false;
- // GridView1.Columns[8].Visible = false;
- // GridView1.Columns[9].Visible = false;
- //}
- //end
- BindGrid(sqlstr);
- }
- }
- private void BindGrid( string sqlstr)
- {
- SqlDataAdapter myCommand = new SqlDataAdapter(sqlstr, conn);
- DataSet ds = new DataSet();
- myCommand.Fill(ds, "Authors" );
- GridView1.DataSource = ds.Tables["Authors" ].DefaultView;
- GridView1.DataBind();
- //显示分面的相关信息
- Label2.Text = ds.Tables[0].Rows.Count.ToString(); //显示总记录数
- GridView1.PageSize = 20; //设置每页记录数
- Label3.Text = GridView1.PageSize.ToString(); //显示每页记录数
- int d;
- d = GridView1.PageIndex + 1;
- Label4.Text = d.ToString(); //显示当前页码
- Label5.Text = GridView1.PageCount.ToString(); //显示总页码
- }
- //GridView控件上自代的页码
- protected void GridView1_PageIndexChanging( object sender, GridViewPageEventArgs e)
- {
- this .GridView1.PageIndex = e.NewPageIndex;
- BindGrid(sqlstr);
- }
- //点击首页
- protected void LinkButton1_Click1( object sender, EventArgs e)
- {
- GridView1.PageIndex = 0;
- BindGrid(sqlstr);
- }
- //点击上一页
- protected void LinkButton2_Click1( object sender, EventArgs e)
- {
- if (GridView1.PageIndex != 0)
- {
- GridView1.PageIndex = GridView1.PageIndex - 1;
- BindGrid(sqlstr);
- }
- }
- //点击下一页
- protected void LinkButton3_Click1( object sender, EventArgs e)
- {
- if (GridView1.PageIndex != GridView1.PageCount - 1)
- {
- GridView1.PageIndex = GridView1.PageIndex + 1;
- BindGrid(sqlstr);
- }
- }
- //点击末页
- protected void LinkButton4_Click1( object sender, EventArgs e)
- {
- GridView1.PageIndex = GridView1.PageCount - 1;
- BindGrid(sqlstr);
- }
- //删除数据
- protected void GridView1_RowDeleting( object sender, GridViewDeleteEventArgs e)
- {
- string sqldel = "delete from UserList where user_id=" + int .Parse(GridView1.DataKeys[e.RowIndex].Value.ToString().Trim());
- SqlCommand myconn = new SqlCommand(sqldel, conn);
- conn.Open();
- myconn.ExecuteNonQuery();
- //lbsql.Text = "<b>已删除记录</b><br>" + sqldel;
- conn.Close();
- BindGrid(sqlstr);
- }
- //GridView实现删除时弹出确认对话框
- protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e)
- {
- //如果是绑定数据行
- if (e.Row.RowType == DataControlRowType.DataRow) //如果行的类别是数据行,就执行
- {
- if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate || e.Row.RowState == DataControlRowState.Selected)
- {
- //((LinkButton)e.Row.Cells[13].Controls[0]).Attributes.Add("onclick", "javascript:return confirm(' 你确认要删除:ID号为/" " + e.Row.Cells[0].Text.ToString().Trim() + " /"的员工档案 吗?')");
- ((LinkButton)e.Row.Cells[8].Controls[0]).Attributes.Add("onclick" , "javascript:return confirm('你确认要删除:姓名为/" " + e.Row.Cells[0].Text.ToString().Trim() + " /"的员工档案吗?')" );
- }
- }
- }
- //还原密码
- protected void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e)
- {
- string sqlUpdate = "update UserList set User_Pwd=@UserPwd Where User_Id='" + int .Parse(GridView1.DataKeys[e.RowIndex].Value.ToString().Trim()) + "'" ;
- SqlCommand MyConn = new SqlCommand(sqlUpdate, conn);
- MyConn.Parameters.Add(new SqlParameter( "@UserPwd" , SqlDbType.VarChar, 500));
- MyConn.Parameters["@UserPwd" ].Value = PwdMd5.md5l( "123456" );
- conn.Open();
- MyConn.ExecuteNonQuery();
- conn.Close();
- Response.Write("<mce:script language='javascript' ><!--
- alert('还原密码成功!!还原密码为123456' );location= 'PersonMag.aspx'
- // --></mce:script>");
- }
- //绑定DetailsView
- private void BindDetails( string sqlstr)
- {
- SqlDataAdapter myCommand = new SqlDataAdapter(sqlstr, conn);
- DataSet ds = new DataSet();
- myCommand.Fill(ds, "Authors" );
- DetailsView1.DataSource = ds.Tables["Authors" ].DefaultView;
- DetailsView1.DataBind();
- }
- //点详细资料...
- protected void GridView1_SelectedIndexChanging( object sender, GridViewSelectEventArgs e)
- {
- string sqlstr = "select * from UserList where user_id=" + int .Parse(GridView1.DataKeys[e.NewSelectedIndex].Value.ToString().Trim());
- BindDetails(sqlstr);
- }
- //不同状态
- protected void DetailsView1_ModeChanging( object sender, DetailsViewModeEventArgs e)
- {
- //点编辑
- if (e.NewMode == DetailsViewMode.Edit)
- {
- DetailsView1.ChangeMode(DetailsViewMode.Edit);
- string sqlstr = "select * from UserList where user_id=" + int .Parse(DetailsView1.DataKey.Value.ToString().Trim());
- BindDetails(sqlstr);
- }
- //点新建
- if (e.NewMode == DetailsViewMode.Insert)
- {
- DetailsView1.ChangeMode(DetailsViewMode.Insert);
- }
- //点取消
- if (e.NewMode == DetailsViewMode.ReadOnly)
- {
- string sqlstr = "" ;
- DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);
- if (DetailsView1.DataKey.Value != null )
- {
- sqlstr = "select * from UserList where user_id=" + int .Parse(DetailsView1.DataKey.Value.ToString().Trim());
- }
- else
- {
- sqlstr = "select * from UserList where 1<>1" ;
- }
- BindDetails(sqlstr);
- }
- }
- //点更新
- protected void DetailsView1_ItemUpdating( object sender, DetailsViewUpdateEventArgs e)
- {
- //string Dept_name = Convert.ToString(((TextBox)this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString().Trim());
- string name = ((TextBox) this .DetailsView1.Rows[1].Cells[1].Controls[0]).Text.ToString().Trim();
- string sex = ((TextBox) this .DetailsView1.Rows[2].Cells[1].Controls[0]).Text.ToString().Trim();
- string updateCmd = "update UserList set user_name='" + name + "', user_sex='" + sex + "' where user_ID=" + int .Parse(DetailsView1.DataKey.Value.ToString().Trim());
- SqlCommand myCmd = new SqlCommand(updateCmd, conn);
- conn.Open();
- myCmd.ExecuteNonQuery();
- conn.Close();
- DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);
- string sqlstr = "select * from UserList where user_id=" + int .Parse(DetailsView1.DataKey.Value.ToString().Trim()); //变为只读
- BindDetails(sqlstr);
- BindGrid("select * from UserList order by user_id desc" ); //更新gridview
- }
- //点插入
- protected void DetailsView1_ItemInserting( object sender, DetailsViewInsertEventArgs e)
- {
- string insertCmd = "INSERT INTO [UserList]( [user_name], [user_pwd],[user_dept], [user_position], [user_sex], [user_birthday], [user_idcard], [user_tel], [user_mobile], [user_qq], [user_msn], [user_mail], [user_address], [user_post], [user_adddate], [user_num], [user_roles])"
- + "VALUES(@user_name,@user_pwd,@user_dept,@user_position,@user_sex,@user_birthday,@user_idcard,@user_tel,@user_mobile,@user_qq,@user_msn,@user_mail,@user_address,@user_post,@user_adddate,1,'3')" ;
- SqlCommand myCommand = new SqlCommand(insertCmd, conn);
- myCommand.Parameters.Add(new SqlParameter( "@user_name" , SqlDbType.NVarChar, 10));
- myCommand.Parameters["@user_name" ].Value = ((TextBox) this .DetailsView1.Rows[1].Cells[1].Controls[0]).Text.ToString().Trim();
- myCommand.Parameters.Add(new SqlParameter( "@user_pwd" , SqlDbType.NVarChar, 50));
- myCommand.Parameters["@user_pwd" ].Value = FormsAuthentication.HashPasswordForStoringInConfigFile( "123456" , "MD5" );
- myCommand.Parameters.Add(new SqlParameter( "@user_dept" , SqlDbType.NVarChar, 10));
- myCommand.Parameters["@user_dept" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_position" , SqlDbType.NVarChar, 10));
- myCommand.Parameters["@user_position" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_sex" , SqlDbType.NVarChar, 10));
- myCommand.Parameters["@user_sex" ].Value = ((TextBox) this .DetailsView1.Rows[2].Cells[1].Controls[0]).Text.ToString().Trim();
- myCommand.Parameters.Add(new SqlParameter( "@user_birthday" , SqlDbType.NVarChar, 20));
- myCommand.Parameters["@user_birthday" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_idcard" , SqlDbType.NVarChar, 20));
- myCommand.Parameters["@user_idcard" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_tel" , SqlDbType.NVarChar, 20));
- myCommand.Parameters["@user_tel" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_mobile" , SqlDbType.NVarChar, 20));
- myCommand.Parameters["@user_mobile" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_qq" , SqlDbType.NVarChar, 20));
- myCommand.Parameters["@user_qq" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_msn" , SqlDbType.NVarChar, 50));
- myCommand.Parameters["@user_msn" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_mail" , SqlDbType.NVarChar, 50));
- myCommand.Parameters["@user_mail" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_address" , SqlDbType.NVarChar, 50));
- myCommand.Parameters["@user_address" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_post" , SqlDbType.NVarChar, 10));
- myCommand.Parameters["@user_post" ].Value = "" ;
- myCommand.Parameters.Add(new SqlParameter( "@user_adddate" , SqlDbType.DateTime, 8));
- myCommand.Parameters["@user_adddate" ].Value = DateTime.Now.ToString(); //显示详细的日期和时间
- conn.Open();
- myCommand.ExecuteNonQuery();
- conn.Close();
- //DetailsView1.ChangeMode(DetailsViewMode.ReadOnly); 注释后可以进行连续插入
- string sqlstr = "select * from UserList where 1<>1" ;
- BindDetails(sqlstr);
- BindGrid("select * from UserList order by user_id desc" ); //更新gridview
- }
- //点删除
- protected void DetailsView1_ItemDeleting( object sender, DetailsViewDeleteEventArgs e)
- {
- string sqldel = "delete from UserList where user_id=" + int .Parse(DetailsView1.DataKey.Value.ToString().Trim());
- SqlCommand myconn = new SqlCommand(sqldel, conn);
- conn.Open();
- myconn.ExecuteNonQuery();
- conn.Close();
- DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);
- string sqlstr = "select * from UserList where 1<>1" ;
- BindDetails(sqlstr);
- BindGrid("select * from UserList order by user_id desc" ); //更新gridview
- }
- }