簡體   English   中英

ASP.NET中的數據綁定:ListView

[英]Data binding in asp.net : listview

我是使用.net進行Web開發的新手,在將數據從業務邏輯綁定到表時遇到問題。 我基本上是在嘗試動態填充表。

我要填充的列表視圖中的表

<asp:ListView ID="processList" runat="server" 
            DataKeyNames="procName" GroupItemCount="1"
            ItemType="SerMon.RemoteProcess" SelectMethod="fetchFromQueue">
            <EmptyDataTemplate>
                <table >
                    <tr>
                        <td>No data was returned.</td>
                    </tr>
                </table>
            </EmptyDataTemplate>
            <EmptyItemTemplate>
                <td/>
            </EmptyItemTemplate>
            <GroupTemplate>
                <tr id="itemPlaceholderContainer" runat="server">
                    <td id="itemPlaceholder" runat="server"></td>
                </tr>
            </GroupTemplate>
            <ItemTemplate>
                <td runat="server">
                    <table id="myTable" class="table table-striped table-hover ">
                        <thead>
                            <tr>
                                <th>#</th>
                                <th>Process</th>
                                <th>Status</th>
                                <th>Machine</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>1</td>
                                <td>
                                    <asp:Label runat="server" ID="lblId"><%#: Item.ProcName%></asp:Label></td>
                                <td>
                                    <asp:Label runat="server" ID="Label1"><%#: Item.Procstatus%></asp:Label></td>
                                <td>
                                    <asp:Label runat="server" ID="Label2"><%#: Item.mcName%></asp:Label></td>
                            </tr>
                            <tr>
                        </tbody>
                    </table>

                    </p>
                </td>
            </ItemTemplate>

        </asp:ListView>

填充表格的方法

public List<RemoteProcess> fetchFromQueue()
    {
        List<RemoteProcess> pl = new List<RemoteProcess>();
        foreach (CloudQueueMessage message in queue.GetMessages(5, TimeSpan.FromMinutes(1)))
        {
            Debug.Write(message.AsString);
            RemoteProcess m = JsonConvert.DeserializeObject<RemoteProcess>(message.AsString);
            pl.Add(m);
            //queue.DeleteMessage(message);
        }
        return pl;
    }

該表已生成,但是沒有數據。 同樣出於某種奇怪的原因,會生成五個表(該表始終等於getMessage函數中指定的數量)

我不確定ListView中是否需要GroupTemplate。 獲得多個表的原因是,您已在項目模板中定義了表頭和行。 ItemTemplate應該僅具有項目顯示的結構。 LayoutTemplate應該具有數據外觀的整體布局結構。

我已經更改了ListView,使它看起來像一個適當的表。

<asp:ListView ID="processList" runat="server"
    DataKeyNames="procName" 
    ItemType="WebApplication1.Models.RemoteProcess" SelectMethod="fetchFromQueue">
    <EmptyDataTemplate>
        <table>
            <tr>
                <td>No data was returned.</td>
            </tr>
        </table>
    </EmptyDataTemplate>
    <EmptyItemTemplate>
        <td />
    </EmptyItemTemplate>
    <LayoutTemplate>
        <table runat="server" id="table1">
            <thead>
                <tr runat="server">
                    <th>#</th>
                    <th>Process</th>
                    <th>Status</th>
                    <th>Machine</th>
                </tr>
                 <tr id="itemPlaceholder" runat="server"></tr>
            </thead>
        </table>
    </LayoutTemplate>
    <ItemTemplate>
        <tr runat="server">
            <td>1</td>
            <td>
                <asp:Label runat="server" ID="lblId"><%#: Item.procName%></asp:Label></td>
            <td>
                <asp:Label runat="server" ID="Label1"><%#: Item.Procstatus%></asp:Label></td>
            <td>
                <asp:Label runat="server" ID="Label2"><%#: Item.mcName%></asp:Label></td>
        </tr>
    </ItemTemplate>
</asp:ListView>

請注意,由於我不確定如何對數據進行分組,因此我刪除了GroupTemplate及其相關的設置。

這應該有助於解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM