0
は、私は次のコードRegisterStartupScriptは初めて実行されます。 ASP.NET C#のJavaScript
<asp:Panel runat="server" ID="ImagePanel">
<asp:UpdatePanel runat="server" ID="ImageUpdatePanel" UpdateMode="Conditional"><ContentTemplate>
<img id="photo" src="/Icons/Factory Layout.png" style="display: none;"/>
<script type="text/javascript">
function ResetImage(typeOfImage) {
var factoryImage = $("#photo");
if (typeOfImage === 1) {
factoryImage.attr("src",document.getElementById('<%= FactoryImageFileNameHF.ClientID %>').value);
}
else if (typeOfImage === 2) {
factoryImage.attr("src",document.getElementById('<%= IncidentFactoryImageFileNameHF.ClientID %>').value);
}
それは私が背後にあるコードで次のコードを実行しようとしていますResetImage javascript
機能であると.aspxページを持っています。
if (typeOfMap == 1)
{
FactoryImageFileNameHF.Value = fileNameOfFactoryImage.FileFullPath();
ClientScript.RegisterStartupScript(Page.GetType(), "test" + ScriptKeyHF.Value, "ResetImage(1);", true);
ScriptKeyHF.Value = (ScriptKeyHF.Value.ToInt() + 1).ToString();
}
else if (typeOfMap == 2)
{
IncidentFactoryImageFileNameHF.Value = fileNameOfFactoryImage.FileFullPath();
ClientScript.RegisterStartupScript(Page.GetType(), "test" + ScriptKeyHF.Value, "ResetImage(2);", true);
ScriptKeyHF.Value = (ScriptKeyHF.Value.ToInt() + 1).ToString();
}
問題は、私はRegisterStartUpScript
に呼び出していますResetImage()メソッドは、ブラウザ上で初めて実行されることです。ポストバックの2回目と3回目は実行されません。 私はを試しましたが、javascript
コードがある前に実行されています。コードが初めて実行される理由は誰にも分かりません。
質問に不足している詳細があります。起動スクリプトを登録するコードはいつ呼び出されますか?各ポストバックで呼び出されていますか?必要な条件( 'typeOfMap'は1または2に等しい)は真ですか? –
@Scott Hannenスタートアップスクリプトを登録するコードはボタンクリックであり、私たちが想定できるtypeOfMapは1です。ブレークポイントでヒットしたことを確認できます(つまり、RegisterStartupScriptがヒットします)。また、初めてボタンがクリックされると(つまり、RegisterStartupScriptがヒットします)、javascriptのメソッドも実行されますが、次回はボタンがクリックされるとjavascriptメソッドがヒットしません。 –