0

とへの参照があるプレーン.htmlページがあります。を使用して実装しているため、サーバー側が先に実行されます。ただし、サーバーコードを実行する前に関数を実行する必要があります。このソリューションは、次のコードを使用することで利用できます。hiddenFieldExternal.jsASP.NETExternal.js

*.aspx内*

<script src="External.js" type="text/javascript"></script>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />`

.aspx.vb内

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
If Not Page.IsPostBack Then
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "register", "MyFunction();", True)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
 End Sub

ページを使用しているとき、コードは完全に機能し.aspxます。ASP.NET明らかに、プレーン.htmlページでサーバーコントロールを使用することはできません。したがって<asp:ScriptManager>.htmlページでの使用は機能しません。どうすれば同じことを1ページで行うこと.htmlできますか。で定義する必要があるものと、コントロールを.html page使用できないことを念頭に置いて、コードビハインドから関数を呼び出す方法を教えてください。<asp:>

さて、私がやろうとしているのは、基本的に値を設定するExternal.js関数を持つmyを持っているということです。populateHidden()hiddenField

function populateHidden()
{
document.getElementByID('Hidden').value = "abcdefg";
}

PassData()また、基本的ajax requestにサーバーに初期化して、の値をHiddenコードビハインドに渡す(webMethodを使用)別の関数もあります。問題は、populateHidden()最初に実行して、(実行後に)コードビハインドにpassData()渡して値をデータベースに格納することです。したがって、現在、両方の関数を実行している方法は次のとおりです。abcdefgpopulateHidden()

.htmlで

<body onload="PassData()">

コードビハインドで

サーバー側が最初に実行populateHidden();されるため、実行しようとしています。Page_Load

4

2 に答える 2

0

正しく理解できたかどうかわかりません。ただし、これまでと同じ方法でスクリプトを呼び出したい場合は、次のようにする必要があります。

<body onload="MyFunction();">

完全版:

<html>
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="External.js" type="text/javascript"></script>
    </head>
    <body onload="MyFunction();">
    ...
    </body>
</html>

それは...ですか?

于 2013-02-15T16:22:52.080 に答える
0

私は@Cleydsonの答えからこれを借りました:

JS

function MyFunction()
{
    populateHidden();
    PassData();
}

HTML

<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="External.js" type="text/javascript"></script>
</head>
<body onload="MyFunction();">
...
</body>

今、あなたはpopulateHidden() 前に電話しています PassData()

于 2013-02-15T16:51:52.003 に答える