Привязка данных к серверным элементам управления в asp: repeater - PullRequest
1 голос
/ 30 апреля 2011

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

На странице asp у меня есть:

<asp:Repeater ID="resultCountRepeater" runat="server" Visible="false" >
                            <ItemTemplate>
                                <asp:LinkButton ID="userResultCount" runat="server" OnClick="userResultCount_Click" Text="<%# DataBinder.Eval(Container.DataItem,"Text") %>" >
                                </asp:LinkButton>
                            </ItemTemplate>
                        </asp:Repeater>

И в коде позади:

List<ListItem> resultCountList = new List<ListItem>();
                foreach (ISearchEngine oneEng in engines)
                {
                    ListItem item = new ListItem();
                    item.Text = oneEng.ObectName();
                    item.Value = Convert.ToString(oneEng.PageCount(searchWords, townId));
                    resultCountList.Add(item);
                }
                resultCountRepeater.DataSource = resultCountList;
                resultCountRepeater.DataBind();

К сожалению, это вызывает ошибку компиляции: тег сервера сформирован неправильно.

Есть идеи, что это не так?

Спасибо

1 Ответ

3 голосов
/ 30 апреля 2011

Используйте одинарные кавычки для динамического задания свойств.

<asp:LinkButton ID="userResultCount" runat="server" OnClick="userResultCount_Click" Text="<%# DataBinder.Eval(Container.DataItem,"Text") %>" ></asp:LinkButton>

Должно быть

<asp:LinkButton ID="userResultCount" runat="server" OnClick="userResultCount_Click" Text='<%# DataBinder.Eval(Container.DataItem,"Text") %>' ></asp:LinkButton>
...