我的页面上有一个中继器,用来显示搜索结果的列表。我的问题是这一页一直在向我抛出一个
解析器错误消息:服务器标记格式不正确。
错误,因为中继器没有数据源。
中继器:
<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>
在这个中继器上面是一个表单,用户可以在其中键入搜索词,主要是标题、入口、邮政编码、城市和类型。在用户单击触发搜索的按钮并将数据源添加到中继器之前,中继器不应该填写。
有办法让它像我想的那样运作吗?
发布于 2011-07-29 08:32:23
我不认为缺乏数据源是问题所在-应该是好的。错误上写着“服务器标签的格式不太好”--这意味着标记有问题。一个空数据源的问题会导致一个NullReferenceException
或类似的东西。所以,问题可能是标签元素--尝试从下面更改Text
属性:
Text="<%# Eval("type")%>"
对此:
Text='<%# Eval("type")%>'
我认为所有的双引号都会使ASP.Net感到困惑。使用单引号和双引号的组合。
发布于 2011-07-29 08:30:48
如果默认禁用中继器控制,会发生什么情况?它还会抛出异常吗?
如果禁用它不起作用,我会在需要时动态地添加它。为了保留模板,您可以将其去掉到用户控件中,因此您只需通过代码添加用户控件,而不必添加整个项模板。
https://stackoverflow.com/questions/6870515
复制相似问题