J'ai écrit un javascript avec une page asp.net.
Dans la page 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>
En code-behind
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
Comment puis-je faire?
Ceci est un moyen d'appeler une ou plusieurs Java de script à partir du code précédent. En utilisant Script Manager, nous pouvons appeler les méthodes en séquence. Considérons l'exemple ci-dessous.
ScriptManager.RegisterStartupScript(this, typeof(Page), "UpdateMsg",
"$(document).ready(function(){EnableControls();
alert('Overrides successfully Updated.');DisableControls();});", true);
Dans cette première méthode, EnableControls () est appelé. Ensuite, l'alerte sera affichée. Ensuite, la méthode DisableControls () sera appelée.
Une façon de le faire est d'utiliser le ClientScriptManager
:
Page.ClientScript.RegisterStartupScript(
GetType(),
"MyKey",
"Myfunction();",
true);
Il existe un moyen très simple de le faire. Cela consiste à injecter un code javascript à un contrôle d'étiquette à partir du code situé derrière. voici un exemple de code:
<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>";
Découvrez le code complet ici: http://softmate-technologies.com/javascript-from-CodeBehind.htm (mort)
Lien depuis Internet Archive: https://web.archive.org/web/20120608053720/http://softmate-technologies.com/javascript-from-CodeBehind.htm
Si l'ordre d'exécution n'est pas important et que vous avez besoin de javascript ET de codebehind pour être virés sur un élément asp, voici ce que vous pouvez faire.
Ce que vous pouvez retenir de mon exemple: j'ai une div couvrant le contrôle ASP que je veux exécuter à la fois sur javascript et codebehind. La méthode onClick de la div ET l'événement OnSelectionChanged du calendrier sont tous deux déclenchés. par ici.
Dans cet exemple, j'utilise un ASP contrôle du calendrier) et le contrôle depuis javascript et codebehind:
Code frontal:
<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>
Codebhind:
protected void DatepickerDateChange(object sender, EventArgs e)
{
if (toFromPicked.Value == "MainContent_fromDate")
{
fromDate.Text = DatepickerCalendar.SelectedDate.ToShortDateString();
}
else
{
toDate.Text = DatepickerCalendar.SelectedDate.ToShortDateString();
}
}