2012-04-14 10 views
1

私はグリッドビューを持つページを持っています。グリッドビューには、デフォルトで「編集を有効にする」と「削除を有効にする」がオンになっています。私は、コードビハインドのpage_loadイベントでこれらのいずれかを「チェックを外す」ことができるようにしたい。ロールに基づいてコマンド列の一部を表示

私はthis SO questionを見つけましたが、これはコマンド列全体を非表示にします。私は、ユーザーの役割に基づいて "編集"または "削除"ハイパーリンクを非表示にしたいだけです。これをどうやってやりますか?

答えて

2

あなたのGridViewにこれを追加します。ondatabound =「GridView1_DataBound」 別のコマンド列をGridViewコントロールに

<asp:CommandField ShowDeleteButton="True" /> 
<asp:CommandField ShowEditButton="True" /> 

protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
     if (User.IsInRole("Administrator")) 
     { 
      GridView1.Columns[0].Visible = true; 
      GridView1.Columns[1].Visible = true; 
     } 
     else { 
      GridView1.Columns[0].Visible = false; 
     } 
} 

変更を列インデックスを、あなたの要件に基づいて、最初の列は0

+0

おかげで、のdidnです私はちょうどそのような司令部を分けることができたことを知っている。 – Mekswoll

+0

ユーザーチェックをユーティリティクラスに移動すると、すべてのページでハードコーディングの役割を回避できます。 –

関連する問題