SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Custom Webpart in VisualWebpart nutzen... Fehler: Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden

Unbeantwortet Dieser Beitrag hat 6 Antworten

Ohne Rang
56 Beiträge
Stephan erstellt 11 Dez. 2013 11:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo ich versuch gerade ein selbst erstelltes Webpart in mein VisualWebPart-Projekt hinzuzufügen.

Also erstelle ich halt nur einen Kalender in mein CustomWebpart und füge es dem VisualWebPart hinzu.

Die Seite erstellt selbstständig den Link zum Customwebpart

<%@ Register Src="../_controltemplates/15/CCPersonalFilter/Filter.ascx" TagPrefix="uc1" TagName="Filter"%> 

 

Unten füge ich das Webpart im Sourcecode hinzu:

<div id="DivFilter" runat="server">

 <uc1:Filter runat="server" id="Filter" />

 </div>

 

 

Leider kann ich das ganze dann nicht hochladen. Ich bekomme jetzt immer den Fehler: Fehler 2 "InitializeControl" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden. C:\Projekte\CCPersonalFilter\CCPersonalFilter\VisualWebPart1\VisualWebPart1.ascx.vb 97 9 CCPersonalFilter

 

Was kann das sein?! Bzw wie bekomme ich das hin? Hab auch schon mit Codebehind versucht das Control zuadden, ergab aber das selbe...

Lustig ist auch das ich nun nicht mehr an die Elemente im Codebehind meiner VisualWebPart Startseite ran komme...

Hat da einer von euch vllt nen Rat?!?

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 Dez. 2013 13:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Tut mir leid, aber ich kann hier nichts genaues sagen. Dazu müßte man viel mehr Teile des Projekts sehen.

Hast Du einfach nur die ascx-Datei nach SharePoint deployed? Also ohne den kompilierten CodeBehind? Gibt es einen passenden SafeControl-Eintrag in der web.config? Und sind das wirklich beides Webparts und Du versuchst diese zu schachteln (also eines im anderen einbetten)? Das geht nicht.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
56 Beiträge
Stephan Als Antwort am 11 Dez. 2013 13:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Der Aufbau des VisualWebParts in der Projektmappe ist folgender:

Projektmappe
ControlTemplates
CCPersonenFilter
Filter.ascx
MyProject
Feature
Package
Interface
Service
VisualWebPart1
Elements.xml
SharePointProjectItem.spdata
VisualWebPart1.ascx
VisualWebPart1.webpart
Key.snk
packages.config

Ich will die ganze Projektmappe deployen.

Oder gehe ich die Sache falsch an und muss nur eine leere Projektmappe erstellen und das Benutzersteuerelement in diese Mappe erstellen und hochladen...

Quasi ohne VisualWebPart?

 

Web.config habe ich nicht editiert. Es gibt aber in der SharePointProjectItem.spdata folgenden eintrag:

<ProjectItem Type="Microsoft.VisualStudio.SharePoint.WebPart" DefaultFile="VisualWebPart1.ascx" SupportedTrustLevels="All" SupportedDeploymentScopes="Site" xmlns="http://schemas.microsoft.com/VisualStudio/2010/SharePointTools/SharePointProjectItemModel">
  <Files>
    <ProjectItemFile Source="Elements.xml" Target="VisualWebPart1\" Type="ElementManifest" />
    <ProjectItemFile Source="VisualWebPart1.webpart" Target="VisualWebPart1\" Type="ElementFile" />
  </Files>
  <SafeControls>
    <SafeControl Name="SafeControlEntry1" Assembly="$SharePoint.Project.AssemblyFullName$" Namespace="CCPersonalFilter" TypeName="*" IsSafe="true" IsSafeAgainstScript="false" />
  </SafeControls>
</ProjectItem>

 

 

 

 

 

Mit freundlichen Grüßen

Stephan Jäger

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 Dez. 2013 14:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du brauchst für beide (Filter und Webpart) einen SafeControl-Eintrag. Außer sie sind im selben Namespace, Prüfe, ob der Namespace paßt.

Hat Filter.ascx CodeBehind? Oder Inline-Code? Und wovon erbt es?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
56 Beiträge
Stephan Als Antwort am 11 Dez. 2013 14:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

 

Inhalt der Makierten SharePointItem.spdata:

