Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用嵌套在updatepanel中的ascx内部的JS验证按钮单击事件_Asp.net_Javascript_Ajax_User Controls - Fatal编程技术网

Asp.net 使用嵌套在updatepanel中的ascx内部的JS验证按钮单击事件

Asp.net 使用嵌套在updatepanel中的ascx内部的JS验证按钮单击事件,asp.net,javascript,ajax,user-controls,Asp.net,Javascript,Ajax,User Controls,我在aspx内容页的更新面板中的ascx中有一个按钮。单击按钮时,我希望它运行一个JS函数,使其显示一个面板。这是我的密码 <pre> <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ABC.ascx.cs" Inherits="App.ABC" %> <script type= "text/javascript" language="javascript">

我在aspx内容页的更新面板中的ascx中有一个按钮。单击按钮时,我希望它运行一个JS函数,使其显示一个面板。这是我的密码

    <pre>


    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ABC.ascx.cs" Inherits="App.ABC" %>
    <script type= "text/javascript" language="javascript">
    var val1=0;
    var val2=0;


    function ShowPanel(val2)
    {
        if(val2 != 0)
        {   
            switch(val2)
            {
            case 1 : 
                document.getElementById('<%=pnl1.ClientID%>').style.visibility = 'visible';
            break;           
            }
        }
        return false;
    }
    </script>


    <asp:LinkButton ID="lbl1" runat="server" OnClick="return ShowPanel(1);">count</asp:LinkButton>

var val1=0;
var-val2=0;
功能显示面板(val2)
{
if(val2!=0)
{   
开关(val2)
{
案例1:
document.getElementById(“”).style.visibility='visible';
打破
}
}
返回false;
}
计数
我不知道该怎么做。请帮忙

更新#1-ABC.ascx位于aspx页面XYZ.aspx的updatepanel中

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>

<script type= "text/javascript" language="javascript">
    var val1 = 0;
    var val2 = 0;


    function ShowPanel(val2) {
        if (val2 != 0) {
            switch (val2) {
                case 1:
                    document.getElementById("<%= this.pnl1.ClientID%>").style.display = "none";
                    break;
            }
        }
        return false;
    }
    </script>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Panel runat="server" ID="pnl1"><div>pepe</div></asp:Panel>
    <asp:LinkButton ID="lbl1" runat="server" OnClientClick="return ShowPanel(1);">count</asp:LinkButton>
    </div>
    </form>
</body>
</html>

var val1=0;
var-val2=0;
功能显示面板(val2){
if(val2!=0){
开关(val2){
案例1:
document.getElementById(“”.style.display=“无”;
打破
}
}
返回false;
}
计数

var val1=0;
var-val2=0;
功能显示面板(val2){
if(val2!=0){
开关(val2){
案例1:
document.getElementById(“”.style.display=“无”;
打破
}
}
返回false;
}
佩佩
计数

在您的示例中,您使用的是LinkButton.OnClick,这是一个服务器端事件,因此它不会触发客户端JavaScript。如果将OnClick更改为OnClientClick,则会导致ASP.NET为LinkButton(可能会在锚标记上呈现为OnClick=“return ShowPanel(1);”属性)弹出客户端单击处理程序


另外,我注意到在ShowPanel()函数中,使用了pnl1.ClientID。我无法从您的代码片段中判断该面板是在主机页(ASPX)还是在用户控件(ASCX)中,但如果它不在用户控件中,则需要建立某种类型的对它的引用(即DirectCast(Me.page,MyHostPageWithPanel).pnl1)。或者,您可能决定它实际上不需要是服务器端控件,然后您可以使用易于通过JavaScript获取的id硬编码一个div。

使用此

ScriptManager.RegisterOnSubmitStatement(this,this.GetType(),“”,,“showwait();”;


ScriptManager.RegisterClientScriptBlock(this,this.GetType(),“”,“stopwait();”,true)

我试过了,但是当我动态加载用户控件时,它抛出了一个错误。ABC.ascx(51):错误CS1041:应为标识符;'return'是一个关键字,我在这里输入了完整的示例更新的代码:感谢您的帮助,我尝试了您的代码,它抛出了我,“Microsoft JScript运行时错误:预期对象”单击count linkbutton-lbl1.haaaaaaa,'Visible=“false”',您将此属性放在asp:Panel.jeje中,然后在HTML代码中不生成。始终关注HTML生成,这正是我试图实现的目标。首先隐藏面板,然后单击计数显示面板。Jordan,我改为onclientclick。面板位于ABC.ascx中。ABC.ascx由XYZ.aspx中的updpnl1动态渲染。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>

<script type= "text/javascript" language="javascript">
    var val1 = 0;
    var val2 = 0;


    function ShowPanel(val2) {
        if (val2 != 0) {
            switch (val2) {
                case 1:
                    document.getElementById("<%= this.pnl1.ClientID%>").style.display = "none";
                    break;
            }
        }
        return false;
    }
    </script>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Panel runat="server" ID="pnl1"><div>pepe</div></asp:Panel>
    <asp:LinkButton ID="lbl1" runat="server" OnClientClick="return ShowPanel(1);">count</asp:LinkButton>
    </div>
    </form>
</body>
</html>