62,041
社区成员
发帖
与我相关
我的任务
分享
[PersistChildren(false)]
[DefaultProperty("DataSource")]
[ParseChildren(true)]
[ToolboxData("<{0}:Repeater runat=server></{0}:Repeater>")]
public class Repeater : System.Web.UI.WebControls.Repeater
{
public delegate void EventDelete(Object sender, EventArgs e);
/// <summary>
/// 删除事件
/// </summary>
public event EventDelete ItemDelete;
public Button _btnDelete = new Button();
public Repeater()
: base()
{
_btnDelete.Click += new EventHandler(OnDelete);
}
[DefaultValue("数据库中无该条件数据!!")]
[Browsable(true)]
public string EmptyDataText
{
get
{
string s = ViewState["EmptyDataText"] as string;
return s == null ? "数据库中无该条件数据!!" : s;
}
set
{
ViewState["EmptyDataText"] = value;
}
}
[DefaultValue("")]
[Browsable(true)]
[Category("Appearance")]
[Description("删除按钮ID")]
public string DeleteButtonID
{
get
{
string s = ViewState["DeleteButtonID"] as string;
return s == null ? "bt_delete" : s;
}
set { ViewState["DeleteButtonID"] = value; }
}
[DefaultValue("")]
[Browsable(true)]
[Category("Appearance")]
[Description("全选框名称")]
public string CheckBoxName
{
get
{
string s = ViewState["CheckBoxName"] as string;
return s == null ? "cb_guid" : s;
}
set { ViewState["CheckBoxName"] = value; }
}
protected override void Render(HtmlTextWriter writer)
{
if (this.Items.Count > 0)
{
_btnDelete.ID = this.DeleteButtonID;
_btnDelete.Text = "删除选中的数据";
_btnDelete.Width = 150;
writer.WriteLine("<table cellpadding=\"1\" cellspacing=\"1\" class=\"itemTable\">");
writer.WriteLine("<tr class=\"delete\">");
writer.WriteLine("<td>");
_btnDelete.RenderControl(writer);
writer.WriteLine("</td>");
writer.WriteLine("</table>");
}
base.Render(writer);
if (this.Items.Count == 0 && this.DataSource != null)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("<table cellpadding=\"1\" cellspacing=\"1\" class=\"itemTable\">");
sb.AppendLine("\t<tr class=\"nodata\">");
sb.AppendLine("\t\t<td>" + this.EmptyDataText + "</td>");
sb.AppendLine("\t</tr>");
sb.AppendLine("</table>");
writer.Write(sb.ToString());
}
StringBuilder str = new StringBuilder();
str.AppendLine("<script type=\"text/javascript\">");
str.AppendLine("$(document).ready(function(){");
str.AppendLine(" $(\"input[@name=" + this.CheckBoxName + "]\").click(function(){");
str.AppendLine(" if(this.checked){$(this).parents(\"tr\").addClass(\"selected\");}");
str.AppendLine(" else{$(this).parents(\"tr\").removeClass(\"selected\");}");
str.AppendLine(" });");
str.AppendLine(" $(\"#"+this._btnDelete.ClientID+"\").click(function(){");
str.AppendLine(" var i=0;");
str.AppendLine(" $(\"input[@name=" + this.CheckBoxName + "][@checked]\").each(function(){");
str.AppendLine(" i++;");
str.AppendLine(" });");
str.AppendLine(" if(i>0){");
str.AppendLine(" return confirm(\"你确定要删除这“\"+i+\"”项吗?\")");
str.AppendLine(" }else{");
str.AppendLine(" alert(\"无可删除数据\");return false;");
str.AppendLine(" }");
str.AppendLine(" })");
str.AppendLine("})");
str.AppendLine("</script>");
writer.Write(str.ToString());
}
protected override void OnItemCreated(RepeaterItemEventArgs e)
{
//if (e.Item.ItemType == ListItemType.Header)
//{
// Button bt_delete = e.Item.FindControl(this.DeleteButtonID) as Button;
// if (bt_delete != null)
// {
// bt_delete.Click += new EventHandler(OnDelete);
// }
//}
base.OnItemCreated(e);
}
protected void OnDelete(object sender, EventArgs e)
{
if (ItemDelete != null)
{
ItemDelete(sender, e);
}
}
}