当前位置:首页 > .NET2.0在Repeater中实现删除

.NET2.0在Repeater中实现删除

点击次数:997  更新日期:2010-12-28
\n

虽然Repeater控件没有象GridView那样常用,但有一些特定的场合还是需要用到Repeater的,其实在Net2.0中,FormView控件也可以实现类似于Repeater的效果,而且都是通过模板(Template)来显示数据。


\n

然而,在Repeater控件对控件进行删除就没有GridView那样简单。下面示例如下:


\n

Default.aspx:


\n

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”Repeater_Default” %>


\n

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>


\n

<html xmlns=”http://www.w3.org/1999/xhtml” >
<head runat=”server”>
<title>无标题页</title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
<asp:SqlDataSource ID=”SqlDataSource1″ runat=”server” ConnectionString=”<% ConnectionStrings:NorthwindConnectionString %>”
SelectCommand=”SELECT * FROM [Region]“></asp:SqlDataSource>

</div>
<asp:Repeater ID=”Repeater1″ runat=”server” DataSourceID=”SqlDataSource1″ OnItemCommand=”Repeater1_ItemCommand” OnItemCreated=”Repeater1_ItemCreated”>

<ItemTemplate >
<table border=”1″>
<tr>
<td>
<asp:Label Text =’<%#Eval(“regionid”) %>’ runat =”server” ID=”Label1″></asp:Label>

<asp:Label Text=’<%#Eval(“regiondescription”) %>’ runat=”server” ></asp:Label>
<asp:Button Text =”Delete” runat =”server” ID=”Button1″/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</form>
</body>
</html>


\n


Default.aspx.cs:


\n

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;


\n

public partial class Repeater_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{


\n

}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{

switch (((Button)e.Item.FindControl (“Button1″)).Text)
{
case “Delete”:


\n

SqlConnection conn = new SqlConnection(“server=.;database=northwind;uid=sa;pwd=sa;”);
conn.Open();
SqlCommand comm = new SqlCommand(“delete from region where regionid=’” + ((Label)e.Item.FindControl(“Label1″)).Text+”‘”,conn );
comm.ExecuteNonQuery();
conn.Close();


\n

Response.Write(((Label)e.Item.FindControl (“Label1″)).Text);
break;
}
}
protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
{
for (int i = 0; i < this.Repeater1.Items.Count; i++)
{
((Button)this.Repeater1.Items[i].FindControl(“Button1″)).Attributes.Add(“onclick“, “alert(‘ff’)”);
}

}
}


\n

这样就可以实现删除了。


\n

来源:sdtsfhh的blog

\n