Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I need to add a new page in a new doc library. That works fine. In the page I need to add a webpart to filter list data from a view bases on 3 columns from the view.

The following code is not throwing any exception but its not either filtering the data. There are 3 items in the list

// Uncomment the method below to handle the event raised after a feature has been activated.
        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            string pageUrl=AddSponsoringEventsDashboardPage(properties.Feature.Parent as SPWeb);
            AddNavigationLink(properties.Feature.Parent as SPWeb, pageUrl);
        }



        private void AddNavigationLink(SPWeb currentUnsafeWeb, string url)
        {
            bool allowUnsafeUpdatesSetting = false;

            try
            {
                // Cleanup all  quick links
                allowUnsafeUpdatesSetting = currentUnsafeWeb.AllowUnsafeUpdates;
                currentUnsafeWeb.AllowUnsafeUpdates = true;

                SPNavigationNodeCollection quickLaunchNodes = currentUnsafeWeb.Navigation.QuickLaunch;

                foreach (SPNavigationNode node in quickLaunchNodes)
                {
                    if (string.Compare(node.Title, "Lists") == 0)
                    {
                        SPNavigationNode dataNode = new SPNavigationNode("$Resources:SPNLSponsoring,Navigation_SponsoringEventsDashboard_Title", url, true);
                        node.Children.AddAsFirst(dataNode);
                        currentUnsafeWeb.Update();
                        break;
                    }
                } 
            }
            catch
            {
                throw;
            }
            finally
            {
                currentUnsafeWeb.AllowUnsafeUpdates = allowUnsafeUpdatesSetting;
            }

        }

        private string AddSponsoringEventsDashboardPage(SPWeb currentWeb)
        {
            Logger.LogDebug("NLSponsoringSiteConfigSponsoringCentralEventReceiver", "AddSponsoringEventsDashboardPage(SPWeb currentWeb)", "BEGIN");

            SPListTemplateType tempType = SPListTemplateType.DocumentLibrary;
            Guid guid = currentWeb.Lists.Add("$Resources:SPNLSponsoring,SponsoringDashboardDocumentLibrary_Title",
                "$Resources:SPNLSponsoring,SponsoringDashboardDocumentLibrary_Description", tempType);

            SPList docLibrary = currentWeb.Lists[guid];

            SPLimitedWebPartManager mgrPageManager = null;
            SPFile pageDashboard = null;
            string strurl;
            try
            {
                pageDashboard = docLibrary.RootFolder.Files.Add(String.Format("{0}/{1}", docLibrary.RootFolder.ServerRelativeUrl, "sponsoringeventdashboard.aspx"), SPTemplateFileType.StandardPage);
                pageDashboard.CheckOut();

                #region Add Filter webpart
                SimpleFormWebPart sfwp = new SimpleFormWebPart();
                sfwp.Title = "Filter";
                sfwp.Content = "<div onkeydown=\"javascript:if (event.keyCode == 13) _SFSUBMIT_\"><input type=\"text\" name=\"T1\"/>" +
                                "<input type=\"button\" value=\"Go\" onclick=\"javascript:_SFSUBMIT_\"/></div>";
                string idWebPartFilter = pageDashboard.AddWebPartToPage(sfwp, Constants.WEBPART_ZONE_HEADER, 1, PartChromeType.Default);
                #endregion

                #region Add new view
                SPList list = currentWeb.Lists[SponsoringCommon.Constants.LISTNAMES_SPONSORINGEVENTSNAME];
                SPView oView = list.Views[SponsoringCommon.Constants.VIEWS_SPONSORINGEVENTS_DEFAULTLIST].Clone(SponsoringCommon.Constants.VIEWS_SPONSORINGEVENTS_DASHBOARD_NAME, 20, true, false);

                oView.Query = "<Where>" +
                                 "<Or>" +
                                  " <Or>" +
                                   "  <Contains>" +
                                   "    <FieldRef Name=\"EventNumber\"/>" +
                                   "    <Value Type=\"Text\">{ParamEventNumber}</Value>" +
                                    " </Contains>" +
                                    " <Contains>" +
                                    "   <FieldRef Name=\"EventName\"/>" +
                                    "   <Value Type=\"Text\">{ParamEventName}</Value>" +
                                    " </Contains>" +
                                   "</Or>" +
                                   "<Contains>" +
                                     "<FieldRef Name=\"EventLocation\"/>" +
                                     "<Value Type=\"Text\">{ParamEventLocation}</Value>" +
                                   "</Contains>" +
                                 "</Or>" +
                              " </Where>";

                oView.Update(); 
                #endregion


                #region Add XSLT List View WebPart
                string idWebPartSponsoringEvents = "ID_SponsoringEvents";
                pageDashboard.AddXSLTListViewWebPartToPage(currentWeb,
                    SponsoringCommon.Constants.LISTNAMES_SPONSORINGEVENTS, idWebPartSponsoringEvents,
                    string.Empty, Constants.WEBPART_ZONE_HEADER, 2,
                    SponsoringCommon.Constants.VIEWS_SPONSORINGEVENTS_DASHBOARD_NAME, PartChromeType.Default, false);

                mgrPageManager = pageDashboard.GetLimitedWebPartManager(PersonalizationScope.Shared);
                XsltListViewWebPart lvwpOrganisation = mgrPageManager.WebParts[idWebPartSponsoringEvents] as XsltListViewWebPart;
                lvwpOrganisation.ParameterBindings += "<ParameterBinding Name=\"ParamEventNumber\" Location=\"None\" DefaultValue=\"\" />" +
                                                    "<ParameterBinding Name=\"ParamEventName\" Location=\"None\" DefaultValue=\"\" />" +
                                                    "<ParameterBinding Name=\"ParamEventLocation\" Location=\"None\" DefaultValue=\"\" />";

                mgrPageManager.SaveChanges(lvwpOrganisation);
                #endregion

                #region Add Connection
                string[] colConsumerFields = { "EventNumber", "EventName", "EventLocation" };
                string[] colProviderFields = { "T1", "T1", "T1" };

                // connect filter to organisation-webpart
                pageDashboard.ConnectWebPartsByRowToParameters(idWebPartSponsoringEvents,
                    Constants.WEBPART_CONNECTION_DFWPPARAMETERCONSUMERID,
                    colConsumerFields,
                    idWebPartFilter,
                    Constants.WEBPART_CONNECTION_SFWPROWPROVIDERID,
                    colProviderFields);
                #endregion

                pageDashboard.CheckIn(String.Empty);
                strurl = pageDashboard.Url;
            }
            catch (Exception)
            {
                if (pageDashboard != null) pageDashboard.UndoCheckOut();
                throw;
            }

            Logger.LogDebug("NLSponsoringSiteConfigSponsoringCentralEventReceiver", "AddSponsoringEventsDashboardPage(SPWeb currentUnsafeWeb)", "WebParts added. Start configuring connections.");

            return strurl;
        }

enter image description here

share|improve this question
add comment

2 Answers 2

up vote 0 down vote accepted

problem was ParameterBinding

I was not using the same name., it has to match.

share|improve this answer
    
might be best to show the lines which caused the issue and then the lines once they are fixed... –  Mauro Jul 13 '12 at 9:42
add comment

I reckon you could do this with no code using Sharepoint Designer e.g using webpart connections. Cheers

share|improve this answer
    
no, we dont use spd –  L.V. Sharepoint Architect Jul 13 '12 at 8:28
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.