[UserControl] Récupération des valeurs modifiés
Bonsoir !
Voici un problème qui doit être récurrent mais après moult recherche sur le net, m'être basé sur un code que j'ai écrit et qui ressemble beaucoup je n'arrive pas à lire les valeurs d'un de mes UserControl.
Je vais essayer d'expliquer mon cas :
J'ai une pages PointDeControle.aspx qui contient un panel 'Var_controle' dans lequel je stocke des VariablesControles.ascx
// Chargement
Code:
1 2 3 4
| protected void Var_controle_Init(object sender, EventArgs e)
{
Init_ChargeControle();
} |
Je vous passe le détail d'Init_ChargeControle
du côté du UserControl :
Fonction qui me permet d'alimenter la variable qui stocke moult infos
Code:
1 2 3 4
| public void Init(T_ETAT_VARIABLE_CONTROLE _etat_variable_controle)
{
etat_variable_controle = _etat_variable_controle;
} |
// Alimentation des différents labels et textbox du usercontrol
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| protected override void OnInit(EventArgs e)
{
if (!IsPostBack)
{
//etat_variable_controle = _etat_variable_controle;
this.txt_etapegestion.Text = etat_variable_controle.T_REFERENTIEL_VARIABLE_CONTROLE.RVC_TXT_ETAPE_GESTION;
this.txt_objetcontrole.Text = etat_variable_controle.T_REFERENTIEL_VARIABLE_CONTROLE.RVC_TXT_OBJET;
this.txt_mesure_controle.Text = etat_variable_controle.T_REFERENTIEL_VARIABLE_CONTROLE.T_TYPE_MESURE.TYM_TXT_LIBELLE;
this.DDl_resultat.DataSource = ControleInterne.data.Dal.PointControleDal.Get_T_VALEUR_MESUREs_By_ETAT_VARIABLE_CONTROLE(etat_variable_controle);
this.DDl_resultat.DataTextField = "VAM_TXT_LIBELLE";
this.DDl_resultat.DataValueField = "VAM_INT_ID";
this.DDl_resultat.DataBind();
this.txt_commentaire.Text = etat_variable_controle.EVC_TXT_COMMENTAIRE;
if (etat_variable_controle.EVC_INT_ID_VALEUR_MESURE != null)
{
int idvaleurmesure = int.Parse(etat_variable_controle.EVC_INT_ID_VALEUR_MESURE.ToString());
this.DDl_resultat.SelectedValue = idvaleurmesure.ToString();
}
}
base.OnInit(e);
} |
Mon UserControl contient une Dropdownlist et un textbox dont j'aimerais récupérer la valeur (les deux éléments sont à autopostback = false), dans ma page aspx au moment ou je clique que le bouton OK j'appel le code suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| foreach (Control control in Var_controle.Controls)
{
System.Type type = control.GetType();
if (type.BaseType.FullName == "Controle_Interne.VariableControle")
{
VariableControle _ctrl = (VariableControle)control;
T_ETAT_VARIABLE_CONTROLE etat =_ctrl.Get_etat_variable_controle();
}
}
// Fonction Get_etat_variable_controle()
public T_ETAT_VARIABLE_CONTROLE Get_etat_variable_controle()
{
this.etat_variable_controle.EVC_INT_ID_VALEUR_MESURE = int.Parse(this.DDl_resultat.SelectedValue);
this.etat_variable_controle.EVC_TXT_COMMENTAIRE = this.txt_commentaire.Text;
return this.etat_variable_controle;
} |
Mon souci est si je parcours mon panel contenant mes usercontrol il me dit qu'il ne contient plus rien et si je parcours la liste dans laquelle je stocke mes usercontrol, les valeurs this.txt_commentaire.Text et this.DDl_resultat.SelectedValue sont comme au chargement