Beispiel #1
0
        /// <summary>
        /// Sets hidden fields,labels, etc... for each widget
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BuildWidget(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                // get reference to widget object
                BaseWidgetControl widget         = e.Item.DataItem as BaseWidgetControl;
                Label             widgetTitle    = e.Item.FindControl("WidgetTitle") as Label;
                Label             widgetHelpText = e.Item.FindControl("WidgetHelpText") as Label;
                HiddenField       widgetName     = e.Item.FindControl("WidgetName") as HiddenField;
                HiddenField       stateField     = e.Item.FindControl("StateField") as HiddenField;

                // set hidden state tracker
                widgetName.Value = widget.Name;
                stateField.Value = widget.State.ToString();
                // set widget title and description
                widgetTitle.Text    = widget.Title;
                widgetTitle.ToolTip = widget.Description;
                widgetHelpText.Text = widget.HelpText;

                // hide "hidden" widgets
                if (widget.State == WidgetState.Hidden)
                {
                    e.Item.Visible = false;
                }
            }
        }
Beispiel #2
0
 /// <summary>
 /// Loads a widget into the repeater item by widget name
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void AddWidgetOnCreation(object sender, RepeaterItemEventArgs e)
 {
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
     {
         HiddenField widgetName = e.Item.FindControl("WidgetName") as HiddenField;
         // widgets need to be dynamically loaded into placeholder on each post
         e.Item.Load += (a, b) =>
         {
             // widget name set during data-binding and post, load into container
             if (!string.IsNullOrEmpty(widgetName.Value) && WidgetLookup.ContainsKey(widgetName.Value))
             {
                 BaseWidgetControl widget        = WidgetLookup[widgetName.Value];
                 PlaceHolder       widgetContent = e.Item.FindControl("WidgetContent") as PlaceHolder;
                 // add widget to placeholder
                 widgetContent.Controls.Add(widget);
             }
         };
     }
 }