Asp.net 中继器中的嵌入式代码

Asp.net 中继器中的嵌入式代码,asp.net,Asp.net,我使用的是一个数据绑定中继器组件,里面有一些点击敏感面板 <ItemTemplate> <asp:Panel ID="PanelContent" runat="server"> <asp:Panel ID="PanelMenuTitle" runat="server" ondblclick="EditMenu(<%# Eval("ID") %>)"> 如您所见,我希望将

我使用的是一个数据绑定中继器组件,里面有一些点击敏感面板

<ItemTemplate>
        <asp:Panel ID="PanelContent" runat="server">
            <asp:Panel ID="PanelMenuTitle" runat="server" 
                ondblclick="EditMenu(<%# Eval("ID") %>)">

如您所见,我希望将当前数据项的ID传递给名为EditMenu()的javascript函数


但是,由于“服务器标记的格式不正确”,此代码会中断。我还尝试了我能想到的一切:使用
在ondblclick函数周围使用单引号。这应该可以解决问题。见下文

ondblclick='EditMenu(<%# Eval("ID") %>)'

在ondblclick函数周围使用单引号。这应该可以解决问题。见下文

ondblclick='EditMenu(<%# Eval("ID") %>)'

好的,我让它工作了。不是最初的方法,但最终它是我想要的:

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Panel pnlCtrl = (Panel)e.Item.FindControl("PanelMenuTitle");
            if (pnlCtrl != null)
            {
                myMenu menu = (e.Item.DataItem as myMenu);
                pnlCtrl.Attributes["ondblclick"] = String.Format("EditMenu('{0}')", menu.ID);
            }
        }

好的,我让它工作了。不是最初的方法,但最终它是我想要的:

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Panel pnlCtrl = (Panel)e.Item.FindControl("PanelMenuTitle");
            if (pnlCtrl != null)
            {
                myMenu menu = (e.Item.DataItem as myMenu);
                pnlCtrl.Attributes["ondblclick"] = String.Format("EditMenu('{0}')", menu.ID);
            }
        }

不,这不起作用。我以前试过这个。呈现的标记如下所示:。。。onclick=“EditMenu(%#Eval(“ID”)%%>)”>…您刚才发布的这条评论将JavaScript函数用双引号括起来。你确定你在JavaScript函数中使用了单引号吗?是的,我非常确定,因为我使用了复制和粘贴,以便在我的代码中复制你的建议。是的,谢谢你。那很好用。我根据自己的需要修改了您的代码(使用repeater而不是ListView),现在它工作起来很有魅力。再次感谢你的帮助!好东西。很高兴你让它工作了。你是如何通过中继器绕过数据键的?中继器不支持数据键,是吗?不,这不起作用。我以前试过这个。呈现的标记如下所示:。。。onclick=“EditMenu(%#Eval(“ID”)%%>)”>…您刚才发布的这条评论将JavaScript函数用双引号括起来。你确定你在JavaScript函数中使用了单引号吗?是的,我非常确定,因为我使用了复制和粘贴,以便在我的代码中复制你的建议。是的,谢谢你。那很好用。我根据自己的需要修改了您的代码(使用repeater而不是ListView),现在它工作起来很有魅力。再次感谢你的帮助!好东西。很高兴你让它工作了。你是如何通过中继器绕过数据键的?中继器不支持数据键,是吗?由OP从问题中移动回答。由OP从问题中移动回答。