forum

Home / DeveloperSection / Forums / HiddenField.Value is an empty string upon postback inside my custom control

HiddenField.Value is an empty string upon postback inside my custom control

Samuel Fernandes 1987 23-Aug-2014

I have a custom control that has a hidden field. Upon postback I want to obtain the value stored in it, but it's always an empty string. any thoughts?

I am performing client-side manipulation of the hidden field values and have verified in firebug that the fields are correct before issue a post back

Here is the setup:

public class DualListPanel : SWebControl, INamingContainer
    {
        protected IList<DlpItem> UnassignedList { get; set; }
        protected IList<DlpItem> AssignedList { get; set; }
        private HiddenField assignedItemsField, unassignedItemsField;
        public DualListPanel()
        {
            CssClass = "DualListPanel";
            EnableViewState = true;
        }
        #region ViewState
        protected override void LoadViewState(object savedState)
        {
            var state = savedState as object[];
            UnassignedList =   state[0] as List<DlpItem>;
            AssignedList = state[1] as List<DlpItem>;
            base.LoadViewState(state[2]);
        }
        protected override object SaveViewState()
        {
            object[] state = new object[3];
            state[0] = UnassignedList;
            state[1] = AssignedList;
            state[2] = base.SaveViewState();
            return state;
        }
        #endregion
        #region WebControl Overrides
        protected override void OnInit(EventArgs e)
        {
            EnsureChildControls();
            GetUnassignedList(); //omitted method
            GetAssignedList(); //omitted method
            base.OnInit(e);
        }
        protected override void CreateChildControls()
        {         
            assignedItemsField = new HiddenField();
            assignedItemsField.ID = "HiddenAssignedItems";
            assignedItemsField.EnableViewState = true;
            unassignedItemsField = new HiddenField();
            unassignedItemsField.ID = "HiddenUnassignedItems";
            unassignedItemsField.EnableViewState = true;
            Controls.Add(assignedItemsField);
            Controls.Add(unassignedItemsField);
            base.CreateChildControls();
        }
        #endregion
        #region Item Lists Retrieval
        public string GetCommaDelimUnassignedItems()
        {
            return unassignedItemsField.Value;
        }
        public string GetCommaDelimAssignedItems()
        {
            return assignedItemsField.Value;
        }
        #endregion
    }


Updated on 23-Aug-2014

Can you answer this question?


Answer

1 Answers

Liked By