从文本框绑定参数DateTime的Gridview在排序时抛出DateTimeException

本文关键字:排序 DateTimeException Gridview 文本 绑定 参数 DateTime | 更新日期: 2023-09-27 18:12:15

我的ASP有问题。显示数据表格。

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

当我输入一个无效的日期时间到ASP。. NET文本框,然后单击GridView的任何一列进行排序,GridView会在PreRender事件中抛出FormatException: "invalid character at position 0"

我如何拦截或阻止用户排序GridView而文本框中有一个无效的日期时间?

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

从文本框绑定参数DateTime的Gridview在排序时抛出DateTimeException

我通过扩展文本框来解决这个问题。OnTextChanged事件如下:

protected void tbTo_TextChanged(object sender, EventArgs e)
{
    DateTime temp;
    if(DateTime.TryParse(tbTo.Text,out temp)==false)
    {
        tbTo.Text = "";
    }
}

在GridView排序之前触发!问题解决了。