C# 带有绑定参数DateTime from Textbox的Gridview在排序时抛出DateTimeException

C# 带有绑定参数DateTime from Textbox的Gridview在排序时抛出DateTimeException,c#,datetime,gridview,sqldatasource,formatexception,C#,Datetime,Gridview,Sqldatasource,Formatexception,我在使用ASP.NET GridView时遇到问题 GridView设置为通过SqlDataSource从存储过程中检索行。Gridview有一个BoundField,它从表单上的ASP.NET文本框中为存储过程填充DateTime参数 当我在ASP.NET文本框中输入无效的日期时间,然后单击GridView的任何列对其进行排序时,GridView在其PreRender事件中抛出FormatException:“位置0处的无效字符” 当文本框中的日期时间无效时,如何拦截或阻止用户对GridVie

我在使用ASP.NET GridView时遇到问题

GridView设置为通过SqlDataSource从存储过程中检索行。Gridview有一个BoundField,它从表单上的ASP.NET文本框中为存储过程填充DateTime参数

当我在ASP.NET文本框中输入无效的日期时间,然后单击GridView的任何列对其进行排序时,GridView在其PreRender事件中抛出FormatException:“位置0处的无效字符”

当文本框中的日期时间无效时,如何拦截或阻止用户对GridView进行排序


我已经尝试过表单验证器,但看起来它们没有考虑GridView的点击。我的一个想法是手动执行数据绑定和排序,这样我就可以停止正在进行的错误排序。有什么想法吗?

我通过扩展Textbox.OnTextChanged事件解决了这个问题,如下所示:

protected void tbTo_TextChanged(object sender, EventArgs e)
{
    DateTime temp;

    if(DateTime.TryParse(tbTo.Text,out temp)==false)
    {
        tbTo.Text = "";
    }
}

这会在GridView排序之前触发!问题已解决。

您是否尝试过TextBox\u验证事件?