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.




Fehler beim HTML Control hinzufügen ...

Unbeantwortet Dieser Beitrag hat 6 Antworten

Ohne Rang
16 Beiträge
slip1 erstellt 6 Aug. 2009 15:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Leute,

nun habe ich auch schon mein zweites Problem. Ich habe mir den WSP Builder installier, da funktioniert das auch mit der Mehrsprachigkeit (super Tool), doch sobald ich eine HTML Control (z.b.: TextBox) hinzufügen will kann ich das WebPart nicht mehr hinzufügen (im MOSS 2007). Das "normale" WebPart, dass nur "Hello World" ausgibt funktioniert.

Hier der erweiterte Code:

        TextBox textBox1 = null;
       
        //CreateChildControls überschreiben
        protected override void CreateChildControls()
        {
            textBox1 = new TextBox();
            textBox1.Text = "*";
            Controls.Add(textBox1);
        }

        //RenderContents überschreiben
        protected override void RenderWebPart(HtmlTextWriter writer)
        {
            writer.Write("<table border=\"0\" width=\"50%\">");
            writer.Write("<tr><td>Tagname:</td>");
            writer.Write("<td>");
            textBox1.RenderControl(writer);
            writer.Write("</td></tr>");
            writer.Write("</table>");
        }

Woran kann das liegen? Bzw. gibt es hier eine schönere/bessere Methode als mit diesen Tabellen zu arbeiten?

Gruss,

slip001

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Aug. 2009 15:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="slip1"]sobald ich eine HTML Control (z.b.: TextBox) hinzufügen will kann ich das WebPart nicht mehr hinzufügen (im MOSS 2007). Das "normale" WebPart, dass nur "Hello World" ausgibt funktioniert.[/quote]

Kann es sein, daß Deinem Projekt einfach eine Referenz auf die System.Web.dll fehlt? Oder ein using-Statement? Läßt sich der Code kompilieren?

[quote user="slip1"]gibt es hier eine schönere/bessere Methode als mit diesen Tabellen zu arbeiten?[/quote]

Selbstverständlich. Ich würde die RenderWebPart nur in Ausnahmefällen überschreiben...
Erstelle die Tabelle einfach als HTML- oder Webcontrol in CreateChildControls, füge sie this.Controls hinzu und die Webpartinfrastruktur kümmert sich um den Rest. Das geht dann etwa so:

Table tbl = new Table();
TableRow tr = new TableRow();
TableCell td = new TableCell();
textBox1 = new TextBox();
td.Controls.Add(textBox1);
tr.Cells.Add(td);
tbl.Rows.Add(tr);
this.Controls.Add(tbl);

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
16 Beiträge
slip1 Als Antwort am 6 Aug. 2009 16:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also der Code lässt sich ohne weiteres kompilieren und auch deployen. Liegt es vielleicht an der webconfig? Ich erhalte diese Meldung.

Gruss,

slip001

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Aug. 2009 16:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Gut möglich, daß da der Eintrag in der web.config bei SafeControls fehlt.

Noch eine Idee: ist die Webpart-Klasse auch public?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
16 Beiträge
slip1 Als Antwort am 10 Aug. 2009 10:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]

Gut möglich, daß da der Eintrag in der web.config bei SafeControls fehlt.

Noch eine Idee: ist die Webpart-Klasse auch public?

[/quote]
Also in den SafeControls steht der Namespace Name drin.
Die WebPart klasse ist auch public.
Ohne Rang
16 Beiträge
slip1 Als Antwort am 13 Aug. 2009 09:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich habe noch eine klitzekleine Frage hierzu, vielleicht kann mir noch wer helfen. Ich benutze ja den WSPBuilder und naja ich erstelle mir ein Feature, das kann ich auch unter SharePoint aktivieren, nur fehlt mir der Eintrag unter WebParts. D.h.: ich kann es nicht hinzufügen.

Nur wenn ich es über "importieren" mache funktioniert es. Die Gruppe wird doch unter "elements.xml" eingetragen, oder. Diese wird bei mir aber gar nicht angezeigt.

Kann mir hier noch wer helfen?

Gruss, slip001

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 Aug. 2009 14:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe keine Ahnung, was der WSPBuilder da so alles im Hintegrund treibt (oder auch nicht), aber grundsätzlich brauchst Du für ein WebPart eine elements.xml mit diesem Inhalt:

<Module Name="Webpartname" List="113" Url="_catalogs/wp" Path="WebParts" RootWebOnly="True">
<
File Url="DeinWebPart.webpart" Type="GhostableInLibrary">
<
Property Name="Group" Value="Gruppenname" />
</
File>
</
Module>

und eine DeinWebPart.webpart, die Du auch als ElementFile beim Feature angeben mußt.

Viele Grüße
Andi
af @ evocom de
Blog