簡體   English   中英

DataTable和ASP.NET Repeater

[英]DataTable and ASP.NET Repeater

我正在將DataTable綁定到轉發器。 但是,當我運行我的aspx頁面時,它不會評估Eval語句並在頁面上顯示它們

<<%# Eval("Name").ToString() %> Posted by: <<%# Eval("UserName").ToString() %>
<<%# Eval("Name").ToString() %> Posted by: <<%# Eval("UserName").ToString() %>
<<%# Eval("Name").ToString() %> Posted by: <<%# Eval("UserName").ToString() %>

它也將它分解為3行。 這也不是我的預期。 我以為它通常會顯示為跨度

我已經取出.ToString來檢查是否是導致問題的原因。 但事實並非如此。

下面是我的中繼器

<asp:Repeater ID="First" runat="server">
        <ItemTemplate>
            <div class="ItemDiv">
                <span class="ItemLeft"></span>
                <span class="ItemCentre">
                    <asp:Label ID="Name" runat="server" Text='<<%# Eval("Name").ToString() %>'></asp:Label>
                </span>
                <span class="ItemRight">
                    <asp:Label ID="UserName" runat="server" Text='<<%# Eval("UserName").ToString() %>'></asp:Label>
                </span>
            </div>
        </ItemTemplate>
    </asp:Repeater>

要綁定的代碼如下:

public void dataLoad()
{
    DataTable Data = loadData(1,1,1);

    if (Data.Rows.Count < 10)
    {
        // Only populate the data from datatable
        First.DataSource = Data;
        First.DataBind();
        Second.Visible = false;
        noData.Visible = true;
    }

我已經改變了上面例子中的一些名字

在Debug信息中,我可以看到我的DataTable使用了正確的列名,並且這些名稱與我的eval語句匹配。

我知道我已經以一種相當奇怪的方式創建了這個,從我讀過的內容和在線研究中,更常見的是使用表而不是Divs /或Spans。 所以我意識到這可能是它的核心問題。

我不明白為什么會有任何不同。

從您的eval語句中刪除<< 它應該是:

<div class="ItemDiv">
    <span class="ItemLeft"></span>
    <span class="ItemCentre">
        <asp:Label ID="Name" runat="server" Text='<%# Eval("Name").ToString() %>'></asp:Label>
    </span>
    <span class="ItemRight">
        <asp:Label ID="UserName" runat="server" Text='<%# Eval("UserName").ToString() %>'></asp:Label>
    </span>
</div>

暫無
暫無

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

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