В FieldTemplates / Text_Edit.ascx.cs измените поведение строк, сначала удалите валидаторы, потому что они препятствуют отправке формы:
protected void Page_Load(object sender, EventArgs e) {
TextBox1.MaxLength = Column.MaxLength;
if (Column.MaxLength < 20)
TextBox1.Columns = Column.MaxLength;
TextBox1.ToolTip = Column.Description;
if (Column.IsString)
{
this.Controls.Remove(RequiredFieldValidator1);
this.Controls.Remove(RegularExpressionValidator1);
this.Controls.Remove(DynamicValidator1);
}
else
{
SetUpValidator(RequiredFieldValidator1);
SetUpValidator(RegularExpressionValidator1);
SetUpValidator(DynamicValidator1);
}
}
Часть кода, котораяпреобразует пустую строку в NULL где-то в методе ConvertEditedValue, поэтому пропустите это для строк:
protected override void ExtractValues(IOrderedDictionary dictionary)
{
if (Column.IsString)
{
dictionary[Column.Name] = TextBox1.Text;
}
else
{
dictionary[Column.Name] = ConvertEditedValue(TextBox1.Text);
}
}
Теперь вы можете обновлять таблицы с пустыми строками, проблема, конечно, в том, что теперь вы можете установить пустые строки для всехполя varchar не только со значениями по умолчанию.
Я не вижу нигде в моделях данных Linq to SQL или EF, где бы я мог узнать о моем значении по умолчанию для SQL-Server.Существует свойство DefaultValue, но оно всегда равно NULL.