从FormView中的TextBox获取DateTime值

时间:2010-07-22 09:53:11

标签: c# asp.net datetime formview findcontrol

我需要在TextBox中找到一个值,该值包含在一个包含短日期的FormView中。

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

我收到错误:

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

而且,我不知道如何以相同的格式返回值。我会喜欢一些帮助,把我的头发拉出来并留下他们的头发。

由于

4 个答案:

答案 0 :(得分:2)

您的代码中存在错误,因为您尝试直接在日期时间转换控件,因此要解决错误,您需要在文本框控件中转换控件,而不是在datetime中转换文本,如下所示

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

答案 1 :(得分:2)

FindControl将返回Control,而不是控件的内容。

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

答案 2 :(得分: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
    }

答案 3 :(得分:1)

我不确定这会编译,但会给你线索

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