2010-09-16 74 views
1

我有一個System.Data.DataTable,它綁定到一個GridView。如果用戶沒有特定的安全角色,我想用「X」替換某些列中的數據。我可以在不循環所有行的情況下執行此操作嗎?更改DataTable列中每個單元格的值

回答

1

你也可以在後端做到這一點。將用戶標識或角色傳遞給僅返回可查看列的sp,併爲其無法看到的列添加'X'值,並將UI綁定到該列。

+0

使用此解決方案,因爲它不需要通過行或多個角色檢查的額外循環。角色檢查過程有一點涉及。 – RememberME 2010-09-16 20:45:09

2

如果用戶的安全角色不足,則實現GridView的RowDataBound事件並在其中進行更改。

void CusomGridView_RowDataBound(Object sender, GridViewRowEventArgs e) 
    { 
    if(User.Role != "Admin") 
    { 
     e.Row.Cells[1].Text = "X"; 

    } 
    } 
2

嚴格地說,沒有。您可以使用Linq風格的擴展方法來隱藏實現,但過程語言中的任何代碼都將涉及遍歷行的迭代循環。即使是RowDataBound事件也會被每一行迭代地觸發;然而,無論如何,它是遍歷行,所以至少你不會重複循環行爲。

1

您可以簡單地使用第二列,並將其命名爲「您的column2」 ,填充x個數據,然後根據管理員訪問級別確定哪個列是可見的。

在VB.NET中,您無法更改每行的值而無需遞歸。

相關問題