ASP中继器不显示数据

ASP Repeater not showing data

我正在尝试让字母传呼机在 GridView 中工作。它确实有效,但只有一个字母出现在我用来显示字母的中继器中。我已经阅读了其他帖子并查看了我的代码,看起来它应该可以工作,但事实并非如此。 任何帮助将不胜感激。

这是我的 html

<asp:Repeater ID="rptAlphabets" runat="server">
    <ItemTemplate>
        <asp:LinkButton ID="lnkBtn1" runat="server" Text='<%#Eval("Value")%>' Visible='<%# Convert.ToBoolean(Eval("Selected"))%>' OnClick="Alphabet_Click"/>
        <asp:Label ID="lblAlpha" runat="server" Text='<%#Eval("Value")%>' Visible='<%# Convert.ToBoolean(Eval("Selected"))%>' />
    </ItemTemplate>
</asp:Repeater>

下面是我的代码

Private Sub GenerateAlphabets()
    Dim alphabets As New List(Of ListItem)()
    Dim alphabet As New ListItem
    alphabet.Value = "ALL"
    alphabet.Selected = alphabet.Value.Equals(ViewState("CurrentAlphabet"))
    alphabets.Add(alphabet)
    For i As Integer = 65 To 90
        alphabet = New ListItem()
        alphabet.Value = [Char].ConvertFromUtf32(i)
        alphabet.Selected =   alphabet.Value.Equals(ViewState("CurrentAlphabet"))
        alphabets.Add(alphabet)
    Next

    rptAlphabets.DataSource = alphabets
    rptAlphabets.DataBind()
End Sub

我正在使用 aspsnippets 方法中的大部分代码。

编辑: 我正在从 Page_Load

中调用 GenerateAlphabets
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Try

        ClearMessages()
        If Not IsPostBack Then
            ViewState("CurrentAlphabet") = "ALL"
            Me.GenerateAlphabets()
            BindGrids()
            BindDropDownListBoxes()

        End If
    Catch ex As Exception
        Me.HandleError(ex)
    End Try

End Sub

像这样更改您的 LinkBut​​ton 代码。

<asp:LinkButton ID="lnkBtn1" runat="server" 
        Text='<%#Eval("Value")%>' 
        Visible='<%# Convert.ToBoolean(Eval("Selected")) = False %>'
        OnClick="Alphabet_Click"/>

原因:您隐藏了所有当前未选中的 LinkBut​​ton。您应该改为展示它们。