0

私は次のリストビューを持っています.2つの主要なセクションがあり、<table>その中にラベルがありdatagridます. Datatable を使用してフィールドに入力しますが、データグリッドをバインドする方法がわかりません。

<asp:ListView 
ID="ListView1" 
    runat="server">
<LayoutTemplate>
   <div id="itemPlaceholderContainer" runat="server" >
    <div id="itemPlaceholder" runat="server" />
       </div>
</LayoutTemplate>
  <ItemTemplate>
<asp:Panel runat="server">
    <table align="center">
        <tr>
            <td>
               <cc1:SWCLabel runat="server" 
                   Text='<%# Eval("field1") %>'
               />
             </td>
             <td>
                 <cc1:SWCLabel runat="server" 
                     Text='<%# Eval("field2") %>'
                 />
             </td>
        </tr>
    </table>

  <asp:DataGrid ID="datagrid_1" runat="server">
        <Columns>
            <asp:BoundColumn  DataField="col1" HeaderText="column1 ">
            </asp:BoundColumn>
            <asp:BoundColumn  DataField="col2" HeaderText="column2 ">
            </asp:BoundColumn>
        </Columns>
    </cc1:SWCDataGrid>
  </asp:Panel>                            
 </ItemTemplate>
</asp:ListView>

私の分離コード:

DataTable table = new DataTable();
// GET DATA
// . . .
ListView1.DataSource = table;
ListView1.DataBind();
4

2 に答える 2

0

ウルグリッドビューはアイテムテンプレートにあるため、リストビューの「アイテムデータバインド」イベントで実行します。

于 2013-01-08T17:40:30.773 に答える
0

データの構造について何かアイデアをいただければ助かると思います。したがって、ListView の各要素に対して DataGrid を表示しようとしています。私にとっては、ListView の各要素には、独自の DataGrid に表示する必要がある一連の関連データがあることを意味します。これを行うには、Listview DataBind コードに加えて、次のようなものが必要です: (VB では、C# に簡単に作成できるはずです)

Protected Sub ListView1_ItemDataBound(ByVal sender As Object, ByVal e As   System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView1.ItemDataBound

        Dim theDataGrid As DataGrid = e.Item.FindControl("datagrid_1")

        Dim itemData As DataTable = GetTheItemData(e.Item.DataItem)

        theDataGrid.DataSource = itemData 
        theDataGrid.DataBind()          

 End Sub

このハンドラーは、リスト ビューの項目が DataBound になるたびに呼び出されます。そのアイテムの関連データを取得するたびに、それを使用してそのアイテムの DataGrid を設定します。

于 2013-01-08T22:31:19.153 に答える