如何在ASP.NET中的GridView行中自动调整文本框

时间:2013-12-18 04:32:54

标签: asp.net

我正在尝试在GridView行中添加数据绑定文本框:

<ItemTemplate >
<asp:TextBox ID="TextBox" runat="server" Visible="true" Enabled="true" 
                 Wrap="true" text='<%#Eval("Notes")%>' TextMode="MultiLine" >
    </asp:TextBox>                  
</ItemTemplate>

我无法弄清楚如何使文本框自动调整到GridView行的高度

2 个答案:

答案 0 :(得分:1)

如果您想知道多行文本框中内容的高度,您可以使用简单的公式取决于文本框的字体大小。 enter code here示例(数字不是真实的)。 如果一行80个字符的宽度为400px,高度为20px,则160个字符的行总是消耗400px宽度但高度为40px。 因此,在TextBox的Height属性中,您可以编写

高度='&lt;%(Eval(“评论”)。长度/ 80)* 20%&gt;'

 <asp:TextBox TextMode="multiLine" Width="400" Text='<%#Eval("field_name") %>' 
   Height='<%# Eval("field_name").ToString().Length*2%>' `enter code here`
    ID="TextBox1" runat="server"></asp:TextBox>

答案 1 :(得分:-1)

您也可以通过java脚本执行

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Automatic Resize TextBox</title>
<script type="text/javascript">
function setHeight(txtdesc) {
txtdesc.style.height = txtdesc.scrollHeight + "px";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="txtDesc" runat= "server" TextMode="MultiLine"  onkeyup="setHeight(this);" onkeydown="setHeight(this);" />
</form>
</body>
</html>