一个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());
}
本文介绍了一个Gird控件的配置方法及如何通过LINQ将新增的数据保存到数据库的过程。重点讲解了前端按钮触发事件、服务器端处理数据、异常捕获等关键步骤。
6801

被折叠的 条评论
为什么被折叠?



