Feb 22, 2012, 10:28 AM
[CLOSED] Issues related to custom control
HI Daniil,
I have a custom control extending the formpanel. I am having two issues.
1. I want to control the "allowblank" properties for the controls within the custom control by exposing a property (IsMandatory in below code). How to do this? The same behaviour is required for visible and readonly properties.
2. When i add the same control twice, only one control is displayed. Please advise.
Anulekha
I have a custom control extending the formpanel. I am having two issues.
1. I want to control the "allowblank" properties for the controls within the custom control by exposing a property (IsMandatory in below code). How to do this? The same behaviour is required for visible and readonly properties.
2. When i add the same control twice, only one control is displayed. Please advise.
Custom Control
public class NxtDecimalNumberRange : NxtFormPanel
{
ResourcePlaceHolder decimalrangeholder = new ResourcePlaceHolder();
NxtNumberField FromNumber = new NxtNumberField();
NxtNumberField ToNumber = new NxtNumberField();
public override string XType { get { return "NxtDecimalNumberRange"; } }
public NxtDecimalNumberRange()
{
FromNumber.ID = "FromNumber";
FromNumber.Vtype = "decimalnumberrange";
FromNumber.Note = "From (number)";
FromNumber.Width = 100;
//FromNumber.AllowBlank = false;
FromNumber.AllowDecimals = true;
FromNumber.AllowNegative = false;
FromNumber.DecimalPrecision = 4;
FromNumber.DecimalSeparator = ",";
//FromNumber.IndicatorIcon = Icon.BulletRed;
ConfigItem FromNumberConfig = new ConfigItem();
FromNumberConfig.Name = "endNumberField";
FromNumberConfig.Value = "#{ToNumber}";
FromNumberConfig.Mode = ParameterMode.Value;
FromNumber.CustomConfig.Add(FromNumberConfig);
ToNumber.ID = "ToNumber";
ToNumber.Vtype = "decimalnumberrange";
ToNumber.Note = "To (number)";
ToNumber.Width = 100;
// ToNumber.AllowBlank = false;
ToNumber.AllowDecimals = true;
ToNumber.AllowNegative = false;
ToNumber.DecimalPrecision = 4;
ToNumber.DecimalSeparator = ",";
//ToNumber.IndicatorIcon = Icon.BulletRed;
ConfigItem ToNumberConfig = new ConfigItem();
ToNumberConfig.Name = "startNumberField";
ToNumberConfig.Value = "#{FromNumber}";
ToNumberConfig.Mode = ParameterMode.Value;
ToNumber.CustomConfig.Add(ToNumberConfig);
Parameter margin = new Parameter();
margin.Name = "margins";
margin.Value = "0 7 0 0";
margin.Mode = ParameterMode.Value;
this.Defaults.Add(margin);
this.Layout = "HBoxLayout";
HBoxLayoutConfig config = new HBoxLayoutConfig();
config.Pack = BoxPack.Start;
this.LayoutConfig.Add(config);
this.Items.Add(FromNumber);
this.Items.Add(ToNumber);
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.FieldLabel = LocalizationManager.GetCultureSpecificValue(this.GetType().Name + "." + this.GetType().Name);
}
public bool IsVisible
{
get { return (ToNumber.Visible && FromNumber.Visible); }
set
{
ToNumber.Visible = value;
FromNumber.Visible = value;
}
}
public bool IsMandatory
{
get { return (this.ToNumber.AllowBlank && this.FromNumber.AllowBlank); }
set
{
if (value)
{ this.ToNumber.IndicatorIcon = Icon.BulletRed; }
this.ToNumber.AllowBlank = !value;
this.FromNumber.AllowBlank = !value;
}
}
public bool IsReadOnly
{
get { return (ToNumber.Disabled && FromNumber.Disabled); }
set
{
ToNumber.Disabled = value;
FromNumber.Disabled = value;
}
}
C# code
NxtDecimalNumberRange decimalnumberrange = new NxtDecimalNumberRange();
decimalnumberrange.IsMandatory = true;
decimalnumberrange.IsVisible = true;
decimalnumberrange.IsReadOnly = true;
script += decimalnumberrange.ToScript(RenderMode.AddTo, containerPanel);
NxtDecimalNumberRange decimalnumberrange1 = new NxtDecimalNumberRange();
decimalnumberrange.IsMandatory = true;
decimalnumberrange.IsVisible = true;
decimalnumberrange.IsReadOnly = true;
script += decimalnumberrange1.ToScript(RenderMode.AddTo, containerPanel);
ThanksAnulekha
Last edited by Daniil; Feb 27, 2012 at 10:26 AM.
Reason: [CLOSED]