2011-01-26 9 views
-2

私はDetailsViewにたくさんのフィールドを持っていますが、いくつかの種類のユーザーだけを編集したいとします。彼らは別のDetailsViewにそれらを分割するにはあまりにも少ないので、私はいくつかのコードビハインドロジックに基づいてユーザーを編集できるようにする方法を見つけることを考えています。条件付きでDetailsViewフィールドを読み取り専用にする方法はありますか?

フィールドがTemplateFieldであり、通常のBoundFieldではなく、ReadOnlyのプロパティであることが重要だと感じています。

アイデア?何らかの理由で、必要な機能がドキュメントを読むことから私に跳躍することはありません。

ああ、私は具体的な値を見るためにeveyoneが必要です。編集アクセスを制限したいだけです。

+0

なぜこれが下落してしまうのだろうと思っています。スパムか不明瞭なものではなく、コードを要求しているだけではありません。 – Blindy

答えて

3

Hrm明らかに、問題のフィールドのEditItemTemplateプロパティをnullに設定するだけで簡単でした。これまでのところうまく動作しているようだ!

編集:私はそれをやったかを示す短いコードサンプル:fieldstoignoreは、私は常に編集可能として設定されているフィールドヘッダーの配列です

 foreach (DataControlField field in dvDRDetails.Fields) 
      if (!fieldstoignore.Contains(field.HeaderText)) 
       if (field is TemplateField) 
        ((TemplateField)field).EditItemTemplate = null; 
       else if (field is BoundField) 
        ((BoundField)field).ReadOnly = true; 

。残りは2つのカテゴリに分類されます。上記のハックを必要とするTemplateFieldと、ReadOnlyプロパティを持つBoundFieldというプロパティがあります。

関連する問題