【问题标题】:GridView BoundField long string in Edit mode编辑模式下的 GridView BoundField 长字符串
【发布时间】:2012-04-10 23:46:09
【问题描述】:

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

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

谢谢。

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

【问题讨论】:

  • 您已经展示了ItemTemplate,但您的问题在于EditItemTemplate,不是吗?
  • 但是为什么其他列可以编辑呢?他们没有 EditTemplate。我使用存储过程。

标签: asp.net gridview


【解决方案1】:

在您的&lt;TemplateField&gt; 中,您还需要一个&lt;EditItemTemplate&gt;

<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 进入编辑模式时,它就知道该字段要呈现什么。

如果无法看到您的其他字段,它们可能正在工作,因为它们只是 &lt;BoundField&gt;s,默认情况下会有这种行为(在 TemplateField 中,您必须明确定义编辑和非编辑模式)。

您可以查看这个(有点旧的)教程以获取有关 TemplateFields 的更多信息:Using TemplateFields in the GridView control

【讨论】:

  • @Love 嗯,您可能必须在该 TextBox 上设置 TextMode="MultiLine" 才能将其换行。然后你必须以某种方式动态设置高度,但希望这能让你开始。让我知道这是否适合您。
  • @Love Awesome,很高兴我能帮上忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-13
  • 1970-01-01
  • 2014-11-05
相关资源
最近更新 更多