2012-04-10 27 views
1

GridViewのBoundFieldに空白のない非常に長い文字列があります。私は正しくそれを表示したい。同様のquestion. によると、それは動作しますが、私はコードGridView BoundField編集モードの長い文字列

<asp:TemplateField HeaderText="ICD9" ItemStyle-Width="75px" SortExpression="ICD9" > 
         <ItemTemplate> 
          <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;"> 
           <%# Eval("ICD9")%> 
           </div> 
         </ItemTemplate> 
        </asp:TemplateField> 

を使用しますが、私はそれを編集モードに切り替えたとき。列は編集できません。テキストボックスは表示されません。

ありがとうございました。 image

2番目の列を見ると、長い文字列が表示されることがあります(現在は「なし」です)。 編集できません。あなたの<TemplateField>インサイド

+1

あなたは 'ItemTemplate'を示してきましたが、あなたの問題は、[EditItemTemplate](HTTPである:// MSDN Microsoft.com/ja-us/library/ms972948.aspx)、そうではありませんか? –

+0

しかし、なぜ他の列を編集することができますか?彼らはEditTemplateを持っていません。私はストアドプロシージャを使用します。 –

答えて

0

、あなたも<EditItemTemplate>必要があります:あなたのGridViewが編集モードに入るとき

<asp:TemplateField HeaderText="ICD9" ItemStyle-Width="75px" SortExpression="ICD9" > 
    <ItemTemplate> 
     <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;"> 
      <%# Eval("ICD9")%> 
     </div> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;"> 
      <asp:TextBox ID="TextBox1" runat="server" 
      Text='<%# Bind("ICD9") %>'></asp:TextBox> 
     </div> 
    </EditItemTemplate> 
</asp:TemplateField> 

この方法は、それがそのフィールドのレンダリングに何を知っています。

<BoundField>であるため、他のフィールドは表示されません(デフォルトではこの動作をします)。TemplateFieldでは、編集モードと非編集モードを明示的に定義する必要があります)。

あなたはこの時TemplateFieldsの詳細については、チュートリアルを(古いの一種)を見てみることができます。Using TemplateFields in the GridView control

+0

動作しますが、テキストは編集モードでラップされません。 –

+0

@Love Hmmm、それをラップするには、そのTextBoxに 'TextMode =" MultiLine "'を設定する必要があります。あなたは何とか高さを動的に設定する必要がありますが、うまくいけばそれはあなたを始めます。それがあなたのために働くかどうか私に教えてください。 – jadarnel27

+0

ありがとう、ありがとう。 –

関連する問題