2015-08-28 1 views
0

Je veux lire la page (.aspx) HiddenField Valeur dans le contrôle de l'utilisateur qui est placé sur cette page et traiter une certaine logique.se HiddenField de la page Valeur en UserControl sur la page

, par exemple pour: J'ai un champ caché x sur une page. La page a de nombreux contrôles utilisateur et je veux accéder à ce champ caché (x) dans les contrôles utilisateur où la valeur de x sera définie par un Javascript dans la page.

J'essaie de trouver le HiddenControl et lire sa valeur de codebehind de usercontrol (.ascx.cs), mais toujours obtenir nulle.

HiddenField colname = UIUtils.FindControlRecursive(this.Parent.Page, "MainContent_AssignedTo_ColName") as HiddenField; 

L'ID est le même que le champ masqué du côté client. J'ai essayé this.Parent et this.Parent.Parent pour le premier argument aussi, mais pas de chance.

qu'est-ce qui me manque ici?

Répondre

0

Essayez:

HiddenField colname = (HiddenField)Page.FindControl("The id of control"); 
+0

Désolé, j'ai essayé. Pas de chance Toujours nulle – Programmerzzz

+0

Votre contrôle est-il dans un espace réservé? – JohnCoderMan

+0

Oui, c'est à l'intérieur d'un espace réservé de contenu et c'est la raison pour laquelle nous avons ajouté le MainContent_ à l'ID du Hiddenfield tout en le trouvant. Et le UserControl est également dans le même contenu PlaceHolder – Programmerzzz

0

Voici ma page ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestFindControl._Default" %> 
<%@ Register Src="ReadHiddenField.ascx" TagName="Assign" TagPrefix="uc1" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <asp:HiddenField ID="HiddenField1" runat="server" Value="10"> 
    </asp:HiddenField> 

<asp:placeholder ID="Placeholder1" runat="server"><uc1:Assign id="test" runat="server"></uc1:Assign> </asp:placeholder> 
    </div> 
    </form> 
</body> 
</html> 

et voici mon code derrière le contrôle:

protected void Page_Load(object sender, EventArgs e) 
     { 
      HiddenField test = (HiddenField)Page.FindControl("HiddenField1"); 
      var j = test.Value; 

     } 
+0

J'ai essayé ici aussi mais pas de chance ... Je vais poster mon code de page sous peu. – Programmerzzz

+0

Cela fait un moment que je travaille avec des pages maîtres - mais voici quelque chose à essayer. Essayez d'obtenir le détenteur du contenu d'abord en utilisant la même méthode que celle utilisée pour la première réponse, mais lancez la classe. Remplacez ensuite la page par le nom que vous donnez au détenteur du contenu. Cela peut fonctionner. – JohnCoderMan