2012-04-11 9 views
-2

グリッドビューの各行に特定の列にセルを追加するにはどうすればよいですか?RowCreatedイベント。GridViewにセルを追加する

私はグリッドビューに3つの列(ProductName、Price、Count)を持っていますが、データベースから(ProductName、Price)を取得して、(count)、ex:(Kitkat、2 $) (カウント)列に5を追加、私はこの操作を各行が作成されたときに処理したい。あなたのマークアップを示していないので

おかげ

+1

あなたは私にあなたが望むものになる画像を表示することができますか? – Likurg

+0

RowCreatedイベントがありません。 RowDataBoundイベントがあります。しかし、これをセルとして追加したくない場合は、GridViewに列全体を追加し、RowDataBoundイベント中にその列を入力したいだけです。右? – jadarnel27

+0

グリッドビューに3列(ProductName、Price、Count)があり、データベースから(ProductName、Price)を取得しています。(Count)、ex:(Kitkat、2 $) (count)列に、私はこの操作を各行が作成されたときに処理したい。 – Gandhi

答えて

2

は、私が最初の2つの列が<BoundFields>あること(your commentに基づいて)と仮定するつもりです。その場合は、第3列を<TemplateField>として追加し、Labelを入れ、RowDataBoundイベントを使用してLabelに正しい番号を追加します。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    onrowdatabound="GridView1_RowDataBound"> 
    <Columns> 
     <asp:BoundField DataField="ProductName" HeaderText="Product Name" /> 
     <asp:BoundField DataField="Price" HeaderText="Price" /> 
     <asp:TemplateField HeaderText="Count"> 
      <ItemTemplate> 
       <asp:Label ID="countLbl" runat="server"></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

</asp:GridView> 

とコードビハインド:ここ

は、マークアップは次のようになります。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    Label countLbl = (Label)e.Row.FindControl("countLbl"); 
    //Your logic for what number to use should go here, I'm just defaulting to 5. 
    countLbl.Text = "5"; 
} 
+0

助けてくれてありがとう... :) – Gandhi

+0

@ガンジー問題はない、私は助けることができてうれしいです=) – jadarnel27

+0

'FindControl'は' Row'を横断します。このように '' Cell''を指定する必要はありません。 – jwiscarson

関連する問題