如何调整文本框(多行)的大小以适应 ASP .NET C# 中的文本?
How to adapt the size of a Textbox (MultiLine) to a text in ASP .NET C#?
我有一个 .aspx 表单,在 Page_Load 事件中,我从数据库中为控件(文本框、下拉列表等)分配了几个值,但是我有一个文本框控件,其中文本可能非常大或非常小,我想知道是否可以使文本框大小动态化。
当表单完成加载文本框控件时,它显示如下:.
但我想像这样想象它(一切都取决于文本):
文本框代码:
<asp:TextBox runat="server" ID="txt" TextMode="MultiLine" Height="80px" ReadOnly="true" CssClass="form-control"></asp:TextBox>
我正在使用 .NET Framework 4.5.2,我不确定我是否应该使用 jQuery 中的任何功能,如果是,应该如何完成?
您可以在页面加载时使用 Javascript 或 Jquery 轻松完成此操作。
Jquery:
$(function(){//executes when dom is ready
var textAreaAdjust = function(control) {//function to set the height
$(control).height(1);
$(control).height($(control).prop('scrollHeight'));
}
textAreaAdjust($('#txt'));// call the function passing the textarea control in
});
Javascript:
document.addEventListener("DOMContentLoaded", function () {
var textAreaAdjust = function(control){//funciton to measure and set height
control.style.height = "1px";
control.style.height = (25+control.scrollHeight)+"px";
};
var textControl = document.getElementById("txt");//get the textarea
textAreaAdjust(textControl);//pass it into the function
});
归功于此 answer
您可以使用文字控件
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
或添加了 runat="server"
的 html div。
<div id="specialDiv" runat="server"></div>
c#
specialDiv.InnerText = "asdfasdf...etc";
请注意,如果您使用 CssClass="form-control"
,您可能需要通过将 height
设置为 auto
而不是 preset/hard-coded 高度来更新 css .
我有一个 .aspx 表单,在 Page_Load 事件中,我从数据库中为控件(文本框、下拉列表等)分配了几个值,但是我有一个文本框控件,其中文本可能非常大或非常小,我想知道是否可以使文本框大小动态化。
当表单完成加载文本框控件时,它显示如下:.
但我想像这样想象它(一切都取决于文本):
文本框代码:
<asp:TextBox runat="server" ID="txt" TextMode="MultiLine" Height="80px" ReadOnly="true" CssClass="form-control"></asp:TextBox>
我正在使用 .NET Framework 4.5.2,我不确定我是否应该使用 jQuery 中的任何功能,如果是,应该如何完成?
您可以在页面加载时使用 Javascript 或 Jquery 轻松完成此操作。
Jquery:
$(function(){//executes when dom is ready
var textAreaAdjust = function(control) {//function to set the height
$(control).height(1);
$(control).height($(control).prop('scrollHeight'));
}
textAreaAdjust($('#txt'));// call the function passing the textarea control in
});
Javascript:
document.addEventListener("DOMContentLoaded", function () {
var textAreaAdjust = function(control){//funciton to measure and set height
control.style.height = "1px";
control.style.height = (25+control.scrollHeight)+"px";
};
var textControl = document.getElementById("txt");//get the textarea
textAreaAdjust(textControl);//pass it into the function
});
归功于此 answer
您可以使用文字控件
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
或添加了 runat="server"
的 html div。
<div id="specialDiv" runat="server"></div>
c#
specialDiv.InnerText = "asdfasdf...etc";
请注意,如果您使用 CssClass="form-control"
,您可能需要通过将 height
设置为 auto
而不是 preset/hard-coded 高度来更新 css .