我如何使中继器没有数据源功能,直到它得到一个从回发

本文关键字:一个 中继器 何使 数据源 功能 | 更新日期: 2023-09-27 18:03:49

我的页面上有一个中继器,我用它来显示搜索结果列表。我的问题是页面一直给我一个

解析器错误消息:服务器标记格式不正确。

错误,因为中继器没有数据源

中继器:

<asp:Repeater runat="server" ID="rptSearchResults" >
    <HeaderTemplate>
        <h3>Search results</h3>
    </HeaderTemplate>
    <ItemTemplate>
        <table>
            <tr>
                <td>
                    <asp:Label runat="server" ID="lblTitle" Text="<%# Eval("title")%>"></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label runat="server" ID="lblAdress" Text="<%# Eval("adress")%>"></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label runat="server" ID="lblZipcode" Text="<%# Eval("zipcode")%>"></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label runat="server" ID="lblCity" Text="<%# Eval("city")%>"></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label runat="server" ID="lblType" Text="<%# Eval("type")%>"></asp:Label>
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:Repeater>

在这个中继器上面是一个表单,用户可以在其中输入搜索词,主要包括标题、地址、邮政编码、城市和类型。在用户单击触发搜索的按钮并因此向中继器添加数据源之前,中继器不应该填写。

有没有办法让它像我想要的那样工作?

我如何使中继器没有数据源功能,直到它得到一个从回发

我不认为缺乏数据源是问题所在-它应该很好。错误提示"服务器标记格式不正确"。-这意味着有一个问题与标记。空数据源的问题会导致NullReferenceException或类似的问题。所以,也许问题是你的标签元素-尝试改变Text属性:

Text="<%# Eval("type")%>"

:

Text='<%# Eval("type")%>'

我认为所有的双引号会混淆ASP.Net。使用单引号和双引号的组合

如果默认禁用重复器控件会发生什么?它还会抛出异常吗?

如果禁用它不起作用,我会在需要时动态添加它。所以你可以保留你的模板,你可以剥离它到一个用户控件,这样你只需要通过代码添加用户控件,而不是整个项目模板。