根据 DataItem 值在 Repeater 中显示特殊字符

Display Special Character in Repeater Based on the DataItem Value

我通过传递来自网页的输入并将结果保存在 ArrayList 中来调用存储过程。 ArrayList 中的每条记录都有名称为:type 的列。如果类型是 "A", 然后我需要在网页上显示一个特殊字符,用于关联 row.For 结果 ArrayList 中剩余类型记录的列值, 我不需要为关联的行显示任何内容..

在代码隐藏文件中:

Dim array As New ArrayList

            array = outPutFromTheSporedProcedure
              repeater1.DataSource = array
            repeater1.DataBind()

在 aspx.page:

<asp:Repeater ID="repeater1" runat="server">
                            <HeaderTemplate>
                                            <tr>
                                                <th> type  </th>
                                            </tr>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <tr>
                                       <td>
                                        <asp:Label ID="lbl123" runat="server"><%#DataBinder.Eval(Container.DataItem, "type")%></asp:Label></td>
                                </tr>
                            </ItemTemplate>
                            <FooterTemplate>
                                </table></td></tr>
                            </FooterTemplate>
                        </asp:Repeater>

在 Aspx 页面上 我有一个中继器并在 itemTemplate 中将数据项绑定到中继器。
现在我需要显示特殊字符(即 *、$、&,主要是为了与其他类型的行区分开来) 对于行类型 "A",对于剩余的行,我不需要为关联列的记录显示任何内容。

请告诉我如何解决这个问题。提前致谢!

由于您不想在非特殊情况下不显示任何内容,因此您必须首先更改此内容:

<asp:Label ID="lbl123" runat="server"><%#DataBinder.Eval(Container.DataItem, "type")%></asp:Label></td>

为此:

<asp:Label ID="lbl123" runat="server"></asp:Label></td>

现在,如果满足条件,请在 Repeater_ItemDataBound 事件处理程序中设置您的特殊字符:

Private Sub repeater1_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles repeater1.ItemDataBound

    If e.Item.ItemType = ListItemType.AlternatingItem OrElse e.Item.ItemType = ListItemType.Item Then

        If CType(e.Item.DataItem, UnderlyingTypeOfArrayList).type = "A" Then

            CType(e.Item.FindControl("lbl123"), Label).Text = "*" 'Special Character

        End If

    End If

End Sub

你在上面看到我检查了正确的 RepeaterItemType,如果 tghe DataItem 的类型 属性 = A,如果是这样,我使用 FindControl 和 Casting 获得标签的实例以将其 Text 设置为特殊特点。

注意:您必须将 UnderlyingTypeOfArrayList 更改为 ArrayList 中包含的类型。