2015-06-29 88 views
0

我正在開發一個Windows應用程序使用C#使用DevExpress工具。 我有一個網格,其中包含多個單行查閱編輯。 我必須以這樣一種方式綁定每一行,當第一次查找編輯發生變化時,相鄰查找將在綁定的同一行進行編輯。 我可以使用「添加行」按鈕動態添加行。C#devexpress xtragird與多行lookupedit在行

如何在第一個查找編輯的更改上綁定第二個lookupEdit。 每一個查閱價格變化只有一行受影響應該保持不變。

我一直堅持幾天 - 任何人都可以幫助我嗎?

在此先感謝。

這裏是我的訓練

private void leGridSubinventory_EditValueChanged(object sender, EventArgs e) 
     { 
      gvReservation.PostEditor(); 
      gvReservation.UpdateCurrentRow(); 
      GridView view = gvReservation; 
      var obj = view.GetFocusedRow(); 
      int locationId = Common.intCast(leOutlets.EditValue); 
      LookUpEdit sub = (LookUpEdit)sender; 
      view.SetRowCellValue(view.FocusedRowHandle, view.Columns["itemId"], -1); 
      view.SetRowCellValue(view.FocusedRowHandle, view.Columns["ItemDesc"], ""); 
      view.SetRowCellValue(view.FocusedRowHandle, view.Columns["PrimaryUOM"], ""); 
      view.SetRowCellValue(view.FocusedRowHandle, view.Columns["OnHandQty"], 0); 
      view.SetRowCellValue(view.FocusedRowHandle, view.Columns["OnHandQty"], 0); 
      if (sub.ItemIndex != -1) 
      { 
       int subId = Common.intCast(sub.EditValue); 
       if (subId != -1) 
       { 
        DataTable dtItems = cdm.GetAllItemsBySubinventory(locationId, subId); 
        DataRow locRow = dtItems.NewRow(); 
        locRow["itemId"] = -1; 
        locRow["itemCode"] = "--Select--"; 
        dtItems.Rows.InsertAt(locRow, 0); 

        rleItemCode.DataSource = dtItems; 
        rleItemCode.DisplayMember = "itemCode"; 
        rleItemCode.ValueMember = "itemId"; 


       } 
      } 
     } 

回答

1

正如你所知道的lookuedit對所有行同一數據源。
你需要更新2次
1)在GridView上
2)上的CellValueChanged事件的FocusRowChanged事件數據源(您的第一列)

所以內上述事件調用一個函數UpdateLokkupDatasource 。
在這個函數中得到關注的行(這樣你就可以讀第一場)和更新數據源

不要忘了辦理第二lookupEdit的CustomDisplayText事件(你需要這個,因爲這樣的值將不存在在新的數據源中)

相關問題