コード例 #1
0
    protected void rptSubHeaders_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e == null)
        {
            throw new ArgumentNullException(nameof(e));
        }

        Controls_ChecklistControls_ChecklistItem ckli = (Controls_ChecklistControls_ChecklistItem)LoadControl("~/Controls/ChecklistControls/ChecklistItem.ascx");

        e.Item.Controls.Add(ckli);
        ckli.DataItem = (ChecklistRow)e.Item.DataItem;
    }
コード例 #2
0
    protected void accordion_ItemDataBound(object sender, AjaxControlToolkit.AccordionItemEventArgs e)
    {
        if (e == null)
        {
            throw new ArgumentNullException(nameof(e));
        }

        if (e.ItemType == AjaxControlToolkit.AccordionItemType.Content)
        {
            Controls_ChecklistControls_ChecklistItem ckli = (Controls_ChecklistControls_ChecklistItem)LoadControl("~/Controls/ChecklistControls/ChecklistItem.ascx");
            e.AccordionItem.Controls.Add(ckli);
            ckli.NoHeader = true;
            ckli.DataItem = ((ContainerRow)e.AccordionItem.DataItem);
        }
    }
コード例 #3
0
    protected void Bind()
    {
        if (m_checklistRow == null)
        {
            return;
        }

        ContentRow  contentRow  = m_checklistRow as ContentRow;
        CheckboxRow checkboxRow = m_checklistRow as CheckboxRow;

        // Container rows are subclasses of contentrow, so check for contentrow last.
        if (m_checklistRow is ContainerRow containerRow)
        {
            mvItem.SetActiveView(vwRepeater);
            if (!NoHeader)
            {
                lblHeader.Text = HttpUtility.HtmlEncode(m_checklistRow.Content ?? string.Empty);
            }

            List <ChecklistRow> contents   = new List <ChecklistRow>();
            List <ChecklistRow> tabs       = new List <ChecklistRow>();
            List <ChecklistRow> headers    = new List <ChecklistRow>();
            List <ChecklistRow> subheaders = new List <ChecklistRow>();


            foreach (ChecklistRow ckl in containerRow.ContainedItems)
            {
                if (ckl is TabContainer)
                {
                    tabs.Add(ckl);
                }
                else if (ckl is HeaderContainer)
                {
                    headers.Add(ckl);
                }
                else if (ckl is SubHeaderContainer)
                {
                    subheaders.Add(ckl);
                }
                else
                {
                    contents.Add(ckl);
                }
            }

            // OK.  First bind the leaf content nodes - plain text and checkbox items.
            rptRows.DataSource = contents;
            rptRows.DataBind();

            // Now bind subheaders
            if (subheaders.Count != 0)
            {
                rptSubHeaders.DataSource = subheaders;
                rptSubHeaders.DataBind();
            }

            // Now bind the header rows:
            accordionRows.DataSource = headers;
            accordionRows.DataBind();

            // Finally, do any tabs
            for (int i = 0; i < tabs.Count; i++)
            {
                ChecklistRow tabRow            = tabs[i];
                AjaxControlToolkit.TabPanel tp = new AjaxControlToolkit.TabPanel();
                tabRows.Tabs.Add(tp);
                tp.HeaderText = HttpUtility.HtmlEncode(tabRow.Content);
                tp.ID         = String.Format(CultureInfo.InvariantCulture, "cklTabItem{0}", i);
                Controls_ChecklistControls_ChecklistItem ckli = (Controls_ChecklistControls_ChecklistItem)LoadControl("~/Controls/ChecklistControls/ChecklistItem.ascx");
                tp.Controls.Add(ckli);
                ckli.NoHeader = true;
                ckli.DataItem = tabRow;
            }
        }
        else if (checkboxRow != null || contentRow != null)
        {
            rptRows.DataSource = new ChecklistRow[] { m_checklistRow };
            rptRows.DataBind();
        }
    }