编辑模式下的GridView BoundField长字符串

时间:2012-04-10 15:30:57

标签: asp.net gridview

我的GridView中的一个BoundField有一个很长的字符串,没有空格。我想把它正确地显示出来。根据类似的question. 我用了代码

<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

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

1 个答案:

答案 0 :(得分: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的更多信息:Using TemplateFields in the GridView control