More in this section
Forums / General Discussions / Extending the EventsView control

Extending the EventsView control

The forums are in read-only mode. In case that you want to directly contact the Progress Sitefinity team use the support center. In our Google Plus group you can find more than one thousand Sitefinity developers discussing different topics. For the Stack Overflow threads don’t forget to use the “Sitefinity” tag.
1 posts, 0 answered
  1. Sharon
    Sharon avatar
    39 posts
    Registered:
    14 Jun 2011
    09 Jul 2013
    Link to this post
    I am building a page for displaying upcoming and previously recorded webinars. The design calls for a drop-down list for our products at the top along with checkboxes for upcoming or recorded. I am supposed to use these to filter the webinars that are displayed.

    I am having trouble with the filtering part.I started with Events. I have added custom fields for the Product associated with the webinar and the recording URL. A previous contractor had already added a custom field for the registration. I'm using the category to choose between upcoming webinars and recorded ones.

    I updated \Sitefinity\Admin\ControlTemplates\Events\EventsItemEdit and EventsItemNew for the back end. I updated \Sitefinity\Admin\ControlTemplates\Events\Modes\ExpandableListMaster for the table display.

    Now I'm at the filtering part. I was thinking I could make a new control of my own that referenced the EventsView Control and then I can just update the FilterExpression property on Page_Load of my control based on what they chose for a product/ type.

    If my class is based on System.Web.UI.UserControl, I get the error:
    A required control was not found in the template for "". The control must be assignable form type "System.Web.UI.WebControls.Repeater" and must have ID "PageRepeaterHyperLink".

    If my class is based on Telerik.Events.WebControls.EventsView, I get the error
    error ASPNET: Make sure that the class defined in this code file matches the 'inherits' attribute, and that it extends the correct base class (e.g. Page or User Control).

    .ascx
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Webinars.ascx.cs" Inherits="custom_Webinars" %>
    <%@ Register TagPrefix="sfEvents" Namespace="Telerik.Events.WebControls" Assembly="Telerik.Events" %><asp:Table ID="tblSearch" runat="server" CssClass="searchtable">
        <asp:tablerow>
            <asp:tablecell>
                <asp:Label ID="lblSearch" runat="server" Text="Use the criteria below to search webinars:" CssClass="searchheader"></asp:Label>
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                <table>
                    <tr>
                        <td>
                            <label class="searchsubhead">Product:</label>                      
                        </td>
                        <td>
                            <label class="searchsubhead">Type:</label>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:DropDownList ID="ddProduct" runat="server" AutoPostBack="True">
                                        <asp:ListItem Text="Choose a Product" Value=""></asp:ListItem>
                                        <asp:ListItem Text="SharePoint"></asp:ListItem>
                                        <asp:ListItem Text="Exchange"></asp:ListItem>
                                </asp:DropDownList>                      
                        </td>
                        <td>
                            <asp:CheckBoxList ID="cblType" runat="server" AutoPostBack="True" CssClass="typecheckbox">
                                <asp:ListItem Value="Upcoming">Upcoming</asp:ListItem>
                                <asp:ListItem Value="Recorded">Recorded</asp:ListItem>
                            </asp:CheckBoxList>
                        </td>
                    </tr>
                </table>
            </asp:tablecell>
            <asp:tablecell>
                Ad goes here
            </asp:tablecell>
        </asp:tablerow>
    </asp:Table><sfEvents:EventsView ID="sfEventsView" runat="server" ProviderName="Events" BehaviorMode="Auto"></sfEvents:EventsView>

    .ascx.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Telerik.Cms.Engine;
    using System.Collections;
    [Telerik.Web.UrlRewriterService("Telerik.Cms.Engine.ContentUrlRewriterService, Telerik.Cms.Engine")]
    public partial class custom_Webinars : Telerik.Events.WebControls.EventsView
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // set up filter based on choices
        }}

    What do I need to do to make this work?
1 posts, 0 answered