Création d’un champ caché dans code -hind et access via javascript côté client

Je veux append un champ caché par programme à une page asp.net, le lire et le modifier via javascript. Jusqu’à présent, mon code ne parvient pas à lire le champ caché ajouté.

Voici un exemple simple: Default.aspx:

      function myFunction() { var testVar = document.getElementById("myHiddenField1").value; //works: field defined in aspx page var testVar2 = document.getElementById("myHiddenField2").value; //fails, Object required: field defined in codebehind alert(testVar); }    

Default.aspx.cs (inclut ommited):

 public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //Page.RegisterHiddenField( "myHiddenField2", "bla!" ); doesnt work either Page.ClientScript.RegisterHiddenField( "myHiddenField2", "bla" ); } } 

[modifier]

L’erreur que je reçois est la suivante: erreur d’exécution Microsoft JScript: object requirejs. Si j’ajoute une alerte (testVar2) et que j’ignore l’erreur, la boîte de message affiche “non défini”.

[/modifier]

[edit2]

[Suppression supprimée, car je me suis trompé]

[/ edit2]

Résumer ma question: comment créer un champ caché dans codebehind pour pouvoir le récupérer et le définir à partir de javascript?

Vous pouvez essayer quelque chose comme ça:

 protected void Page_Load(object sender, EventArgs e) { HtmlInputHidden hidden2 = new HtmlInputHidden(); hidden2.ID = "Here you will put the id of the control"; hidden2.Value = "Here you will put your value"; this.Controls.Add(hidden2); } 

En haut de votre fichier de code source, vous devez append cette déclaration:

 using System.Web.UI.HtmlControls; 

Le problème principal était que la ligne suivante était manquante dans la page aspx:

 <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> 

Le codebehind n’a jamais été exécuté.