2013-07-18 134 views
0

我在我的winform中使用了一個XtraGridView控件。現在我添加了一個RepositoryItemHyperLinkEdit它。但我想根據行數據顯示/隱藏每個鏈接。repositoryitemhyperlinkedit根據行數據顯示/隱藏

我該如何做到這一點?

感謝您的幫助..

我試了下代碼,但沒有奏效,細胞也不能爲空。 (「顯示鏈接」的部分是好的,但的String.Empty不工作)

private void xgvGrid_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) 
     { 
      if (e.Column == gcControlField) 
      { 
       if (xgvGrid.GetFocusedRowCellValue("ControlField") != null) 
       { 
        if (xgvGrid.GetFocusedRowCellValue("ControlField").ToString() == "LINK") 
         e.DisplayText = "Show link"; 
        else 
         e.DisplayText = string.Empty; 
       } 
      } 
     } 

回答

0

您可以在事件GridView.CustomColumnDisplayText添加您的檢查。

例如每一行綁定到Person實例

private void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) 
{ 
    // gcLink is your column using repositoryitemhyperlinkedit 
    if (e.Column == gcLink) 
    { 
     var person = gridView1.GetRow(e.RowHandle) as Person; 
     if (person != null) 
     { 
      // Logic to show/hide the link based on other field 
      if (person.FirstName == "John") 
       e.DisplayText = string.Empty; 
      else 
       e.DisplayText = person.Link; 
     } 
    } 
} 
+0

它沒有工作或我做錯了什麼:/ 我加我嘗試代碼的問題... – user983924

+0

在你的代碼中,每一行,你總是檢查焦點行以確定是否應該顯示鏈接。我認爲你應該使用類似'var person = gridView1.GetRow(e.RowHandle)'的Person;'爲每一行獲取綁定對象,然後檢查show/hide。 – Fung