中继器数据绑定,具有特定数据的操作

本文关键字:数据 操作 数据绑定 中继器 | 更新日期: 2023-09-27 18:04:15

下面是我的中继器代码,一切都很好,但我有一个问题:

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

中继器数据绑定,具有特定数据的操作

我将在<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;
    }
}