<%@ 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
}
}