2013-02-11 86 views
2

我將DataTable綁定到中繼器。然而,當我跑我的aspx頁面它不評估eval語句和網頁上顯示它們爲DataTable和ASP.NET中繼器

<<%# 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; 
    } 

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

在調試信息我可以看到我的DataTable正在使用正確的列名稱,並且這些符合我的eval語句。

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

我看不出爲什麼它會有任何不同。

回答

6

從您的評估聲明中刪除<<。它應該是:

<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>