无法从CodeBehind调用JavaScript函数

无法从CodeBehind调用JavaScript函数,javascript,asp.net,Javascript,Asp.net,我有gridView,如果用户点击一个按钮,我想给它的信息弹出 下面是打开和关闭弹出窗口的javascript <script type="text/javascript"> function ShowModalPopup() { $find("mpe").show(); return false; } function HideModalPopup() { $find("mpe").hide();

我有gridView,如果用户点击一个按钮,我想给它的信息弹出

下面是打开和关闭弹出窗口的javascript

<script type="text/javascript">
    function ShowModalPopup() {
        $find("mpe").show();
        return false;
    }
    function HideModalPopup() {
        $find("mpe").hide();
        return false;
    }
这就是我的模态弹出窗口的样子

<asp:LinkButton ID="lnkDummy" runat="server"></asp:LinkButton>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" BehaviorID="mpe" runat="server"
    PopupControlID="pnlPopup" TargetControlID="lnkDummy" BackgroundCssClass="modalBackground">
</cc1:ModalPopupExtender>
<asp:Panel ID="pnlPopup" runat="server" style="display: none">
         <div >
  <div class="modal-content">
      <asp:Button ID="btnHide" runat="server" OnClientClick="return HideModalPopup()" />
                <a class="close" href="#" >&times;</a>
                <h2>Here i am</h2>
                <div class="content">
                <asp:Label ID="Label17" runat="server" Text="Comprar" CssClass="second-menu-title"></asp:Label>  
                        <br/>
                            <b><asp:Label ID="Label18" runat="server" Text="Proveedor:  "></asp:Label></b>
                            <asp:Label ID="Label19" runat="server" Text=""></asp:Label>
                        <br/>
                            <b><asp:Label ID="Label20" runat="server" Text="Tipo: "></asp:Label></b>
                            <asp:Label ID="Label21" runat="server" Text=""></asp:Label>
                            <asp:Label ID="Label22" runat="server" Text=""></asp:Label>
                        <br/>
                            <b><asp:Label ID="Label23" runat="server" Text="Cantidad pedida:  "></asp:Label></b>
                            <asp:TextBox width="50px" ID="TextBox2" runat="server" TextMode="Number" min="0" step="1" Value="0"></asp:TextBox> 
                            <br/>  
                </div>
            </div>
        </div>
</asp:Panel>
问题是,单击按钮时不会出现模块弹出窗口。我不知道为什么。任何帮助都将不胜感激

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

    <script type="text/javascript">
        function ShowModalPopup() {
            $('#<%= pnlPopup.ClientID %>').toggle();
        }

        function HideModalPopup() {
            $('#<%= pnlPopup.ClientID %>').toggle();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>

            <asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="false">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:ImageButton ImageUrl="~/Images/system/RightArrow.png" runat="server" OnClick="Unnamed_Click" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

            <asp:Panel ID="pnlPopup" runat="server" style="display:none;">
                <asp:ImageButton ID="btnTest" ImageUrl="~/Images/system/RightArrow.png" runat="server" OnClientClick="HideModalPopup(); return false;" />
                <p>Content Goes here</p>
            </asp:Panel>

        </div>
    </form>
</body>
</html>

控制台中有JS错误吗?没有,我已经检查过没有JS错误为什么第四个参数add script tags在Page.ClientScript.RegisterStartupScript上设置为false?我建议进行调试以找出两件事:您是否真的遇到了makePurchaseOrder代码隐藏函数,并在浏览器中调试以查看$findmpe返回的内容,因为这看起来确实有点不对劲。啊!刚刚发布了一个解决方案,但很高兴你能成功。
<asp:LinkButton ID="lnkDummy" runat="server"></asp:LinkButton>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" BehaviorID="mpe" runat="server"
    PopupControlID="pnlPopup" TargetControlID="lnkDummy" BackgroundCssClass="modalBackground">
</cc1:ModalPopupExtender>
<asp:Panel ID="pnlPopup" runat="server" style="display: none">
         <div >
  <div class="modal-content">
      <asp:Button ID="btnHide" runat="server" OnClientClick="return HideModalPopup()" />
                <a class="close" href="#" >&times;</a>
                <h2>Here i am</h2>
                <div class="content">
                <asp:Label ID="Label17" runat="server" Text="Comprar" CssClass="second-menu-title"></asp:Label>  
                        <br/>
                            <b><asp:Label ID="Label18" runat="server" Text="Proveedor:  "></asp:Label></b>
                            <asp:Label ID="Label19" runat="server" Text=""></asp:Label>
                        <br/>
                            <b><asp:Label ID="Label20" runat="server" Text="Tipo: "></asp:Label></b>
                            <asp:Label ID="Label21" runat="server" Text=""></asp:Label>
                            <asp:Label ID="Label22" runat="server" Text=""></asp:Label>
                        <br/>
                            <b><asp:Label ID="Label23" runat="server" Text="Cantidad pedida:  "></asp:Label></b>
                            <asp:TextBox width="50px" ID="TextBox2" runat="server" TextMode="Number" min="0" step="1" Value="0"></asp:TextBox> 
                            <br/>  
                </div>
            </div>
        </div>
</asp:Panel>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

    <script type="text/javascript">
        function ShowModalPopup() {
            $('#<%= pnlPopup.ClientID %>').toggle();
        }

        function HideModalPopup() {
            $('#<%= pnlPopup.ClientID %>').toggle();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>

            <asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="false">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:ImageButton ImageUrl="~/Images/system/RightArrow.png" runat="server" OnClick="Unnamed_Click" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

            <asp:Panel ID="pnlPopup" runat="server" style="display:none;">
                <asp:ImageButton ID="btnTest" ImageUrl="~/Images/system/RightArrow.png" runat="server" OnClientClick="HideModalPopup(); return false;" />
                <p>Content Goes here</p>
            </asp:Panel>

        </div>
    </form>
</body>
</html>
public partial class _testPWforSO :  System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            int rowcount = 0;
            Collection<Product> products = InternalProduct.FindAll(0, 10, ref rowcount);
            gvTest.DataSource = products;
            gvTest.DataBind();
        }
    }

    protected void Unnamed_Click(object sender, ImageClickEventArgs e)
    {
        // code to find out which one was clicked
        this.Page.ClientScript.RegisterStartupScript(this.GetType(), "OpenPopupClick", "ShowModalPopup()", true);
    }
}