C#OnclientClick-doens';不呈现asp标记?

C#OnclientClick-doens';不呈现asp标记?,c#,onclientclick,C#,Onclientclick,我有一个ASP按钮,看起来像这样: <asp:Button ID="btnReset" runat="server" OnClientClick = "hideOverlay('<%=pnlOverlay.ClientID %>', '<%=pnlAddComment.ClientID %>');" CssClass ="btnCancel PopUpButton" /> 问题是隐藏部分中的asp标记。我无法让它工作。为什么不工作

我有一个ASP按钮,看起来像这样:

<asp:Button 
  ID="btnReset" 
  runat="server" 
  OnClientClick = "hideOverlay('<%=pnlOverlay.ClientID %>', '<%=pnlAddComment.ClientID  %>');"
  CssClass ="btnCancel PopUpButton"
/>

问题是隐藏部分中的asp标记。我无法让它工作。为什么不工作?如何修复它?

尝试在内联代码中将“=”替换为“#”。e、 g.=>,以便在编译时实例化客户端ID

仅用于调用客户端脚本,如javascript代码。如果您试图在代码隐藏中调用方法,则应使用OnClick事件。

将代码更改为:

<asp:Button 
  ID="btnReset" 
  runat="server" 
  OnClientClick=<%# "hideOverlay('" + pnlOverlay.ClientID + "', '" + pnlAddComment.ClientID +"');" %>
  CssClass ="btnCancel PopUpButton"
/>
别忘了对链接进行数据绑定,是的,
onclientclick
没有
,因为这些都在
标记中使用,您可以尝试一下

i、 在代码背后

btnReset.OnClientClick = "hideOverlay'"+pnlOverlay.ClientID+"','"+pnlAddComment.ClientID+"')";
第二种方法是使用内联javascript

<asp:Button ID="btnReset" runat="server" OnClientClick = "newhideOverlay()" CssClass
="btnCancel PopUpButton"/>

<script type="text/javascript">

function newhideOverlay() 

{    
      hideOverlay('<%=pnlOverlay.ClientID %>', '<%=pnlAddComment.ClientID  %>');

} 

</script>

函数newhideOverlay()
{    
隐藏隐藏('','');
} 
同时确保pnlOverlay和pnlAddComment在按钮之前加载。

尝试以下示例

第一个例子

在aspx中

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btnReset" runat="server" CssClass="btnCancel PopUpButton" />
        <asp:Panel ID="pnlOverlay" runat="server">
        </asp:Panel>
        <asp:Panel ID="pnlAddComment" runat="server">
        </asp:Panel>        
    </div>
    </form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btnReset" runat="server" CssClass="btnCancel PopUpButton" OnClientClick="hideOverlay();" />
        <asp:Panel ID="pnlOverlay" runat="server">
        </asp:Panel>
        <asp:Panel ID="pnlAddComment" runat="server">
        </asp:Panel>        
    </div>
    </form>
</body>
<script type="text/javascript" >
    function hideOverlay()
    {
        var pnlOverlayID = '<%= pnlOverlay.ClientID %>';
        var pnlAddCommentID = '<%= pnlAddComment.ClientID %>';

        //Do your stuff
    }
</script> 
</html>
它将为按钮生成以下源代码

<input type="submit" name="btnReset" value="" onclick="hideOverlay('pnlOverlay','pnlAddComment');" id="btnReset" class="btnCancel PopUpButton" />
<input type="submit" name="btnReset" value="" onclick="hideOverlay('pnlOverlay', 'pnlAddComment');" id="btnReset" class="btnCancel PopUpButton" />
它将为按钮生成以下源代码

<input type="submit" name="btnReset" value="" onclick="hideOverlay('pnlOverlay','pnlAddComment');" id="btnReset" class="btnCancel PopUpButton" />
<input type="submit" name="btnReset" value="" onclick="hideOverlay('pnlOverlay', 'pnlAddComment');" id="btnReset" class="btnCancel PopUpButton" />

第三个例子

在aspx中

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btnReset" runat="server" CssClass="btnCancel PopUpButton" />
        <asp:Panel ID="pnlOverlay" runat="server">
        </asp:Panel>
        <asp:Panel ID="pnlAddComment" runat="server">
        </asp:Panel>        
    </div>
    </form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btnReset" runat="server" CssClass="btnCancel PopUpButton" OnClientClick="hideOverlay();" />
        <asp:Panel ID="pnlOverlay" runat="server">
        </asp:Panel>
        <asp:Panel ID="pnlAddComment" runat="server">
        </asp:Panel>        
    </div>
    </form>
</body>
<script type="text/javascript" >
    function hideOverlay()
    {
        var pnlOverlayID = '<%= pnlOverlay.ClientID %>';
        var pnlAddCommentID = '<%= pnlAddComment.ClientID %>';

        //Do your stuff
    }
</script> 
</html>

函数hideOverlay()
{
变量pnlOverlayID='';
var pnlAddCommentID='';
//做你的事
}
它将为脚本部分生成以下源代码

<script type="text/javascript" >
    function hideOverlay()
    {
        var pnlOverlayID = 'pnlOverlay';
        var pnlAddCommentID = 'pnlAddComment';

        //Do your stuff
    }
</script> 

函数hideOverlay()
{
变量pnlOverlayID='pnlOverlay';
var pnlAddCommentID='pnlAddComment';
//做你的事
}

我尝试了你的代码,但它不起作用。当我查看源代码时,我看到:onclick属性消失了,为什么会这样?。你对databind链接的意思是什么?在你的代码背后,你必须调用“databind();或“btnReset.DataBind()”