Asp.netページでjavascriptを書きました。
Asp.netページ
<HTML> <HEAD>
<script type="text/javascript">
function Myfunction(){
document.getElementId('MyText').value="hi";
}
</script>
</HEAD> <BODY>
<input type="text" id="MyText" runat="server" /> </BODY>
コードビハインドで
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
If Session("My")= "Hi" Then
I want to call "Myfunction" javascript function
End If
End Sub
どのようにできるのか?
これは、コードビハインドから1つ以上のJavaスクリプトメソッドを呼び出す方法です。 Script Managerを使用すると、メソッドを順番に呼び出すことができます。以下の場所の敵の例を考えてみましょう。
ScriptManager.RegisterStartupScript(this, typeof(Page), "UpdateMsg",
"$(document).ready(function(){EnableControls();
alert('Overrides successfully Updated.');DisableControls();});", true);
この最初のメソッドでは、EnableControls()が呼び出されます。次に、アラートが表示されます。次に、DisableControls()メソッドが呼び出されます。
それを行う1つの方法は、ClientScriptManager
を使用することです。
Page.ClientScript.RegisterStartupScript(
GetType(),
"MyKey",
"Myfunction();",
true);
これを行うことができる非常に簡単な方法があります。これには、コードビハインドからラベルコントロールにJavaScriptコードを挿入することが含まれます。サンプルコードは次のとおりです。
<head runat="server">
<title>Calling javascript function from code behind example</title>
<script type="text/javascript">
function showDialogue() {
alert("this dialogue has been invoked through codebehind.");
}
</script>
</head>
..........
lblJavaScript.Text = "<script type='text/javascript'>showDialogue();</script>";
完全なコードはこちらをご覧ください。 http://softmate-technologies.com/javascript-from-CodeBehind.htm (デッド)
インターネットアーカイブからのリンク: https://web.archive.org/web/20120608053720/http://softmate-technologies.com/javascript-from-CodeBehind.htm
実行の順序が重要ではなく、asp要素で起動するjavascriptとコードビハインドの両方が必要な場合は、次のようにします。
私の例から何を奪うことができますか:ASPコントロールをカバーするdivがあり、javascriptとcodebehindの両方を実行したいのです。 divのonClickメソッドとカレンダーのOnSelectionChangedイベントの両方がこの方法で発生します。
この例では、ASP Calendarコントロールを使用しており、javascriptと分離コードの両方からそれを制御しています。
フロントエンドコード:
<div onclick="showHideModal();">
<asp:Calendar
OnSelectionChanged="DatepickerDateChange" ID="DatepickerCalendar" runat="server"
BorderWidth="1px" DayNameFormat="Shortest" Font-Names="Verdana"
Font-Size="8pt" ShowGridLines="true" BackColor="#B8C9E1" BorderColor="#003E51" Width="100%">
<OtherMonthDayStyle ForeColor="#6C5D34"> </OtherMonthDayStyle>
<DayHeaderStyle ForeColor="black" BackColor="#D19000"> </DayHeaderStyle>
<TitleStyle BackColor="#B8C9E1" ForeColor="Black"> </TitleStyle>
<DayStyle BackColor="White"> </DayStyle>
<SelectedDayStyle BackColor="#003E51" Font-Bold="True"> </SelectedDayStyle>
</asp:Calendar>
</div>
分離コード:
protected void DatepickerDateChange(object sender, EventArgs e)
{
if (toFromPicked.Value == "MainContent_fromDate")
{
fromDate.Text = DatepickerCalendar.SelectedDate.ToShortDateString();
}
else
{
toDate.Text = DatepickerCalendar.SelectedDate.ToShortDateString();
}
}