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 に答える