2009-10-15 7 views
0

J'ai un formview dont l'événement charge vient de décider d'arrêter de travailler. J'ai fait du débogage et j'ai remarqué qu'il atteignait le code, mais pour une raison quelconque, les attributs que j'ajoute dans l'événement load n'apparaissent plus à l'écran. C'est comme si quelque chose se passait après l'événement load de formview qui le recharge sans aucun de mes attributs supplémentaires. La seule modification que j'ai faite avant qu'il ne cesse de fonctionner est que j'ai ajouté une variable de session dans la page avant elle. Cela ne devrait pas provoquer un changement aussi radical.FormView_Load étant écrasé C# ASP.NET

Voici mon code:

protected void FormView1_Load(object sender, EventArgs e) 
{ 
    RadioButton rbinjury = (RadioButton)FormView1.FindControl("rbinjury"); 
    RadioButton rbproperty = (RadioButton)FormView1.FindControl("rbproperty"); 
    RadioButton rbboth = (RadioButton)FormView1.FindControl("rbboth"); 
    RadioButton rbyes = (RadioButton)FormView1.FindControl("rbyes"); 
    RadioButton rbno = (RadioButton)FormView1.FindControl("rbno"); 
    RadioButton rbyes2 = (RadioButton)FormView1.FindControl("rbyes2"); 
    RadioButton rbno2 = (RadioButton)FormView1.FindControl("rbno2"); 
    RadioButton rbam = (RadioButton)FormView1.FindControl("rbam"); 
    RadioButton rbpm = (RadioButton)FormView1.FindControl("rbpm"); 

    TextBox txtdate = (TextBox)FormView1.FindControl("txtdate"); 
    DropDownList ddlhour = (DropDownList)FormView1.FindControl("ddlhour"); 
    DropDownList ddltime = (DropDownList)FormView1.FindControl("ddltime"); 
    if (FormView1.CurrentMode == FormViewMode.Insert || FormView1.CurrentMode == FormViewMode.Edit) 
    { 
     txtdate.Attributes.Add("onfocus", "unfocus();"); 
     locList.Attributes.Add("onChange", "postBack();"); 
     ddlhour.Items.Insert(0, new ListItem("Hour", "0")); 
     ddlhour.Items.Insert(1, new ListItem("12", "12")); 
     ddltime.Items.Insert(0, new ListItem("Minute", "0")); 
     for (int i = 1; i < 12; i++) 
     { 
      String hour = Convert.ToString(i); 
      ddlhour.Items.Add(new ListItem(hour, hour)); 
     } 

     for (int i = 0; i < 61; i++) 
     { 
      String time = ""; 
      if (i < 10) 
      { 
       time = ":0" + Convert.ToString(i); 
      } 
      else 
      { 
       time = ":" + Convert.ToString(i); 
      } 
      ddltime.Items.Add(new ListItem(time, time)); 
     } 
     //-----------------------------------------handle radio buttons---------------------------------------------------------------- 
     rbinjury.Attributes.Add("Onclick", "radio('rbinjury','result');"); 
     rbproperty.Attributes.Add("Onclick", "radio('rbproperty','result');"); 
     rbboth.Attributes.Add("Onclick", "radio('rbboth','result');"); 

     rbyes.Attributes.Add("Onclick", "radio('rbyes','inj');"); 
     rbno.Attributes.Add("Onclick", "radio('rbno','inj');"); 

     rbyes2.Attributes.Add("Onclick", "radio('rbyes2','dmg');"); 
     rbno2.Attributes.Add("Onclick", "radio('rbno2','dmg');"); 

     rbam.Attributes.Add("Onclick", "radio('rbam','time');"); 
     rbpm.Attributes.Add("Onclick", "radio('rbpm','time');"); 
    }} 

Toute idée de ce qui provoquerait l'événement de charge d'arrêter de travailler? Si je place ce même code dans l'événement complet de la page sauver l'état, il fonctionne, mais je ne devrais pas avoir à ...

Répondre

0

vous devez utiliser formview événement Databound au lieu de l'événement de charge FormView pour définir les valeurs, essayez à l'aide cette

protected void frm_DataBound(object sender, EventArgs e) 
{ 
    if (frm.CurrentMode == FormViewMode.Edit) 
    { 
     TextBox txtdate = (TextBox)frm.FindControl("txtdate"); 
     txtdate.Attributes.Add("", ""); 
    } 
} 

Vérifiez également ces threads. ASP.NET Can not Change Visibility of a Formview control FormView.FindControl(): object reference error