0

ユーザーが詳細テーブルの行をクリックして、Web コントロールでそのデータを編集する階層的な radGrid があります。

linq to sql を使用してグリッド データを更新するにはどうすればよいですか?

4

2 に答える 2

0

このタスクは、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;
        }
}

このコードが完了すると、グリッドは新しい値で更新されます。

于 2012-05-03T17:46:31.813 に答える