您的位置:首页 > 产品设计 > UI/UE

FineUI Gird单元格编辑 保存新增的一行到数据库 LINQ

2016-03-22 15:48 549 查看
一个Gird的页面定义:

<f:Grid ID="Grid1" ShowBorder="false" ShowHeader="false"   Width="850px" SortField="BIN" SortDirection="ASC"
PageSize="15" AllowPaging="true" IsDatabasePaging="true" OnPageIndexChange="Grid1_PageIndexChange"
runat="server" DataKeyNames="BIN" AllowCellEditing="true" ClicksToEdit="2"  AllowSorting="true">


新增button准备:



注意新增button的定义:

<f:Button ID="Button_add1" Text="新增" Icon="Add" EnablePostBack="false" runat="server" CssClass="marginr"/>


服务器页面对button绑定到客户端的新增事件:

// 客户端绑定 新增数据事件
Button_add1.OnClientClick = Grid1.GetAddNewRecordReference(defaultObj1, true);


服务器处理新增的一行数据到数据库:

linq.DataClasses_BINDataContext db = new linq.DataClasses_BINDataContext();

//保存新增数据 仓位
List<Dictionary<string, object>> newAddedList = Grid1.GetNewAddedList();

if  (newAddedList.Count > 0)
{

foreach (var dic in newAddedList)
{

if (mytools.s(dic["BIN"]).Length == 0)
{
Alert.Show("关键字段不能为空!");
return;
}

linq.MM_BIN one = new linq.MM_BIN();

one.WERKS = mytools.s(DropDownList_WERKS.SelectedItem.Text);
one.LGORT = mytools.s(DropDownList_LGORT.SelectedItem.Text);

one.BIN = mytools.s(dic["BIN"]);
one.BIN_NAME = mytools.s(dic["BIN_NAME"]);
one.BIN_MAX = mytools.d(dic["BIN_MAX"]);
one.BIN_MIN = mytools.d(dic["BIN_MIN"]);
one.MEINS = mytools.s(dic["MEINS"]);
one.STORAGE_TYPE = mytools.s(dic["STORAGE_TYPE"]);

one.BINPOP = mytools.s(dic["BINPOP"]);

one.ERSDA = mytools.t(DateTime.Now.ToString("yyyy-MM-dd"));
one.ZUSER = mytools.s(Session["username"].ToString());

db.MM_BIN.InsertOnSubmit(one);
}

db.SubmitChanges();
BindGrid1();
}


Grid1.GetNewAddedList(); 是前端控件传递到服务器的新增数据,我们使用LINQ TO SQL把新增的数据保存到数据库中。

保存时注意主键如果相同,肯定会出现异常,我们只要抛出即可:

try
{
db.SubmitChanges();
}

catch (Exception ex)
{
FineUI.Alert.Show(ex.Message.ToString());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: