2011-08-03 30 views
1

下面是我的中继器的代码,一切工作正常,但我有一个问题:中继器数据绑定,与某些数据的操作

<span class="txsources">Sources: </span>结束以后,我希望把链接从中继器,在数据源代码背后有包含链接的另一个领域,但是这片这个领域,源被写入并用;分离,如:link1;link2;link3....

所以我一直告诉记者,在后面的代码编写一个函数做这个工作......和它的onitemdatabound在转发器中,我该怎么做,以及该函数应该写些什么?为了能够在;上拆分它们并将它们作为链接。

<asp:Repeater runat="server" ID="rptArticleContent"> 
<ItemTemplate> 
<tr> 
<td width="365" valign="top" align="left" class="bodyContent" bgcolor="#FFFFFF"> 
<div> 
<h2 class="h2"> 
<asp:Label runat="server" ID="dsds"> <%#Eval("Title") %></asp:Label> 
</h2> 
<div class="article-body"> 
<div class="Article-image"> 
<%#Eval("Image") %> 
</div> 
<%#Eval("Description") %> 
</div> 
<div class="horizontal_dotted_line1" align="right"> 
<a href="#top">>> Back to top</a></div> 
<span class="txsources">Sources: </span><a href="#" target="_blank">Link 1</a> 
| <a href="#" target="_blank">Link 2</a> | <a href="#" target="_blank">Link 3</a> 
| <a href="#" target="_blank">Link 4</a> | <a href="#" target="_blank">Link 5</a> 
| <a href="#" target="_blank">Link 6</a></div> 
</td> 
</tr> 
</ItemTemplate> 
</asp:Repeater> 

回答

2

我会创造这将被用于包含链接<span class="txsources">Sources: </span><asp:Literal />控制。

在后面的代码,内部的ItemDataBound,你可以这样做以下:

Protected Sub rptArticleContent_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rptArticleContent.ItemDataBound 

    Select Case e.Item.ItemType 
     Case ListItemType.Item, ListItemType.AlternatingItem 

      Dim Links As String = e.Item.DataItem("Links") 
      Dim LinksStr As String() = Links.Split(";") 

      Dim Ltl As Literal = e.Item.FindControl("Ltl") 
      Dim Inc As Integer = 1 
      For Each item As String In LinksStr 
       Ltl.Text += String.Format("<a href='{0}'>Link {1}</a>", item, Inc) 
       Inc += 1 
      Next 

    End Select 

End Sub 

C#的等效代码:

protected void rptArticleContent_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) 
{ 
    switch (e.Item.ItemType) { 
     case ListItemType.Item: 
     case ListItemType.AlternatingItem: 

      string Links = e.Item.DataItem("Links"); 
      string[] LinksStr = Links.Split(";"); 

      Literal Ltl = e.Item.FindControl("Ltl"); 
      int Inc = 1; 
      foreach (string item in LinksStr) { 
       Ltl.Text += string.Format("<a href='{0}'>Link {1}</a>", item, Inc); 
       Inc += 1; 
      } 


      break; 
    } 

} 
+0

C#会比动好很多不ü薄:) –

+0

@hassan sleh您是对的 - 我刚刚为您添加了等效的C#代码。 – Leah