Setting MaxLength for TextBoxes generated by a DetailsView
Posted by elberon5 Fri, 09 Feb 2007 17:14:00 GMT
Step 1: Create your own BoundField - you'd want to put this in a file in your App_Code folder.
namespace myNameSpace
{
public class myBoundField : System.Web.UI.WebControls.BoundField
{
public int MaxLength
{
get
{
int i = 0;
if (this.ViewState["MaxLength"] != null)
i = Int32.Parse(this.ViewState["MaxLength"].ToString());
return i;
}
set { this.ViewState["MaxLength"] = value; }
}
protected override void OnDataBindField(object sender, EventArgs e)
{
base.OnDataBindField(sender, e);
Control c = (Control)sender;
if (c is TextBox)
{
TextBox txt = (TextBox)c;
if (this.MaxLength > 0)
txt.MaxLength = this.MaxLength;
}
}
}
}
Step 2: Make it so all your aspx pages can access this new user control. In web.config add:
<system.web>
<pages>
<controls>
<add tagPrefix="myTagPrefix" namespace="myNameSpace" assembly="App_Code" />
</controls>
</pages>
</system.web>
Step : Use the custom bound field inside your detailsview on your aspx page.
<myTagPrefix:myBoundField MaxLength="255" DataField="" HeaderText="" SortExpression="" />

Comments
Leave a response