2

我正在使用 ASP.NET 中的 C# 在 VS10 中工作。在我的设计表单中,我有一个 textArea(标准 HTML 控件)。

 <textarea id="Text1"  rows = "8"; cols="30" onkeyup="AutoGrowTextArea(this)"   name="S1"> </textarea>

现在在我的代码隐藏页面中,我使用 C# 对控件进行编码。我已经为 textArea 提供了一个自动扩展功能,这是我在项目中需要的。我需要这个 TextArea 作为服务器控件,就像我们在设计页面中放置一个文本框一样,我们可以在代码隐藏页面中使用它来编码,因为它是一个服务器控件。但是,textArea 不是服务器控件。我已经浏览了网站上以前的帖子,但我没有得到足够有用的东西。我什至尝试过使用 [<% %>] 系统和 [runat="server"] 但它没有帮助。我想做的是在代码隐藏页面中使用textArea,即在编码空间中调用它,就像我们可以调用TextBox控件对象一样。所以,任何人都可以帮我解决这个问题,,,问候.. 用于自动增长文本框的 javascript 是:

  <script type="text/javascript"> 

function AutoGrowTextArea(textField)

{

if (textField.clientHeight < textField.scrollHeight) 

{

 textField.style.height = textField.scrollHeight + "px";

 if (textField.clientHeight < textField.scrollHeight)

{

textField.style.height = (textField.scrollHeight * 2 - textField.clientHeight) + "px";

} 

}

} 

</script>      
4

4 回答 4

1

尝试这个

添加runat="server"到标签

<textarea id="Text1" runat="server"  rows = "8" cols="30" onkeyup="AutoGrowTextArea(this)" name="S1"> </textarea>
于 2012-07-05T18:13:00.077 回答
1

您可以操作原始 html 控件,设置控件的runat="server"属性。

 <textarea id="Text1" runat="server"  rows = "8"; cols="30" onkeyup="AutoGrowTextArea(this)"   name="S1"> </textarea>
于 2012-07-05T18:14:06.957 回答
0
<asp:TextBox id="thisIsMyTextBox" runat="server" multiline="true" width="200px" onkeyup="AutoGrowTextArea(this)" height="80px" style="resize:none;"></asp:TextBox>

您可以根据需要使用宽度/高度!

函数 AutoGrowTextArea(textField)

{

   if(textField.Lenght()%50==0)//50 is the number of character in your textbox

   {

            if (textField.clientHeight < textField.scrollHeight) 

            {

                    textField.style.height = textField.scrollHeight + "px";

                    if (textField.clientHeight < textField.scrollHeight)

                    {

                             textField.style.height = (textField.scrollHeight * 2 - textField.clientHeight) + "px";

                    } 

     }

}

于 2012-07-05T18:17:48.437 回答
0

您可以在标记中添加 runat="server" ,它将成为服务器控件。

您还可以在后面的代码中创建服务器控件。声明(在 Visual Basic 中):

Protected WithEvents foo As Global.System.Web.UI.HtmlControls.HtmlGenericControl = Global.System.Web.UI.HtmlControls.HtmlGenericControl("textarea")

如果你想在你的所有项目中使用某些东西,你可以声明一个继承自 Control 或 HtmlGenericControl 的类,你可以在你的新控件的任何地方实现你需要实现的任何东西。

于 2012-07-05T18:53:33.070 回答