在我的应用程序中,我必须像TextBox
这样:FormView
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”转换为十进制?我想做的是将所有这些无效值转换为空值。做这个的最好方式是什么?