我们知道,有些时候需要设置输入框长度来限制用户输入的。但在数据设计的时候也是要设定每个字段的长度的,如果只是几个控件在前台界面手动设置一下就可以了,但是如果界面很多,控件很多,我们可以读出数据库设计时的长度,后台注入前台js来限制用户输入。 #region 设置控件长度 SetCtrlLenght(Page page,string tableName) public static void SetCtrlLenght(Page page, string tableName) { DataSet ds = new BLL.TableInfo().GetTableInfo(tableName);//利用sql的存储过程sp_help读出表的信息。我们只用到字段的长度。 DataTable table = ds.Tables[1]; foreach (DataRow row in table.Rows) { if (row[1].ToString().ToLower() == "varchar") { string ctrID = row[0].ToString(); int len = int.Parse(row[3].ToString()) / 2; Control ctr = page.FindControl(ctrID); if (ctr is TextBox) { TextBox tb = (TextBox)ctr; tb.MaxLength = len; //οnkeydοwn="if(this.value.length>120){this.value=this.value.substring(0,120)}" οnkeyup="if(this.value.length>120){this.value=this.value.substring(0,120)}" if (tb.TextMode == TextBoxMode.MultiLine) { tb.Attributes.Add("onkeydown", "if(this.value.length>" + len.ToString() + "){this.value=this.value.substring(0," + len.ToString() + ")}"); tb.Attributes.Add("onkeyup", "if(this.value.length>" + len.ToString() + "){this.value=this.value.substring(0," + len.ToString() + ")}"); } } else if (ctr is HtmlInputText) { HtmlInputText tx = (HtmlInputText)ctr; tx.MaxLength = len; } else if (ctr is HtmlTextArea) { HtmlTextArea ta = (HtmlTextArea)ctr; ta.Attributes.Add("onkeydown", "if(this.value.length>" + len.ToString() + "){this.value=this.value.substring(0," + len.ToString() + ")}"); ta.Attributes.Add("onkeyup", "if(this.value.length>" + len.ToString() + "){this.value=this.value.substring(0," + len.ToString() + ")}"); } } } } #endregion