volume_up

A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

volume_up

A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

"Remember" value of custom property

So, I've created my first ever custom property - a dynamically filled DropDownList. Works great until I go back and edit an already saved page because it doesn't remember what my choice was. I'm sure there is some function I need to call to do this, I just don't know which one it is. Care to help me out? How do I set the selected value to the saved value from the last edit?

#49715
Mar 29, 2011 15:43
Vote:

Depends on how your code looks, but something like this:

public class PropertyWeekNumberDropDownControl : PropertySelectControlBase
{
	protected override void SetupEditControls()
	{
		this.SetupDropDownList();
	}

	private void SetupDropDownList()
	{
		this.EditControl.DataSource = GetWeekNumbers;

		if (this.WeekNumberDropDown.Value != null)
		{
			this.EditControl.SelectedValue = this.WeekNumberDropDown.Value as string;
		}

		this.EditControl.DataBind();
	}

	public PropertyWeekNumberDropDown WeekNumberDropDown
	{
		get
		{
			return PropertyData as PropertyWeekNumberDropDown;
		}
	}
}

    

#49718
Mar 29, 2011 16:00

This should save your value:

 public override void ApplyEditChanges()
            {
                if (!String.IsNullOrEmpty(yourControl.SelectedValue))
                {
                    SetValue(yourControl.SelectedItem.Value);
                }
            }

 And then to set it you need to go through your options and then check if its equal the current value:

 foreach (var val in yourListOfOptions)
 {
 ListItem li = new ListItem(val, yourListOfOptions[val]);
   li.Selected = currentPropertyValue == yourListOfOptions[val];
 
   yourControl.Items.Add(li);
 }

 

 Something like that should do it I think

 

 

#49719
Mar 29, 2011 16:01

That did the trick. I was uncertain how it would assume the Get would belong to the page being edited but with a function name that revealing I see the connection. Thanks guys!

#49720
Mar 29, 2011 16:48

If someone might read this one still I've got another question. Is it possible to reach a dynamic property in the code for the custom property? I need to get the value of one to fill the dropdown. I usually just use CurrentPage["MyProperty"] but that won't work in this case.

#49734
Mar 30, 2011 9:42
error This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.