Ask a Question related to ASP.NET, Design and Development.
-
John Wright #1
Custom TextBox with custom attributes and properties question
I have an webform that has a datarepeater on it. In that repeater I'm
binding some data and I have put a textbox control in there. On the
OnItemDataBound method of the repeater I have cast the controls
collection index back to a textbox and added an attribute called
"IsDirty" which is set to false. Once the page loads I have the
onchange event call a javascript function that changes the attribute
"IsDirty" to true. Everything up until now works like a charm.
However when the page posts back I am trying to iterate over the
repeater items collection and get the IsDirty value. This still shows
up as false, and I have verified that the javascript does change the
value.
My next though was to create a custom control textbox with a IsDirty
boolean property. That doesn't expose as an attribute. I am looking
for a way to expose a custom property as an attribute on a custom
control. Anyone know how I can do this?
Some code to reference:
CodeBehind:
protected void repeaterDataBound(object sender,
System.Web.UI.WebControls.RepeaterItemEventArgs objArgs)
{
ListItemType objItemType = (ListItemType)objArgs.Item.ItemType;
if ((objItemType == ListItemType.Item)||(objItemType ==
ListItemType.AlternatingItem))
{
DataRowView dv = (DataRowView)(objArgs.Item.DataItem);
//control[1] is the text box...
UtilityControls.DirtyTextBox txtMultiplier =
(UtilityControls.DirtyTextBox)objArgs.Item.Control s[1];
txtMultiplier.Attributes.Add("productline",dv["ProductGrouping"].ToString());
txtMultiplier.Attributes.Add("OnChange","SetItemCh angedFlag(this);");
//used before custom control defaulted IsDirty to
false
//txtMultiplier.Attributes.Add("IsDirty","false");
//need to have txtMultiplier.IsDirty = false; show up
as attribute
}
}
Javascript:
function SetItemChangedFlag(obj)
{
var vAttrValue = new String;
vAttrValue = obj.getAttribute('IsDirty');
if(vAttrValue.toLowerCase() == false){
vAttrValue = true;
}
obj.setAttribute('IsDirty',vAttrValue);
//alert("The IsDirty Value is = " + obj.getAttribute('IsDirty'));
}
Regards,
John Wright
John Wright Guest
-
Making Custom Control Properties Visible in Visual Studio's Properties Palette
I am learning how to use the System.ComponentModel class in VB.NET so that I can add my ASP.NET controls to Visual Studio .NET 2003. I have managed... -
Custom attributes/properties at design time (serialization?)
OK. here's what I want to do. I have a text editor control that I created. I also have a seriedsof palette controls that I have created for use... -
XmlAttributeOverrides with Custom Attributes?
Dear All, I really enjoy the cleaness of using the build in Serialization of .NET. Now I am sitting with a dillema. I need to limit the Properties... -
XHTML and custom attributes
I'm planning my strategy to be XHTML ready for "Whidbey". My ASP.NET controls have a lot of client-side scripting. Sometimes I pass along custom... -
Custom Component and Custom Textbox binding
Hi, I am trying to accomplish the following. Here is what I want to do: 1. Drop a custom business object component onto the design surface... -
John Wright #2
Re: Custom TextBox with custom attributes and properties question
What I have done now is to create a class that derives from the
TextBox class. In there I have done an override on the
AddAttributesToRender method (see code below). What I still can't
figure out is how to I get my control to read back the attributes
collection and set the IsDirty property equal to the IsDirty
Attribute. This way when javascript changes the value of the
attribute it will be recognized when the page renders on a postback.
using System;
using System.IO;
using System.Text;
using System.Web.UI;
namespace UtilityControls
{
/// <summary>
/// Summary description for Class1.
/// </summary>
public class DirtyTextBox : System.Web.UI.WebControls.TextBox
{
private bool _dirty;
public DirtyTextBox()
{
_dirty = false;
}
[System.Security.Permissions.PermissionSet(System.S ecurity.Permissions.SecurityAction.Demand,
Name="FullTrust")]
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
writer.AddAttribute("IsDirty", IsDirty.ToString());
base.AddAttributesToRender(writer);
}
//The IsDirty property.
public virtual bool IsDirty
{
get
{
return _dirty;
}
set
{
_dirty = value;
}
}
}
}
John Wright Guest



Reply With Quote

