【发布时间】:2010-09-08 19:42:42
【问题描述】:
在我的应用程序中,FormView 中的 TextBox 绑定到 LinqDataSource,如下所示:
<asp:TextBox ID="MyTextBox" runat="server"
Text='<%# Bind("MyValue") %>' AutoPostBack="True"
ontextchanged="MyTextBox_TextChanged" />
protected void MyTextBox_TextChanged(object sender, EventArgs e)
{
MyFormView.UpdateItem(false);
}
这是在UpdatePanel 内,因此对该字段的任何更改都会立即保留。此外,MyValue 的值为decimal?。除非我在字段中输入任何无法转换为十进制的字符串,否则这很好用。在这种情况下,UpdateItem 调用会抛出:
LinqDataSourceValidationException - 未能在类型 MyType 上设置一个或多个属性。 asdf 不是 Decimal 的有效值。
我明白这个问题,ASP.NET 不知道如何将“asdf”转换为十进制?我想做的是将所有这些无效值转换为空值。最好的方法是什么?
【问题讨论】:
标签: asp.net linq linq-to-sql validation data-binding