我的页面上有一个中继器,我用它来显示搜索结果列表。我的问题是页面一直给我一个
解析器错误消息:服务器标记格式不正确。
错误,因为中继器没有数据源
中继器:
<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。使用单引号和双引号的组合
如果默认禁用重复器控件会发生什么?它还会抛出异常吗?
如果禁用它不起作用,我会在需要时动态添加它。所以你可以保留你的模板,你可以剥离它到一个用户控件,这样你只需要通过代码添加用户控件,而不是整个项目模板。