Получить значение DateTime из TextBox в FormView - PullRequest
2 голосов
/ 22 июля 2010

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

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

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

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

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

Спасибо

Ответы [ 4 ]

2 голосов
/ 22 июля 2010
    //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
    }
2 голосов
/ 22 июля 2010

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

 DateTime LastPayDate = Convert.ToDateTime( 
                      ((System.Web.UI.WebControls.TextBox)  
                       FormView1.FindControl("user_last_payment_date")).Text);
2 голосов
/ 22 июля 2010

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

TextBox textBox = (TextBox)FormView1.FindControl("user_last_payment_date");
DateTime LastPayDate = DateTime.Parse(textBox.Text);
1 голос
/ 22 июля 2010

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

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