В моем приложении 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 не является допустимым значением для десятичного числа.
Я понимаю проблему, ASP.NET не знает, как преобразовать из «asdf» в десятичное ?. То, что я хотел бы сделать, это преобразовать все эти недопустимые значения в ноль. Каков наилучший способ сделать это?