0

我有一个绑定到数据源的 GridView。在 .aspx 文件中,我使用这样的东西

<asp:GridView...>
    <Columns>
       <asp:TemplateField>
               <ItemTemplate>
                      <input type="text" value='<%# Eval('type') %>'
...
</GridView>

例如,当 type="Rock'n'Roll - guitar" 时,在数据绑定之后,输入中的文本在连字符之前被截断,所以剩下的是“Rock'n'Roll”

这也发生在引号(')中,我尝试使用

<input type="text" value='<%# Server.HtmlEncode(Eval('type').ToString()) %>'

这解决了字符串中引号的问题,但仍然存在连字符的问题。

有任何想法吗?谢谢

4

3 回答 3

0

这工作得很好

Eval("type") 插入 Eval('type') 标记

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Type">
           <ItemTemplate>
                  <input type="text" value='<%#  Server.HtmlEncode( Eval("type").ToString()) %>' />
                  </ItemTemplate>
                  </asp:TemplateField>
</Columns>
</asp:GridView>

演示代码隐藏

        DataTable dt = new DataTable();
        dt.Columns.Add("type", typeof(string)); 
        dt.Rows.Add("Rock'n'Roll - guitar");
        GridView1.DataSource = dt;
        GridView1.DataBind();
于 2013-03-13T21:18:32.330 回答
0

尝试放置 ItemStyle-Wrap="false". 我在做同样的事情时遇到了负数的问题。

于 2013-12-10T20:57:26.343 回答
0

看起来Server.HtmlEncode()不编码撇号。您能否尝试用双引号将属性括起来:

<input type="text" value="<%# Server.HtmlEncode(Eval('type').ToString()) %>" />

我怀疑这个连字符问题是值中的撇号使属性变得古怪的结果。

于 2013-03-13T18:49:52.213 回答