1

VS2003アプリをVS2010に移行しました。アプリケーションには、default.aspxで参照されるside_menu.ascxがあります。side_menu.ascxでは、side_menu.jsにあるjavascript関数メニューが呼び出されます。

ただし、関数メニューを呼び出すと、実行時にエラーが発生します- '関数メニューが見つかりません'これはVS2003で正常に機能します

これは私がこのエラーを受け取っているところです-このコードはside_menu.ascxにあります

 new menu (SIDE_MENU_ITEMS, SIDE_MENU_POS, SIDE_MENU_STYLES)

これはdefault.aspxのコードです

                    <!-- Side Menu -->
     <td valign="top" class="page_side_menu">
        <mycontrols:sidemenu id="SideMenu1" runat="server"/>
        </td>

これはside_menu.ascxのコードです

<%@ Control Language="vb" AutoEventWireup="false" Codebehind="side_menu.ascx.vb" Inherits="TOrders.UI.Controls.SideMenu" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<table cellPadding="0" width="100%">
<tr>
    <td vAlign="top" align="left" width="100%">
        <table cellSpacing="10" cellPadding="0" width="100%">
            <tr>
                <td align="left">
                    <asp:Literal ID="litError" Runat="server" Text="<font color=#E0E0E0 size=1>*&nbsp;</font>" Visible="False"></asp:Literal><asp:label id="lblJump" runat="server" ForeColor="#E0E0E0" Font-Size="XX-Small">Jump to Telex/Order:</asp:label>
                    <br>
                    <asp:textbox id="txtJumpTo" runat="server" Width="125px" CssClass="textbox"></asp:textbox>&nbsp;<input type="button" value="Go" runat="server" id="btnGo" class="TabOut-Button">
                </td>
            </tr>
        </table>
    </td>
</tr>
</table>
<script language="JavaScript" src="~/library/scripts/side_menu.js"     type="text/javascript"></script>
<script language="JavaScript" src="~/library/scripts/side_menu_items.js" type="text/javascript"></script>
<script language="JavaScript" src="~/library/scripts/side_menu_tpl.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
<!--
new menu (SIDE_MENU_ITEMS, SIDE_MENU_POS, SIDE_MENU_STYLES);
// -->
</script>

これはjavascript関数side_menu.jsです

var menus = [];

function menu (item_struct, pos, styles) {
// browser check
this.item_struct = item_struct;
this.pos = pos;
this.styles = styles;
this.id = menus.length;
this.items = [];
this.children = [];

this.add_item = menu_add_item;
this.hide = menu_hide;

this.onclick = menu_onclick;
this.onmouseout = menu_onmouseout;
this.onmouseover = menu_onmouseover;
this.onmousedown = menu_onmousedown;

var i;
for (i = 0; i < this.item_struct.length; i++)
    new menu_item(i, this, this);
for (i = 0; i < this.children.length; i++)
    this.children[i].visibility(true);
menus[this.id] = this;
}
4

4 に答える 4

0

私にとっては同じだったので、解決策は次のとおりです。相対パスを変更し、ルートを削除したままにします〜/

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="wucDTmisc1.ascx.vb"      Inherits="wucDTmisc1" %>
<%@ Register Src="wucBeneficiarios.ascx" TagName="wucBeneficiarios" TagPrefix="uc1" %>
<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
<%@ Register Src="Controles/wucMoneda.ascx" TagName="wucMoneda" TagPrefix="uc1" %>
<link href="~/css/content.css" rel="stylesheet" type="text/css" />
<link href="~/css/Blue.css" rel="stylesheet" type="text/css" />
<script src="~/js/siscli.js" type="text/javascript"></script>
<script src="~/js/json2.js" type="text/javascript"></script>
<script src="~/js/date.js" type="text/javascript"></script>

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="wucDTmisc1.ascx.vb"      Inherits="wucDTmisc1" %>
<%@ Register Src="wucBeneficiarios.ascx" TagName="wucBeneficiarios" TagPrefix="uc1" %>
<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
<%@ Register Src="Controles/wucMoneda.ascx" TagName="wucMoneda" TagPrefix="uc1" %>
<link href="/css/content.css" rel="stylesheet" type="text/css" />
<link href="/css/Blue.css" rel="stylesheet" type="text/css" />
<script src="/js/siscli.js" type="text/javascript"></script>
<script src="/js/json2.js" type="text/javascript"></script>
<script src="/js/date.js" type="text/javascript"></script>

また、解決策を探しているときに、コントロールではJSコードを残す方がよいことに気付きました。

それは私のために働いた、私はあなたも願っています。

于 2012-07-17T16:24:37.613 に答える
0

javascript src パスからチルダ (~) を削除してみて、パスが実際に正しいことを確認してください。

于 2012-07-17T16:16:15.750 に答える
0

必要なのは、ここで説明されているようなものかもしれません。「~」を、アプリケーション内で彼が物理的に着陸した場所ではなく、現在いるユーザーコントロールに従う何かに置き換える必要があります。

<script language="javascript" type="text/javascript" src="<%=Page.ResolveUrl("~/JS/VerticalMenu.js")%>"></script>
<script language="javascript" type="text/javascript" src="<%=Page.ResolveUrl("~/library/scripts/side_menu_items.js")%>"></script>
<script language="javascript" type="text/javascript" src="<%=Page.ResolveUrl("~/library/scripts/side_menu_tpl.js")%>"></script>
于 2012-07-17T17:32:10.793 に答える
0

解決済み

私はついに問題の解決策を見つけました。スクリプトタグ付きでした

として書き直しました。

<script src="../library/scripts/side_menu.js" type="text/javascript" />

それ以外の

<script src="../library/scripts/side_menu.js" type="text/javascript"></script>
于 2012-07-19T13:54:37.630 に答える