【问题标题】:Calculate the height of an asp:TextBox (textarea) without linebreaks计算没有换行符的asp:TextBox(textarea)的高度
【发布时间】:2021-08-07 09:16:59
【问题描述】:

我有一个 asp:TextBox(呈现为文本区域),我需要计算该 TextBox 的高度以适合打印内容。我用这段代码计算文本区域的高度:

// get the number of lines 
int numberOflines = txtText.Text.Split(new Char[] { '\n' }, 
    StringSplitOptions.RemoveEmptyEntries).Length;
    
//calculate the target hight of the textBox
txtText.Rows = numberOflines;
txtText.Style.Add("height", TextBoxHeight.calculate(11, 8, numberOflines, 9999999) 
    + "px;");

代码工作正常 - 只要每行都有一个换行符,但如果不是这种情况,则生成的高度会很小。如何获得独立于换行符的正确高度?

我已经尝试了多种使用 javascript 的方法,但它们需要用户操作,例如 onkeyup(在我的情况下,用户可以更改文本,但他们不应该这样做)或者他们还根据换行符的数量进行一些计算。

提前致谢。

【问题讨论】:

    标签: c# asp.net textbox textarea height


    【解决方案1】:

    如果您有一种可靠的方法,可以在诸如 onkeyup 之类的用户交互之后工作,为什么不先手动触发,然后再使用可靠的方法?

       $(document).ready(function(){ 
         $("button").click( function(){
           $("#txt").trigger("onkeyup");  // manually invoke keyup event
         });
       });
    
      <button>Manual trigger keyup</button>
      <input type="text" onkeyup="alert('up');" id="txt" />
    

    【讨论】:

    • 感谢您的回答。高度的计算必须在没有用户输入的情况下进行。用户输入应该是可能的,但不是必需的。
    • 用户实际上不需要使用上述方法进行任何实际输入。您使用 .trigger() 行模拟用户输入,然后使用他们实际完成某些输入时可以使用的任何方法。
    猜你喜欢
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多