简体   繁体   English

如何从Repeater控件中调用Javascript函数

[英]How to call Javascript function from Repeater control

I know this question has already been answered but for my case none of it seems to work. 我知道这个问题已经得到解答,但就我而言,这似乎都不起作用。

I am trying to get JS Alert when clicking the Image Button. 单击图像按钮时,我试图获取JS Alert。 Below is My code. 以下是我的代码。

I have JS function like this: 我有这样的JS功能:

<Demo:HtmlTemplates ID="HtmlTemplates1" runat="server">
        <ClientScriptTemplate>
            <script type="text/javascript">

                function confirmDeleteNews() {
                    alert("Hi there");                       
                    return false;
                }

            </script>
        </ClientScriptTemplate>
    </Demo:HtmlTemplates>

This is my Image button inside repeater that should trigger the JS function: 这是我在中继器内的Image按钮,应该触发JS函数:

    <asp:Repeater ID="RepeaterSystemNews" runat="server" EnableViewState="true" OnItemDataBound="RepeaterSystemNews_ItemDataBound">
            <ItemTemplate>           
                <div class="news-item">                       
                    <div class="news-item-title">                      
                        <asp:ImageButton runat="server" ID="deleteNews" ImageUrl="~/Images/delete.png" Visible="false" OnClientClick=" confirmDeleteNews();"/>  
                </div>          
            </ItemTemplate>                    
   </asp:Repeater>

And this is how I bind the ImageButton in order to see it on UI: 这就是我绑定ImageButton以便在UI上看到它的方式:

protected void RepeaterSystemNews_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                //Access the button control
                ImageButton deleteNews = (ImageButton)e.Item.FindControl("deleteNews");

                User user = _IAuthService.GetCurrentUserWithRoles();
                if (user != null && user.Roles.Any(x => x.RoleID == (int)AdminRole.Admin))
                {
                    deleteNews.Visible = true;
                    //editNews.Visible = true;                 
                }
            }
        }

So, When I click on Image Button, the Alert never shows up - like my JS function never get called. 因此,当我单击“图像”按钮时,警报永远不会显示-就像我的JS函数从未被调用一样。 Is there anyone who now the solution to this problem? 现在有谁可以解决这个问题? Thanks. 谢谢。

The problem was that I called <Demo:HtmlTemplates ID="HtmlTemplates1" runat="server"> inside my JS code. 问题是我在JS代码中调用了<Demo:HtmlTemplates ID="HtmlTemplates1" runat="server"> Once I removed that part of code, everything worked well. 一旦删除了那部分代码,一切工作就很好了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM