1

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

虽然它可以工作,但是当我切换到编辑模式时。该列无法编辑。文本框不显示。

谢谢。 图片

请看第二列,它可能有一个长字符串。(现在它是“None”)。它不能被编辑。

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