2014-03-26 83 views
0

我是新來的Visual Studio,asp.net和C#。我剛剛設法創建了一個數據庫,從我的表格中拉出標題文本,圖像和主要文本,並將這些顯示在我的網頁上。我想讓主頁上的正文顯示主文本的前200個字符。在我的aspx文件我有以下幾點:名稱'hometext'在當前上下文中不存在

<asp:DataList ID="HomeList" runat="server" DataSourceID="SqlDataSource1"> 
    <Itemtemplate> 
     <div id ="titlerecent"><asp:Label ID="hometitle" runat="server" Text='<%# Eval("HomeHeader") %>'/> </div> 
     <br /><p><asp:Label ID="hometext" runat="server" Text='<%# Eval("HomeText") %>'/> </p> 
     <div id='resize'><asp:Image ID="homeimage" runat="server" ImageUrl ='<%#"images/" + Eval("HomeImg") %>' /></div> 
    </Itemtemplate>  
</asp:DataList> 

這一切都顯示隆重,但我的難處,現在正在訪問hometext.Text 我不知道是否和如何我能做到這一點,這樣我可以改變我想要顯示的字符數量。 我一直在我的aspx.cs文件中嘗試下面的代碼,首先將文本存儲在字符串變量中,但它會產生一個錯誤'名稱hometext在當前上下文中不存在'如果任何人都可以請幫助,我將非常感激。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     String str = hometext.Text; 
    } 
} 
+1

你需要處理的是,在'DataList.ItemDataBound'事件並調用e.item.findcontrol( 「hometext」)。我在確切的語法上生鏽了,但是這個事件被調用了datalist中的每個項目。 – fnostro

回答

0

原諒VB,但你應該能夠將其轉換爲C#很輕鬆地

Private Sub HomeList_ItemDataBound(sender As Object, e As DataListItemEventArgs) Handles HomeList.ItemDataBound 

    If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then 
     Dim x As Label = e.Item.FindControl("hometext") 
     x.Text = Left(x.Text, 200) 
    End If 

End Sub 
相關問題