当值以“<”开头时,转发器不绑定
repeater is not binding when the value starts with "<"
我正在使用中继器绑定来自存储过程的数据。它大部分时间都正确绑定数据,但当结果列值以“<”、
开头时它无法按预期工作时,我遇到了一个问题
转发器代码:
<asp:Repeater ID="repeter1" runat="server">
<HeaderTemplate>
<table style="table-layout: fixed; width:100%;" >
</HeaderTemplate>
<ItemTemplate>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
<tr>
<td>
<asp:Label ID="lbl1" runat="server"><%#DataBinder.Eval(Container.DataItem, "column1")%></asp:Label></td>
<td>
<asp:Label ID="lbl2" runat="server"><%#DataBinder.Eval(Container.DataItem, "column2")%></asp:Label></td>
<td>
<asp:Label ID="lbl3" runat="server"><%#DataBinder.Eval(Container.DataItem, "column3")%></asp:Label></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
假设如果我们取"column3",当输出值以“<”或“>”这样的开头(看起来像特殊字符)时,它根本不具有约束力。
谁能告诉我如何解决这个问题。
提前致谢!
用 Server.HtmlEncode()
包裹它,像这样:
<asp:Label ID="lbl3" runat="server"><%# Server.HtmlEncode(Eval("column3").ToString())%></asp:Label>
我正在使用中继器绑定来自存储过程的数据。它大部分时间都正确绑定数据,但当结果列值以“<”、
开头时它无法按预期工作时,我遇到了一个问题转发器代码:
<asp:Repeater ID="repeter1" runat="server">
<HeaderTemplate>
<table style="table-layout: fixed; width:100%;" >
</HeaderTemplate>
<ItemTemplate>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
<tr>
<td>
<asp:Label ID="lbl1" runat="server"><%#DataBinder.Eval(Container.DataItem, "column1")%></asp:Label></td>
<td>
<asp:Label ID="lbl2" runat="server"><%#DataBinder.Eval(Container.DataItem, "column2")%></asp:Label></td>
<td>
<asp:Label ID="lbl3" runat="server"><%#DataBinder.Eval(Container.DataItem, "column3")%></asp:Label></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
假设如果我们取"column3",当输出值以“<”或“>”这样的开头(看起来像特殊字符)时,它根本不具有约束力。
谁能告诉我如何解决这个问题。
提前致谢!
用 Server.HtmlEncode()
包裹它,像这样:
<asp:Label ID="lbl3" runat="server"><%# Server.HtmlEncode(Eval("column3").ToString())%></asp:Label>