簡體   English   中英

在ascx.cs用戶控件中執行JavaScript

[英]Execute javascript in an ascx.cs usercontrol

我正在將控件動態添加到我的ascx.cs用戶控件中,因此,我還需要從我的ascx.cs用戶控件中動態執行JavaScript代碼。

我正在使用以下代碼執行我的JavaScript:

Page.ClientScript.RegisterStartupScript(typeof(Page), "reOpen", "<script type='text/javascript'> reOpenClick(); </script>")

這是我的ascx文件中的javascript

<%@ Register Assembly="obout_Window_NET" Namespace="OboutInc.Window" TagPrefix="obout" %>

<obout:Window runat="server" ID="ow_dialog" Width="200" Height="50"
    Title="Open" IsModal="true" ShowCloseButton="true"
    StyleFolder="~/Styles/obout/window/grandgray" VisibleOnLoad="false">    
   .
   .
   .
   .
</obout:Window>

<script type="text/javascript">

    function reOpenClick() {
        ow_dialog.setTitle("Open");
        ow_dialog.screenCenter();
        ow_dialog.Open();
    }

</script>

當照常運行代碼時,出現錯誤ReferenceError: ow_dialog is not defined 但是,當在網絡瀏覽器的控制台中鍵入reOpenClick()時,一切運行正常。

為什么在控制台中鍵入該功能正常時,為什么出現ReferenceError: ow_dialog is not defined

將腳本標簽添加到標記

<script type="text/javascript">
   // place your javascript here
</script>


<script type="text/javascript" href="path to js file" />

要么

在控件的load事件中,執行以下操作:

if (!Page.ClientScript.IsClientScriptIncludeRegistered("keyName"))
    Page.ClientScript.RegisterClientScriptInclude("keyName",
        Page.ResolveUrl("~/Scripts/jsfile.js"));

如果用戶控件位於UpdatePanel和/或默認情況下將其Visible屬性設置為false,則將收到"Object expected"錯誤,因為僅在頁面加載時加載腳本,並且所調用的函數不存在。

解決方法這是使用style="display:none" ,而不是Visible="false"主頁的用戶控件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM