将数据绑定到asp:repeater中的服务器控件

时间:2011-04-30 09:07:46

标签: data-binding asprepeater

我希望将一个转发器控件绑定到方法并将结果显示为链接按钮列表,但我无法理解它。这就是我尝试过的:

在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 个答案:

答案 0 :(得分:3)

使用单引号动态设置属性。

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