我正在尝试使用asp:
<asp:TextBox ID="txtInput" runat="server" TextMode="MultiLine"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
我想要一种方法来指定maxlength
属性,但显然没有办法可以multiline textbox
.我一直在尝试为onkeypress
事件使用一些JavaScript :
onkeypress="return textboxMultilineMaxNumber(this,maxlength)"
function textboxMultilineMaxNumber(txt, maxLen) {
try {
if (txt.value.length > (maxLen - 1)) return false;
} catch (e) { }
return true;
}
Run Code Online (Sandbox Code Playgroud)
虽然正常工作,但这个JavaScript函数的问题在于,在写入字符后,它不允许您删除和替换它们中的任何一个,这种行为是不可取的.
你有什么想法我可以在上面的代码中改变什么来避免这种或任何其他方式来绕过它?
我需要遍历我的asp.net网页中的所有控件并对控件执行某些操作.在一个例子中,我正在从页面中创建一个巨大的字符串并通过电子邮件发送给自己,在另一个例子中,我将所有内容保存到cookie中.
问题是masterpages和包含控件集合的项目.我希望能够将一个Page传递给该方法,然后让该方法具有足够的通用性,以循环遍历最内层内容页面中的所有控件并使用它们.我尝试用递归来做这个,但我的递归是不完整的.
我想将一个Page对象传递给一个方法,并让该方法循环遍历最里面的内容页面中的所有控件.我怎样才能做到这一点?
private static String controlToString(Control control)
{
StringBuilder result = new StringBuilder();
String controlID = String.Empty;
Type type = null;
foreach (Control c in control.Controls)
{
try
{
controlID = c.ID.ToString();
if (c is IEditableTextControl)
{
result.Append(controlID + ": " + ((IEditableTextControl)c).Text);
result.Append("<br />");
}
else if (c is ICheckBoxControl)
{
result.Append(controlID + ": " + ((ICheckBoxControl)c).Checked);
result.Append("<br />");
}
else if (c is ListControl)
{
result.Append(controlID + ": " + ((ListControl)c).SelectedValue);
result.Append("<br />");
}
else if (c.HasControls()) …
Run Code Online (Sandbox Code Playgroud)