1
function newedito() {
    var localTime = new Date();
    var year = localTime.getFullYear();
    var month = localTime.getMonth() + 1;
    var date = localTime.getDate();
    var hours = localTime.getHours();
    var minutes = localTime.getMinutes();
    var seconds = localTime.getSeconds();
    var x = document.getElementById('drdned').value;
    var y = document.getElementById('txtned1').value;
    var z = document.getElementById('txtned2').value;
    var v = "Date : " + date + "-" + month + "-" + year + " Time : " + hours + ":" + minutes + ":" + seconds;
    PageMethods.Ned(x, y, z, v, OnCallSumComplete, OnCallSumError);
    function OnCallSumComplete(result) {
        document.getElementById('updater').innerHTML = result;
    }
    function OnCallSumError() {
        document.getElementById('updater').innerHTML = "Error";
    }
}

<script src="Scripts/Site.js" language="javascript" type="text/javascript"></script>

上記のJavaScriptをaspxページに配置すると、すべて正常に動作しますが、その関数コードを外部のSite.jsファイルに配置すると、ページメソッドが呼び出されますが、OnCallSumComplete()およびOnCallSumError()が機能しません.divのhtmlを変更していません(「アップデーター」)。ここで、結果は「成功メッセージ」または「例外メッセージ」のいずれかの文字列です。お願い助けて。

aspx ファイル全体はここに表示するには非常に大きいです。これは id="updater" の div が含まれている div です。

<div id="popUpDiv" style="display:none; border:10px solid rgba(0, 0, 0, .8); box-shadow: 0px 0px 200px 200px Black; position:fixed; top:10%; left:20%; right:20%; height:80%; min-width:60%; z-index: 10002;">
    <div id="control" style=" background-color:rgba(0, 0, 0, .8); color:White; height:4%;">
        <div style="color:#01A9DB; float:left; font-weight:700;">OWPOST-ECLIPSE</div>
        <div style="position:static; right:0px; top:0px; float:right;">
            <a style="color:White;" href="#" onclick="togglePopUp('popUpDiv'); return false;">EXIT</a>
        </div>
    </div>
    <div id="updater" style=" background-color:White; overflow:scroll; height:96%;">
    </div>
</div>

これは、サーバー側から ajax を使用して表示されるフォームを持つボタンをクリックすると表示されるポップアップ div です。送信ボタン関数をクリックすると、newedito() はすべてのデータを pagemethod Ned() に送信し、データベースにデータを追加します。しかし、jsコードを外部ファイルに入れると、データはデータベースに追加されますが、戻り文字列はnewedito()メソッドによって表示されません。私はたくさんのフォームを持っているので、それらのhtmlを準備してデータベースに保存し、必要に応じてフォーム「アップデータ」divを表示し、javascript関数によって呼び出されることを伝えなければなりません。助けてください。

マスター ページに Site.js を含めています。

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head runat="server">
        <title>THE OPEN WEB POST</title>
        <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
        <asp:ContentPlaceHolder ID="HeadContent" runat="server">
        </asp:ContentPlaceHolder>
        <style type="text/css">
    .style1
    {
        font-size:x-large;
        color: #FFFFFF;
    }
    .style2
    {
        text-decoration: none;
        color:White;

    }
    .style3
    {
        color: #01A9DB;
    }
    #mynew
    {
    }
</style>
<script src="Scripts/Site.js" language="javascript" type="text/javascript"></script>
    </head>
    <body>
        <form id="mynew" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
        </asp:ScriptManager>
        <div class="page" style="width: 100%; min-width:960px;">

マスターページのこの部分が役立つと思います。

4

1 に答える 1

0

以下のように、スクリプト マネージャーを使用してスクリプトを登録してみてください。あなたのページでは、スクリプト ファイルへのパスが正しく解決されていないと思います。

<asp:ScriptManager ID="SM1" runat="server" EnablePageMethods="true">
  <Scripts>
    <asp:ScriptReference Path="~/Scripts/Site.js" />
  </Scripts>
</asp:ScriptManager>
于 2012-07-06T04:30:46.477 に答える