我的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>
虽然它有效,但当我将其切换为编辑模式时。该列无法编辑。文本框不会显示。
感谢。
请查看第二列,它可能有一个长字符串。(现在它是“无”)。 它无法编辑。
答案 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