如何从Repeater控件调用Javascript函数

时间:2017-06-27 08:01:26

标签: javascript c# repeater

我知道这个问题已经得到了回答,但就我而言,似乎没有任何问题能够解决。

我在点击图片按钮时尝试获取JS Alert。以下是我的代码。

我有这样的JS函数:

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

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

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

这是我的转发器里面的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>

这就是我如何绑定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;                 
                }
            }
        }

所以,当我点击图像按钮时,警报永远不会显示 - 就像我的JS函数永远不会被调用一样。有没有人现在解决这个问题?感谢。

1 个答案:

答案 0 :(得分:0)

问题是我在JS代码中调用了<Demo:HtmlTemplates ID="HtmlTemplates1" runat="server">。一旦我删除了那部分代码,一切都运行良好。

相关问题