<?xml version="1.0" encoding="utf-8"?>
<ProjectItem Type="Microsoft.VisualStudio.SharePoint.MappedFolder" SupportedTrustLevels="FullTrust" SupportedDeploymentScopes="Package" xmlns="http://schemas.microsoft.com/VisualStudio/2010/SharePointTools/SharePointProjectItemModel">
  <ProjectItemFolder Target="ControlTemplates" Type="TemplateFile" />
</ProjectItem>

 

Inhalt der SharePointItem.spdata des VisualWebParts1:

<?xml version="1.0" encoding="utf-8"?>
<ProjectItem Type="Microsoft.VisualStudio.SharePoint.WebPart" DefaultFile="VisualWebPart1.ascx" SupportedTrustLevels="All" SupportedDeploymentScopes="Site" xmlns="http://schemas.microsoft.com/VisualStudio/2010/SharePointTools/SharePointProjectItemModel">
  <Files>
    <ProjectItemFile Source="Elements.xml" Target="VisualWebPart1\" Type="ElementManifest" />
    <ProjectItemFile Source="VisualWebPart1.webpart" Target="VisualWebPart1\" Type="ElementFile" />
  </Files>
  <SafeControls>
    <SafeControl Name="SafeControlEntry1" Assembly="$SharePoint.Project.AssemblyFullName$" Namespace="CCPersonalFilter" TypeName="*" IsSafe="true" IsSafeAgainstScript="false" />
  </SafeControls>
</ProjectItem>

Filter.ascx hat zwar ne Codebehind aber das soll nix drin stehen ausser 2 Property's die Per VisaulWebPart übergeben werden (ListenGuid und Ansichtname) die ich dann per Client nutzen will...

Die Filter.ascx hat nen anderen Namespace... Hab ihn auch schon hinzugefügt in der SharePointItem.spdata des VisualWebParts1 sah dann so aus... Trotzdem immer der selbe Fehler...

<?xml version="1.0" encoding="utf-8"?>
<ProjectItem Type="Microsoft.VisualStudio.SharePoint.WebPart" DefaultFile="VisualWebPart1.ascx" SupportedTrustLevels="All" SupportedDeploymentScopes="Site" xmlns="http://schemas.microsoft.com/VisualStudio/2010/SharePointTools/SharePointProjectItemModel">
  <Files>
    <ProjectItemFile Source="Elements.xml" Target="VisualWebPart1\" Type="ElementManifest" />
    <ProjectItemFile Source="VisualWebPart1.webpart" Target="VisualWebPart1\" Type="ElementFile" />
  </Files>
  <SafeControls>
    <SafeControl Name="SafeControlEntry1" Assembly="$SharePoint.Project.AssemblyFullName$" Namespace="CCPersonalFilter" TypeName="*" IsSafe="true" IsSafeAgainstScript="false" />
    <SafeControl Name="SafeControlEntry1" Assembly="$SharePoint.Project.AssemblyFullName$" Namespace="ControlTemplates.CCPersonalFilter" TypeName="*" IsSafe="true" IsSafeAgainstScript="false" />
  </SafeControls>
</ProjectItem>

Mit freundlichen Grüßen

Stephan Jäger

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 Dez. 2013 15:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn die beiden Namepsaces stimmen, fällt mir jetzt auf die Schnelle nichts mehr ein :-(

Man müßte das wohl genauer analysieren. Ich würde an Deiner Stelle einfach nochmal mit einem ganz einfachen Testprojekt von vorne anfangen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
56 Beiträge
Stephan Als Antwort am 11 Dez. 2013 15:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Mhh also in der Webconfig stehen beide ( Studio hat das Eingetragen)

In der SharePointProjectItem.spdata stehts auch:

Und im Sourcecode sieht es so aus:

Ich raff nicht wieso der im Sourcecode sagt  das UserControl ist unbekannt...

Hab neues Projekt aufgesetzt genau das selbe.. Ich muss doch iwas falsch machen...

 

Ausserdem erkennt er im VisualWebPart nun aufeinmal keine Objecte mehr die auf der Clientseite sind:

 

Sobald ich die Zeile:
<%@ Register Src="~/_controltemplates/15/CCPersonalFilter/UserControl1.ascx" TagPrefix="uc1" TagName="UserControl1" %>

rausnehme klappt alles wieder wunderbar!

Mit freundlichen Grüßen

Stephan Jäger