1

GridView の BoundField の 1 つに、スペースのない非常に長い文字列があります。正しく発送したいです。同様の質問によると。 コードを使用しました

<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>

動作しますが、編集モードに切り替えると。列は編集できません。テキストボックスは表示されません。

ありがとう。 画像

2 番目の列を見てください。長い文字列が含まれている可能性があります (現在は「なし」です)。編集できません。

4

1 に答える 1

0

の中に<TemplateField>、次のものも必要です<EditItemTemplate>

<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>

このようにして、GridView編集モードに入ると、そのフィールドに何をレンダリングするかがわかります。

他のフィールドを見ることができなくても<BoundField>、デフォルトでこの動作を持つ単純な s であるため、それらが機能している可能性があります (TemplateField では、編集モードと非編集モードを明示的に定義する必要があります)。

TemplateFields の詳細については、この (ちょっと古い) チュートリアルを参照してください: GridView コントロールでの TemplateFields の使用

于 2012-04-10T15:40:17.213 に答える