每当我的中继器中的链接按钮被单击并通过某些条件时,我都试图显示一个JavaScript确认框。

我的中继器位于Ajax手风琴内容模板中的更新面板中。

<Accordion><UpdatePanel><Repeater>this is where the link button is</Repeater></UpdatePanel></Accordion>


这是我的代码,我将其放在Repeater_ItemCommand方法中:

 Page.ClientScript.RegisterStartupScript(this.GetType(), "ConfirmDelete", "return confirm('Are You Sure Want To Delete?');");


我研究了几种代码解决方案,但仍然无法正常工作。
我做错什么了?

更新:

如果我从html调用javascript。它工作正常。
码:

<asp:LinkButton ID="lbDelete" runat="server" OnClientClick="return confirm('Are you sure want to delete?');">Delete</asp:LinkButton>


但是我仍然不能从后面的代码中调用它

最佳答案

您可以使用Repeater_ItemDataBound事件来实现。您只需在控件绑定时使用button / linkbutton注册javascript。以下代码块将给您一个大概的想法

    protected void rpt_ItemDataBound(object source, RepeaterCommandEventArgs e)
    {
      if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType==  ListItemType.AlternatingItem)
       {
          LinkButton btn = (LinkButton)e.Item.FindControl("btnDelete");
          btn.Attributes.Add("onclick", "if ( ! confirm( 'Delete this record?' )) return false; ");

       }
    }


即使您的控件位于ajax手风琴面板中,这也将起作用。

这样,脚本将被绑定到项目模板中的每个linkbutton项目。此代码查找Item或AlternatingItem行,使用FindControl方法找到btnDelete控件,然后将onclick属性添加到Attributes集合。结果是,当用户单击Delete LinkBut​​ton时,将弹出“确定/取消”对话框,以确认删除。

您可以使用以下参考链接找到有关同一产品的更多信息

Reference

关于c# - 在更新面板中调用Javascript确认框时未显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15263237/

10-11 02:07