0

foreach ステートメントで ListView をループしようとしていますが、アイテムのサブアイテムを取得できないようです。Forステートメントでも成功しません。IntelliSense は、両方の方法でそれを提案しません。

コードビハインド:

protected void btnNext_Click(object sender, EventArgs e)
{
    foreach (ListViewItem item in ListView1.Items)
    {
       item. *(here a should get the Subitems)*

    }
}

ASPX

<asp:ListView ID="ListView1" runat="server" DataSourceID="ObjectDataSource1">
    <LayoutTemplate>
      <table>
        <tr>
            <th>Customer</th>
            <th>Item No</th>
        </tr>
         <asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
      </table>   
    </LayoutTemplate>
    <ItemTemplate>    
            <tr>     
                <td>
                    <%# Eval("CustomerName") %>
                </td>
                <td>
                    <%# Eval("Item") %>
                </td>
            </tr> 
    </ItemTemplate>
    </asp:ListView>
4

3 に答える 3

0

以下のようにaspxページを変更する必要があります

<asp:ListView ID="ListView1" runat="server" DataSourceID="ObjectDataSource1">
<LayoutTemplate>
  <table>
    <tr>
        <th>Customer</th>
        <th>Item No</th>
    </tr>
     <asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
  </table>   
</LayoutTemplate>
<ItemTemplate>    
        <tr>     
            <td>
             <asp:Label ID="lblCustomerName" Text='<%# Eval("CustomerName") %>'  runat="server"></asp:Label> 
            </td>
            <td>                    
             <asp:Label ID="lblItem" Text='<%# Eval("Item") %>' runat="server"></asp:Label> 
            </td>
        </tr> 
</ItemTemplate>
</asp:ListView>

コードビハインドファイルで以下のように for each ループを使用する必要があります

string strProductNames = string.Empty;
foreach (ListViewItem item in ListView1.Items)
    {
        Label lblCustomerName= (Label)item.FindControl("lblCustomerName");

       // strProductNames = strProductNames + lblCustomerName.Text + "<br/>";
       // you can get values in lblCustomerName.Text. use this value as per your   requirement
    }

これがあなたに役立つことを願っています..幸せなコーディング

于 2012-08-08T12:29:41.860 に答える
0

DataBound イベントで ListView にバインドされているデータを取得する

listView1_ItemDataBound イベント内で処理されるのと同じ方法で、ループ内のコードを処理します。

于 2012-08-08T12:11:20.113 に答える
0

listview.items を介してループを使用する必要があります

for (int j = 0; j < this.listView1.Items.Count; j++) 
            { 
                ListViewItem item = 
                    (ListViewItem)this.listView1.ItemContainerGenerator.ContainerFromIndex(j); 

            } 
于 2012-08-08T12:05:51.140 に答える