2010-07-22 2 views
2

Мне нужно найти значение в TextBox, содержащемся в FormView, который содержит короткую дату.Получить значение DateTime из TextBox в FormView

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

Я получаю ошибку:

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

И я понятия не имею, как поставить значение обратно в том же формате. Хотела бы помочь, вытащила бы мои волосы, и их осталось немного.

Благодаря

+0

решена ваша ошибка ?? –

ответ

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

Я не уверен, что это будет скомпилирован, но даст вам подсказку

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

Существует ошибка в вас коде, потому что вы пытаетесь преобразовать контроль непосредственно в момент даты, так, чтобы решить вашу ошибку необходимо преобразовать управление в текстовом поле и управления, чем преобразовать текст в DateTime, как указано ниже

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

FindControl возвратит Control, а не содержимое элемента управления.

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

 Смежные вопросы

  • Нет связанных вопросов^_^