我有一个分层 radGrid,用户单击详细信息表上的一行以在 Web 控件中编辑其数据。
如何使用 linq to sql 更新网格数据?
我有一个分层 radGrid,用户单击详细信息表上的一行以在 Web 控件中编辑其数据。
如何使用 linq to sql 更新网格数据?
或者,您可以在 Telerik 的网站上查看演示(非常简单明了):http: //demos.telerik.com/aspnet-ajax/grid/examples/dataediting/programaticlinqupdates/defaultcs.aspx
我按照telerik提供的示例完成了这项任务,并对其进行了如下修改:
protected void RadGridProductionOrders_UpdateCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
GridEditableItem editedItem = e.Item as GridEditableItem;
UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID);
ProductionOrderDetail productionOrderDetail = new ProductionOrderDetail();
ProductionDataContext db = new ProductionDataContext();
productionOrderDetail = (from p in db.ProductionOrderDetails
where p.orderNo == editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["orderNo"]
&& p.itemCode == editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["itemCode"]
select p).Single();
productionOrderDetail.qty = int.Parse((userControl.FindControl("TextBoxQty") as TextBox).Text);
try
{
db.SubmitChanges();
}
catch(Exception ex)
{
Label lblError = new Label();
lblError.Text = "Unable to update Production Order data. Reason: " + ex.Message;
lblError.ForeColor = System.Drawing.Color.Red;
RadGridProductionOrders.Controls.Add(lblError);
e.Canceled = true;
}
}
在此代码完成后,网格将更新为新值。