BLL层_DataBinder对象以及_DataBinder.Rows[0].EndEdit方法详解
BLL层_DataBinder对象以及_DataBinder.Rows[0].EndEdit方法详解
开发框架基础资料(单表资料)界面,在保存数据前会调用_DataBinder.Rows[0].EndEdit方法更新DataTable的缓存数据。
流程:用户点【保存】按钮 --> 调用BLL.Update方法 --> 调用_DataBinder.Rows[0].EndEdit方法。
_DataBinder对象
_DataBinder对象是个DataTable,用户点击【查看】或【编辑】按钮时创建的DataTable对象,里面只有一条记录,用于缓存当前编辑记录的临时数据。
DoBindingSummaryEditor方法
创建_DataBinder对象后,会调用DoBindingSummaryEditor方法绑定当前界面所有文本编辑框的数据源。
DoBindingEditorPanel方法
框架提供 DoBindingEditorPanel 方法,自动绑定编辑区域的数据源,编辑区域通常使用Panel组件容器。
绑定规则(文本编辑框命名规则):txt+字段名,或者chk+字段名。
统一命名后,打循环遍历当前Panel内所有txtXXX的组件,自动绑定数据源。
C# Code:
for (int i = 0; i <= editorPanel.Controls.Count - 1; i++)
{
if (editorPanel.Controls[i] is BaseEdit)
{
BaseEdit edit = editorPanel.Controls[i] as BaseEdit;
if (edit.Name.Substring(0, 3) == "txt")
{
fieldName = edit.Name.Substring(3, edit.Name.Length - 3);
DataBinder.BindingTextEditBase(edit, dataSource, fieldName);
}
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
if (editorPanel.Controls[i] is BaseEdit)
{
BaseEdit edit = editorPanel.Controls[i] as BaseEdit;
if (edit.Name.Substring(0, 3) == "txt")
{
fieldName = edit.Name.Substring(3, edit.Name.Length - 3);
DataBinder.BindingTextEditBase(edit, dataSource, fieldName);
}
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
详细解释:
数据编辑页面的文本编辑框数据源是绑定_DataBinder对象的,一个文本编辑框绑定一个字段的数据,用户录入资料后,会自动写入_DataBinder对象对应的字段里面。使用_DataBinder.Rows[0].EndEdit方法是告诉DataTable对象已修改完成,同时将当前焦点所在的文本编辑框的数据写入到DataTable对象。
参考:DataRow.EndEdit方法元数据:
C# Code:
//
// 摘要:
// Ends the edit occurring on the row.
//
// 异常:
// T:System.Data.InRowChangingEventException:
// The method was called inside the System.Data.DataTable.RowChanging event.
//
// T:System.Data.ConstraintException:
// The edit broke a constraint.
//
// T:System.Data.ReadOnlyException:
// The row belongs to the table and the edit tried to change the value of a read-only
// column.
//
// T:System.Data.NoNullAllowedException:
// The edit tried to put a null value into a column where System.Data.DataColumn.AllowDBNull
// is false.
[EditorBrowsable(EditorBrowsableState.Advanced)]
public void EndEdit();
//来源:C/S框架网 | www.csframework.com | QQ:23404761
// 摘要:
// Ends the edit occurring on the row.
//
// 异常:
// T:System.Data.InRowChangingEventException:
// The method was called inside the System.Data.DataTable.RowChanging event.
//
// T:System.Data.ConstraintException:
// The edit broke a constraint.
//
// T:System.Data.ReadOnlyException:
// The row belongs to the table and the edit tried to change the value of a read-only
// column.
//
// T:System.Data.NoNullAllowedException:
// The edit tried to put a null value into a column where System.Data.DataColumn.AllowDBNull
// is false.
[EditorBrowsable(EditorBrowsableState.Advanced)]
public void EndEdit();
//来源:C/S框架网 | www.csframework.com | QQ:23404761
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网