C# 带有绑定参数DateTime from Textbox的Gridview在排序时抛出DateTimeException
我在使用ASP.NET GridView时遇到问题 GridView设置为通过SqlDataSource从存储过程中检索行。Gridview有一个BoundField,它从表单上的ASP.NET文本框中为存储过程填充DateTime参数 当我在ASP.NET文本框中输入无效的日期时间,然后单击GridView的任何列对其进行排序时,GridView在其PreRender事件中抛出FormatException:“位置0处的无效字符” 当文本框中的日期时间无效时,如何拦截或阻止用户对GridView进行排序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
我已经尝试过表单验证器,但看起来它们没有考虑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验证事件?