2010-07-22 14 views
2

Je dois trouver une valeur dans un TextBox, contenu dans un FormView qui contient une date courte.Récupère la valeur DateTime de TextBox dans FormView

DateTime LastPayDate = (DateTime)FormView1.FindControl("user_last_payment_date"); 

j'obtiens l'erreur:

CS0030: Cannot convert type 'System.Web.UI.Control' to 'System.DateTime' 

Et, je ne sais pas comment mettre une valeur de retour dans le même format. J'adorerais un peu d'aide, en tirant mes cheveux et il ne leur reste plus grand chose.

Merci

+0

est votre erreur résolu ?? –

Répondre

2
//If you really need to find the textbox 
    TextBox dateTextBox = 
      FormView1.FindControl("user_last_payment_date") as TextBox; 

    if(dateTextBox == null) 
    { 
     //could not locate text box 
     //throw exception? 
    } 

    DateTime date = DateTime.MinValue; 

    bool parseResult = DateTime.TryParse(dateTextBox.Text, out date); 

    if(parseResult) 
    { 
     //parse was successful, continue 
    } 
1

Je ne suis pas sûr que cela compilé, mais vous donnera l'indice

DateTime LastPayDate = DateTime.Parse((TextBox)FormView1.FindControl("user_last_payment_date")).Text); 
2

Il y a erreur dans votre code parce que vous essayez de convertir le contrôle directement dans le temps de la date, afin de résoudre votre erreur, vous devez convertir le contrôle dans le contrôle de zone de texte et de convertir le texte en datetime comme indiqué ci-dessous

DateTime LastPayDate = Convert.ToDateTime( 
         ((System.Web.UI.WebControls.TextBox) 
         FormView1.FindControl("user_last_payment_date")).Text); 
2

FindControl renverra une Control, pas le contenu du contrôle.

TextBox textBox = (TextBox)FormView1.FindControl("user_last_payment_date"); 
DateTime LastPayDate = DateTime.Parse(textBox.Text);