ユーザーが詳細テーブルの行をクリックして、Web コントロールでそのデータを編集する階層的な radGrid があります。
linq to sql を使用してグリッド データを更新するにはどうすればよいですか?
ユーザーが詳細テーブルの行をクリックして、Web コントロールでそのデータを編集する階層的な radGrid があります。
linq to sql を使用してグリッド データを更新するにはどうすればよいですか?
または、Telerik の Web サイト ( http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/programaticlinqupdates/defaultcs.aspx ) でデモ (非常にシンプルで明確) を調べることができます。
このタスクは、telek が提供する例に従い、次のように変更することで完了しました。
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;
}
}
このコードが完了すると、グリッドは新しい値で更新されます。