2017-09-21 6 views
0

をBoundfieldを使用して上の任意のbenefitisがあります:は、テンプレートフィールド上でASP.NETのGridViewの場合

私はテンプレートフィールド上Boundfieldを使用して上の任意のメリットがあるかどうかを知りたいです。私は考えることができる

唯一の利点は、単純boundfieldを使用している、それはより少ないコードを必要とします。

私がバインドされたフィールドから値を取得するためにハードコードされた列のインデックスを使用して好きではない主な理由は、私のコード内のすべてのバインドフィールドを取り除くためにplannningとテンプレートのフィールドに置き換えますよ。

string name=GridViewCurrentRow.Cells[13].Text 

私はむしろ行クラスのFindControl("ControlID")メソッドを使用することになり、これは私がテンプレートフィールドを使用している場合のみ、なんとかなるように見えます。

は、私は何かが足りない、または任意の懸念があるのですか?シェアしてください。

+0

[テンプレート]フィールドを使用すると、代わりにその列フィールドの異なるレンダリングが必要な場合は、デフォルトのレンダリング(バインドフィールド) – Legends

答えて

-1

これはにFindControlと同じことをして、テンプレートのフィールドを必要としない:GridViewRow行とインデックスを作成した後

row.Cells[1].Controls[0] 

int i = Convert.ToInt32(e.CommandArgument); 
GridViewRow row = grid.Rows[i]; 
+0

あなたは私の質問を読んでいる場合、私は、インデックスを使用しない言及しました。これが主要なポイントです。 –

0

あなたは両方のBoundFieldでFindControl("ControlID")を使用することができますし、 TemplateFieldはGridViewRowのクラスで、両方のフィールドではありません。

他方で:あなたが唯一のデフォルトとしてテキスト/データを表示したいとき

  • BoundFieldが使用されています。
  • TemplateFieldはあなたに異なるデザインとスタイルでのGridViewでデータの列のカスタマイズの詳細に制御できます。 HTMLとWebコントロールの複数のオプションが可能です。

BoundField and TemplateField

+0

読み取り専用のバウンドフィールドにはコントロールが含まれていません。したがって、FindControlは使用できません。 –

+0

はいデータを表示するために唯一の使用。 findcontrolはセルからデータを読み込みます。 – AsifAli72090

関連する問題