C# 动态添加按钮和ConfirmButtonExtender

C# 动态添加按钮和ConfirmButtonExtender,c#,asp.net,jquery,ajax,C#,Asp.net,Jquery,Ajax,我在运行时向表单中添加了很多按钮。当我按下这些按钮时,我希望弹出一个确认窗口,询问我是否确定要删除此项目 我该怎么做呢。 每个按钮都是动态添加的,因此我希望confirmbuttonextender也应该以这种方式添加。 我是否必须为每个按钮添加一个扩展器,还是应该在aspx文件中创建一个扩展器,然后在运行时更改targetID 更新 Panel div = new Panel(); div.CssClass = "BulletDiv"; content.Controls.Add(div);

我在运行时向表单中添加了很多按钮。当我按下这些按钮时,我希望弹出一个确认窗口,询问我是否确定要删除此项目

我该怎么做呢。 每个按钮都是动态添加的,因此我希望confirmbuttonextender也应该以这种方式添加。 我是否必须为每个按钮添加一个扩展器,还是应该在aspx文件中创建一个扩展器,然后在运行时更改targetID

更新

Panel div = new Panel();
div.CssClass = "BulletDiv";
content.Controls.Add(div);

HyperLink picture = new HyperLink();
picture.ImageUrl = "~/Icons/Ny_mappa.png";
picture.NavigateUrl = "?navID=" + item.Nav_ID + "&ddlID=" + ddlID;
div.Controls.Add(picture);

div.Controls.Add(new LiteralControl("<br/>"));

HyperLink description = new HyperLink();
description.CssClass = "BulletDiv_Text";
description.Text = item.Nav_Name;
description.ID = item.Nav_ID.ToString();
description.NavigateUrl = "?navID=" + item.Nav_ID + "&ddlID=" + ddlID;
div.Controls.Add(description);

Button eyda = new Button();
eyda.Text = "Eyda";
eyda.CommandArgument = item.Nav_ID.ToString();
eyda.Command += new CommandEventHandler(eyda_Command);
div.Controls.Add(eyda);
Panel div=new Panel();
div.CssClass=“BulletDiv”;
content.Controls.Add(div);
超链接图片=新建超链接();
picture.ImageUrl=“~/Icons/Ny_mappa.png”;
picture.NavigateUrl=“?navID=“+item.Nav_ID+”&ddlID=“+ddlID;
div.Controls.Add(图片);
添加(新的LiteralControl(“
”); 超链接描述=新建超链接(); description.CssClass=“BulletDiv_Text”; description.Text=item.Nav_Name; description.ID=item.Nav_ID.ToString(); description.NavigateUrl=“?navID=“+item.Nav_ID+”&ddlID=“+ddlID; div.Controls.Add(说明); 按钮eyda=新按钮(); eyda.Text=“eyda”; eyda.CommandArgument=item.Nav_ID.ToString(); Command+=新CommandEventHandler(eyda_命令); 添加分区控制(eyda);
您尝试过简单的javascript吗

onclick='return confirm("Are you sure you would like to delete this item?");'
您可以在添加按钮时添加以下内容:

Button edya = new Button();
edya.Attributes.Add("onclick","return confirm(\"Are you sure you would like to delete this item?\");");
//... set other fields and add to page
或者,您可以使用JQuery

eyda.CssClass = "confirm";  //When adding button on server side
然后在客户端添加以下javascript(当然也添加了jquery库)

如果你想变得更聪明,包括更多的信息

eyda.CssClass = "confirm";  //When adding button on server side
eyda.Attributes.Add("SomeProperty","Some value, specific to this button");


  $(document).ready(function() {
   $('.confirm').click(function() {
       var someValue= $(this).attr("SomeProperty");

       if (!confirm("Are you sure you want to delete " + someValue)) {
           return false; //prevent button event propogating
       }
   });
});
更新:像这样更改背景图像

eyda.CssClass = "confirm";  //When adding button on server side
样式表

.confirm {
    background-image: url('Images/ClickMe.gif');
    background-repeat:no-repeat;
}
.clicked {
    background-image: url('Images/Clicked.gif');
}
Javascript:

$(document).ready(function() {
   $('.confirm').click(function() {
       if (!confirm("Are you sure etc?")) {
           $(this).addClass("clicked");
           return false; //prevent button event propogating
       }
       //Not meaningful to change style here as a postback is about to occur... 
       //$(this).addClass("clicked"); 
   });
});

我在找容易的东西。javascript实现了这个技巧,但是我可以自定义它吗?更改图标、按钮上的文本等等?是的,JQuery允许您轻松地执行此操作:您可以使用.attr(“attributeName”、“ValueToSetTo”)设置任何属性;技术。。。发布一段呈现按钮的片段,我将更改上面的JQuery以向您展示。您想要的是Eyda按钮上的行为还是链接?JQuery方法的美妙之处在于您有非常少量的javascript,但它会应用于选择器中标识的每个项(在本例中为“.confirm”)。您不必为所有内容都连接内联脚本和扩展器。然后,您可以构建事件处理程序中发生的内容,如我的上一个示例中所示。
$(document).ready(function() {
   $('.confirm').click(function() {
       if (!confirm("Are you sure etc?")) {
           $(this).addClass("clicked");
           return false; //prevent button event propogating
       }
       //Not meaningful to change style here as a postback is about to occur... 
       //$(this).addClass("clicked"); 
   });
});