1.repeater实现样式设置,并添加删除按钮,参考课上老师做的案例。
2.数据表添加字段status,使用repeater实现禁用与启用。
3.repeater添加编辑按钮,和Edit.aspx页面。实现编辑操作。
----------------------------前台:---删除按钮---编辑按钮---禁用与启用按钮--------------------------
<head runat="server">
<title></title>
<style type="text/css">
.center
{
text-align: center;
}
.big_img img
{
border:1px solid #ccc;
width:100px;
height:100px;
}
.big_img:hover img
{
height:200px;
width:200px;
display:inline;
border:1px solid navy;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="Repeater1" runat="server"
Xonitemcommand="Repeater1_ItemCommand">
<HeaderTemplate>
<table border="0" width="100%"><tr><th>姓名</th><th>性别</th><th>年龄</th><th>照片</th><th>操作</th></tr>
</HeaderTemplate>
<ItemTemplate>
<tr class="center">
<td><%#Eval("sname") %></td>
<td><%#Eval("sex") %></td>
<td><%#Eval("age") %></td>
<div style="display: inline; position: relative;">
<td class="big_img"><a href="#"><img src='images/<%#Eval("photo") %>' /></a></td>
</div>
<td>
<asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandName="delete" CommandArgument='<%#Eval("sid") %>'>删除</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="btnEdit" runat="server" Text="编辑" CommandName="edit" CommandArgument='<%#Eval("sid") %>'>编辑</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="btnStatus" runat="server" Text='<%#Convert.ToBoolean(Eval("status"))?"禁用":"启用" %>' CommandName='<%#Convert.ToBoolean(Eval("status"))?"false":"true" %>' CommandArgument='<%#Eval("sid") %>'><%#Convert.ToBoolean(Eval("status"))?"禁用":"启用" %></asp:LinkButton>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
<AlternatingItemTemplate>
<tr bgcolor="#e8e8e8" class="center">
<td><%#Eval("sname") %></td>
<td><%#Eval("sex") %></td>
<td><%#Eval("age") %></td>
<div style="display: inline; position: relative;">
<td class="big_img"><a href="#"><img src='images/<%#Eval("photo") %>' /></a></td>
</div>
<td>
<asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandName="delete" CommandArgument='<%#Eval("sid") %>'>删除</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="btnEdit" runat="server" Text="编辑" CommandName="edit" CommandArgument='<%#Eval("sid") %>'>编辑</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="btnStatus" runat="server" Text='<%#Convert.ToBoolean(Eval("status"))?"禁用":"启用" %>' CommandName='<%#Convert.ToBoolean(Eval("status"))?"false":"true" %>' CommandArgument='<%#Eval("sid") %>'><%#Convert.ToBoolean(Eval("status"))?"禁用":"启用" %></asp:LinkButton>
</td>
</tr>
</AlternatingItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
--------------------------后台:----------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindUsers();
}
}
private void BindUsers()
{
string sql = "select * from student";
DataTable dt = SQLHelper.ExecuteDataTable(sql, CommandType.Text);
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "delete")
{
string sql = "delete from student where sid=@sid";
SqlParameter p1 = new SqlParameter("@sid", e.CommandArgument.ToString());
int r=SQLHelper.ExecuteNonQuery(sql, p1);
if (r > 0)
{
Response.Write("<script>alert('删除成功!')</script>");
}
else
{
Response.Write("<script>alert('删除失败!')</script>");
}
this.BindUsers();
}
else if (e.CommandName == "false" || e.CommandName == "true")
{
string sql = "update student set status=@status where sid=@sid";
SqlParameter[] pms = new SqlParameter[] {
new SqlParameter("@status",e.CommandName),
new SqlParameter("@sid",e.CommandArgument.ToString())
};
SQLHelper.ExecuteNonQuery(sql, pms);
this.BindUsers();
}
else if (e.CommandName == "edit")
{
Server.Transfer("EditRepeater.aspx?sid=" + e.CommandArgument.ToString());
}
}
------------------- EditRepeater前台:----根据传来的的id编辑记录---更新按钮--取消按钮----------------------------------------------------------
<body>
<form id="form1" runat="server">
<div>
<asp:ListView ID="ListView1" runat="server"
Xonitemcommand="ListView1_ItemCommand" Xonitemupdating="ListView1_ItemUpdating">
<ItemTemplate>
<table border="0" width="100%"><tr><th>姓名</th><th>性别</th><th>年龄</th><th>照片</th><th>操作</th></tr>
<tr style="text-align:center;">
<td>姓名:<asp:TextBox ID="txtName" Text='<%#Eval("sname") %>' runat="server"></asp:TextBox></td>
<td>性别:<asp:TextBox ID="txtSex" Text='<%#Eval("sex") %>' runat="server"></asp:TextBox></td>
<td>年龄:<asp:TextBox ID="txtAge" Text='<%#Eval("age") %>' runat="server"></asp:TextBox></td>
<div style="display: inline; position: relative;">
<td class="big_img">照片:
<asp:TextBox ID="txtPhoto" Text='<%#Eval("photo") %>' runat="server"></asp:TextBox></td>
</div>
<td>
<asp:LinkButton ID="btnUpdate" runat="server" Text="更新" CommandName="update" CommandArgument='<%#Eval("sid") %>'>更新</asp:LinkButton>
</td>
<td>
<asp:LinkButton ID="btnCancel" runat="server" Text="取消" CommandName="cancel" CommandArgument='<%#Eval("sid") %>'>取消</asp:LinkButton>
</td>
</table>
</tr>
</ItemTemplate>
</asp:ListView>
</div>
</form>
</body>
--------------------EditRepeater后台:----------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindStudent();
}
}
private void BindStudent()
{
int id = Convert.ToInt32(Request["sid"]);
string sql = "select * from student where sid=@sid";
SqlParameter p1 = new SqlParameter("@sid", id);
DataTable dt = SQLHelper.ExecuteDataTable(sql, CommandType.Text, p1);
this.ListView1.DataSource = dt;
this.ListView1.DataBind();
}
protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName == "update")
{
string sname = (e.Item.FindControl("txtName") as TextBox).Text;
string sex = (e.Item.FindControl("txtSex") as TextBox).Text;
string age = (e.Item.FindControl("txtAge") as TextBox).Text;
string photo = (e.Item.FindControl("txtPhoto") as TextBox).Text;
string sql = "update student set sname=@sname,sex=@sex,age=@age,photo=@photo where sid=@sid";
SqlParameter[] pms = new SqlParameter[] {
new SqlParameter("@sname",sname),
new SqlParameter("@sex",sex),
new SqlParameter("@age",age),
new SqlParameter("@photo",photo),
new SqlParameter("@sid",e.CommandArgument.ToString())
};
int r = SQLHelper.ExecuteNonQuery(sql, pms);
if (r > 0)
{
Response.Write("<script>alert('更新成功!')</script>");
}
else
{
Response.Write("<script>alert('更新失败!')</script>");
}
BindStudent();
}
else if (e.CommandName == "cancel")
{
Server.Transfer("Demo1.aspx");
}
}
-------------Web.config:----------------------------------
<connectionStrings>
<add name="studentConnectionString" connectionString="Data Source=PC_THINK-THINK;Initial Catalog=student;Persist Security Info=True;User ID=sa;Password=111111"
providerName="System.Data.SqlClient" />
</connectionStrings>
-----------------SQLHelper-----------------------------
public static String connStr = ConfigurationManager.ConnectionStrings["studentConnectionString"].ConnectionString;
public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)
{
using (SqlConnection con = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (pms != null)
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return cmd.ExecuteNonQuery();
}
}
}
public static DataTable ExecuteDataTable(string sql,CommandType commandtype, params SqlParameter[] pms)
{
DataTable dt = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(sql,connStr);
adapter.SelectCommand.CommandType = commandtype;
if (pms != null)
{
adapter.SelectCommand.Parameters.AddRange(pms);
}
adapter.Fill(dt);
return dt;
}