2016-07-07 2 views
1

Я пытаюсь получить пейджер алфавита, работающий в GridView. Он работает, но в ретрансляторе появляется только одна буква, которую я использую для отображения букв. Я читал другие сообщения и смотрел на свой код, и кажется, что он должен работать, но это не так. Любая помощь будет оценена по достоинству.ASP ретранслятор не показывает данные

Вот мой 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.

EDIT: Я звоню в GenerateAlphabets от моего Page_Load

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

Проведите эксперимент, [установите точку останова] (https://msdn.microsoft.com/en-us/library/4607yxb0 (v = vs.100) .aspx) в 'rptAlphabets.DataSource = alphabets' и проверьте состояние «алфавитов». Бьюсь об заклад, вы будете удивлены тем, что видите. – mason

+0

@mason Я сделал это. А алфавиты содержат все буквы и «ВСЕ». Когда я перехожу, источник данных тоже подбирает его. – MarchingGazelle

+0

. Откуда вы вызываете GenerateAlphabets()? Есть ли обратная связь на вашей странице? – Kami

ответ

0

Изменения вашего LinkButton кода, как это.

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

Причина: Вы скрываете все ссылки, которые в настоящий момент не выбраны. Вместо этого вы должны показывать их.

+0

Я пробовал это, но я получаю сообщение об ошибке. «Ведущий». или '!' может отображаться только внутри оператора «С». Я просто удалил видимый оператор, и он работает так, как я думал, что он должен работать – MarchingGazelle

+0

, но затем он будет показывать ссылку для выбранной буквы тоже. Попробуйте это редактирование. Я думал, что это C#. мой плохой – naveen

+0

Я вижу, что вы имеете в виду !! – MarchingGazelle