2017-02-26 6 views
0

の後ろにコードからASP.NET C#でコントロールをListViewコントロールする制御しますが動的に子を追加すると、これは、ファイルの後ろに私のコードでファイル

ImageButton img = new ImageButton(); 
img.AlternateText = "<%# Eval(\"colA\") %>"; 
img.ImageUrl = "~/img.png"; 
img.ID = "img"; 
ListView3.Controls.Add(img); 
ListView3.DataSource = ds; //DataSet containing column - colA with 20 rows 
ListView3.DataBind(); 

私は基本的には、いくつかの処理後に生成される、コントロールを追加しようとしていますリストビューコントロールに;それは

ListView3.DataBind(); 

An exception of type 'System.InvalidOperationException' occurred in System.Web.Extensions.dll but was not handled in user code Additional information: An item placeholder must be specified on ListView 'ListView3'. Specify an item placeholder by setting a control's ID property to "itemPlaceholder". The item placeholder control must also specify runat="server".

で私にエラーを与え続け、これが私のListView3コードです:

<asp:ListView ID="ListView3" runat="server"> 
    <LayoutTemplate> 
     <table id="itemPlaceholderContainer" runat="server"> 
      <tr id="itemPlaceholder" runat="server"></tr> 
     </table> 
    </LayoutTemplate> 
    <ItemTemplate> 

    </ItemTemplate> 
</asp:ListView> 

私はグループテンプレートおよびプレースホルダコントロールを試してみました。しかし、私はプレースホルダで間違いを犯した可能性があると思います。 私はこのエラーを理解してください! ありがとうございます。

答えて

0

あなたはItemTemplate

<ItemTemplate> 
    <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/img.png" AlternateText='<%# Eval("colA") %>' /> 
</ItemTemplate> 

内に直接画像を置くことができる。しかし、あなたのエラーを解決するために。 ListViewはアイテムを繰り返します。コントロールを追加する場合は、インデックスを指定する必要があります。

ListView3.Items[i].Controls.Add(img); 
関連する問題