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.




Blogs von unterschiedlichen Sites zusammenführen

Unbeantwortet Dieser Beitrag hat 35 Antworten

Ohne Rang
194 Beiträge
Florian Lippert erstellt 5 Apr. 2011 14:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Moin moin,

ich versuche den Inhalt unterschiedlicher Blogs in einer Ansicht dar zu stellen. Der Punkt ist der, dass die Blogs sich auf unterschiedlichen Sites befinden. Es handelt sich bei diesen Blogs um "Personal Blogs" in der PersonalSite. (z.B. httP://servername/my/personal/benutzername/blogname)

Hatte bis jetzt nur die Idee, dass ich eine neue Liste da anlege wo auch die neue Ansicht enstehen soll (z.B. http://servername/). Diese Liste soll dann alle Blogs enthalten die in der Übersicht/Ansicht aufgelistet werden sollen. Dann würde ich mit anhand der URLs die Blogbeiträge holen und alle sammeln, sortieren ect. und dann anzeigen.

Aber: Geht das nicht leichter und schöner?

Weil was ist, wenn ein Blog dazu kommt - kann dieser nicht automatisch mit aufgenommen werden?

Für Ideen und Lösungen bin ich sehr dankbar!

Cya

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Apr. 2011 14:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Da die Original-Blogs in den MySites und damit jeweils in eigenen SiteCollections liegen, geht es nicht einfacher. Es sei denn Du programmierst ein passendes WebPart.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 5 Apr. 2011 14:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

grml -.- naja dann muss das wohl sein...

Kann ich den mit nem EventReceiver drauf reagieren, wenn ein Blog angelegt wird?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Apr. 2011 14:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Grundsätzlich ja, aber warum sollte man das tun. Mit eigenem Code kannst Du ja alle MySites durchgehen und dort nach einem Blog suchen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 5 Apr. 2011 15:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]

Grundsätzlich ja, aber warum sollte man das tun. Mit eigenem Code kannst Du ja alle MySites durchgehen und dort nach einem Blog suchen.

[/quote]

Stimmt...

In der Frage war leider ein Fehler von mir drin:

Es sollen auch noch andere Blogs mit behandelt werden. Bei diesen Blogs handelt es sich um "Themen-Blogs" und bei diesen weiß ich nich wo sie liegen..

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Apr. 2011 15:34
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Florian Lippert"]Bei diesen Blogs handelt es sich um "Themen-Blogs" und bei diesen weiß ich nich wo sie liegen..[/quote]

Und wie erkennst Du sie dann?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 5 Apr. 2011 15:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Der Ansatz ist: Alle Blogs im SharePoint bzw. abwärts der Seite wo die Ansicht erstellt wird, sollen berücktsichtigt werden...

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Apr. 2011 16:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also innerhalb einer SiteCollection geht das natürlich einfacher, z.B. mit dem Content Query Wepart (Webpart für Inhaltsabfragen).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 6 Apr. 2011 10:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Handelt es sich bei dem Webpart den du genannt hast um ein Feature der Enterprise Version?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Apr. 2011 11:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Auf jeden Fall SharePoint Server. Ob Standard oder Enterprise weiß ich gerade nicht.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 6 Apr. 2011 11:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hm ok, find ich eben so nich..

Eine weiterführende Frage zu dieser Ansicht:

Ich brauche einen Parameter der mir angibt, dass z.B. nur die Posts der letzten 14 Tage angezeigt werden. Wo speichere ich sowas am besten, wenn ich es nicht in einer "Config-Liste" speichern möchte?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Apr. 2011 12:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wo willst Du denn den Parameter haben? Das hängt letztlich von der Methode ab.

Bei einem eigenen Webpart kann man das als Eigenschaft definieren, die dann über die Webparteinstellungen gepflegt wird. Man kann sich aber auch auf den Quellisten eine passende Ansicht definieren und dann diese abfragen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 6 Apr. 2011 12:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Es würde sich hierbei um einen eigenen Webpart handeln. Wo würde ich das den einstellen können?

Und: Würde diese Einstellung für jede einbettung dieses Webparts gelten oder nur pro Site? Ich nehme mal an, allgemein oder?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 7 Apr. 2011 08:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Florian Lippert"]Es würde sich hierbei um einen eigenen Webpart handeln. Wo würde ich das den einstellen können?[/quote]

Jede public property, die mit einem Browsable/WebBrowsable-Attribut versehen wird, wird von der Webpart-Infrastruktur verwaltet und gespeichert.

[quote user="Florian Lippert"]Würde diese Einstellung für jede einbettung dieses Webparts gelten oder nur pro Site?[/quote]

Derartige Einstellungen gelten immer nur für die eine Instanz des Webparts. Du kannst aber einen geeigneten Defaultwert vorgeben, der immer gilt, bis ihn jemand ändert.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 13 Apr. 2011 11:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke Andi für die Antwort. Damit muss ich mich dann später noch einmal beschäftigen.

Ich hab eben ein anderes Problem:

[quote]

SPQuery findNewPosts = new SPQuery();
findNewPosts.Query =
                "<Where>" +
                    "<Gt>" +
                    "<FieldRef Name='PublishedDate' />" +
                    "<Value Type='DateTime'>" + sinceThisDate + "</Value>" +
                    "</Gt>" +
                "</Where>";
SPListItemCollection searchResults = postsList.GetItems(findNewPosts);

[/quote]

Ich bekomme allerdings 0 Ergebnisse zurück (und ja, es wurden Beiträge seit dem Datum veröffentlicht). Woran kann das liegen? Das selbe Problem habe ich bei der Liste mit den Kommentaren....

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 Apr. 2011 11:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ein Datum uß immer in diesem Format angegeben werden: yyyy-MM-ddThh:mm:ssZ

Mehr Informationen: http://blogs.evocom.de/af/archive/2010/12/03/caml-anfragen-in-sharepoint.aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 13 Apr. 2011 11:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hab den Fehler eben selbst gefunden -.-

Das Datum, dass man an die Query übergibt muss das richtige Format haben:

SPUtility.CreateISO8601DateTimeFromSystemDateTime(date)

date = das eigene Datum als DateTime

der Rückgabewert ist dann ein String.

@ andi - danke. Dein Beitrag war eben noch nich da :P

Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 4 Mai 2011 13:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So, dieses Problem liegt nun wieder bei mir auf dem Tisch :P

Situation: Ich brauche alle (Blog)Beiträge und (Blog)Kommentare in einer SiteCollection.

An sich wollte ich das mit Hilfe des ContentTypes machen.

Meine Frage wäre nun wie mach ich das am Besten? Ich hatte es schon mit einer KeywordQuery versucht, aber keine Results bekommen.

[quote]

KeywordQuery newKeyQuery = new KeywordQuery(site);
newKeyQuery.ResultTypes = ResultType.RelevantResults;
newKeyQuery.EnableStemming = true;
newKeyQuery.EnableUrlSmashing = true;
newKeyQuery.QueryText = "Beitrag";
 ResultTableCollection qResults = newKeyQuery.Execute();
ResultTable qResultTable = qResults[ResultType.RelevantResults];
DataTable myTable = new DataTable();
myTable.Load(qResultTable, LoadOption.OverwriteChanges);

[/quote]

Oder kann ich das ganze auch über ein Suchergebnis "füllen"? (So nen crawlen)

Danke für eure Hilfe!

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Mai 2011 14:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich weiß nicht mehr, was in diesem Thread schon alles besprochen wurde (und bin zu faul zum Nachlesen), aber ich würde es mit einer SPSiteDataQuery versuchen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 4 Mai 2011 14:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hm... wieder keine Ergebnisse:

[quote]

using (SPSite site = new SPSite(currentSiteUrl))
            {
                SPWeb web = site.OpenWeb();

                SPSiteDataQuery q = new SPSiteDataQuery();
                q.ViewFields = "<FieldRef Name=\"Title\"/>";
                q.Lists = "<Lists ServerTemplate=\"0\"/>";
                q.Webs = "<Webs Scope=\"Recursive\"/>";
                q.Query = "<Where>" +
                            "<IsNotNull>" +
                               "<FieldRef Name=\"Title\"/>" +
                            "</IsNotNull>" +
                          "</Where>";

                DataTable dt = null;

                dt = web.GetSiteData(q);

}

[/quote]

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Mai 2011 15:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Florian Lippert"]q.Lists = "<Lists ServerTemplate=\"0\"/>";[/quote]

Versuche mal 301 (für Blogs). http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splisttemplatetype.aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 4 Mai 2011 16:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ah danke!! So funktioniert es :)

Aber weißt du spontan, ob damit Beiträge und Kommentare abgedeckt werden?

| xD Antwort selbst gefunden xD 301 = Posts , 302 = Comments |

 

Ich würde an dieser Stelle ganz gerne noch nen anderen Punkt abfragen, der nicht wirklich was mit der Suche zu tun hat.

Das Thema ist Paging... Ich hab mir meine ergbeniss nun in ein ListView geladen und würde ganz gerne nen Paging machen, nur funktioniert das leider nicht so ganz... Das Paging erfolgt immer erst "nächsten" klick ( z.B. bin bei 0 und klicke weiter, bin ich immer noch bei 0, klicke ich nochmal bin ich bei 1... klicke ich dann zurück bin ich bei 2...)

Hier einmal mein Code:

ASP:[quote]

<asp:ListView ID="ViewBlogPosts" runat="server">
    <ItemTemplate>
                    <tr id="row" runat="server">
                        <td align="left">
                            <%# Eval("Title") %>
                        </td>
                    </tr>
                </ItemTemplate>
                <LayoutTemplate>
                    <table class="system">
                        <tr>
                            <th>
                                Title
                            </th>
                        </tr>
                        <tr id="itemPlaceholder" runat="server" />
                    </table>
                </LayoutTemplate>

</asp:ListView>

<asp:DataPager ID="DataPager1" runat="server" PageSize="15" PagedControlID="ViewBlogPosts">
    <Fields>
<asp:NextPreviousPagerField ButtonType="Link"
ShowFirstPageButton="true"
ShowPreviousPageButton="true"
ShowLastPageButton="true"
ShowNextPageButton ="true"/>
<asp:TemplatePagerField>
<PagerTemplate>
<b>
showing
<asp:Label runat="server" ID="CurrentPageLabel"
Text="<%# Container.StartRowIndex %>" />
to
<asp:Label runat="server" ID="TotalPagesLabel"
Text="<%# Container.StartRowIndex+Container.PageSize %>" />
( of
<asp:Label runat="server" ID="TotalItemsLabel"
Text="<%# Container.TotalRowCount%>" />
records)
<br />
</b>
</PagerTemplate>
</asp:TemplatePagerField>
 
</Fields>
</asp:DataPager>

[/quote]

C# Code:

[quote]

protected void Page_Load(object sender, EventArgs e)
        {
            //if (!Page.IsPostBack)
            //{
                GetSearchResults();
            //}
        }

        public void GetSearchResults()
        {
            string currentSiteUrl = Request.Url.ToString();
            using (SPSite site = new SPSite(currentSiteUrl))
            {
                SPWeb web = site.OpenWeb();

                SPSiteDataQuery q = new SPSiteDataQuery();
                q.ViewFields = "<FieldRef Name=\"Title\"/>";
                q.Lists = "<Lists ServerTemplate=\"301\"/>";
                q.Webs = "<Webs Scope=\"SiteCollection\">";
                q.Query = "<Where>" +
                            "<IsNotNull>" +
                               "<FieldRef Name=\"Title\"/>" +
                            "</IsNotNull>" +
                          "</Where>";

                DataTable dt = null;

                dt = web.GetSiteData(q);

                ViewBlogPosts.DataSource = dt;
                ViewBlogPosts.DataBind();
            }

        }

[/quote]

Wenn ich im PageLoad das PageIsPostBack wieder "einbinde" funktioniert garkein Paging mehr.. der wechselt dann die Seite nicht mehr..

Kann mir jemand helfen? Danke im voraus!

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Mai 2011 17:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wie das mit Deiner Methode geht, kann ich nicht sagen. Ich würde eher so (ähnlich) vorgehen:
http://sharepoint-snippets.com/spgridview-paging-sorting-filtering/

(Das war das Erste, das ich auf die Schnelle gefunden habe)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 25 Mai 2011 11:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ganze funktioniert ganz gut, auch wenn es mehr ist als ich brauche ;-)

Wie mache ich des den, dass ich über zwei ServerTemplates suche?

Also ich bräuchte die 301 und die 302..

Der Code um eine Liste abzufragen sieht so aus:

[quote]

string lists = "<Lists ServerTemplate=\"301\">";

[/quote]

Ich hab schon ein wenig hin und her probiert, aber dann passiert es immer, dass aller Inhalt gesucht wird und diese Einschränkung verfällt.

Jemand eine Idee?

Danke!

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Mai 2011 12:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das geht nur so:
http://geekswithblogs.net/bjackett/archive/2010/03/17/spsitedataquery-returns-only-one-list-type-at-a-time.aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
62 Beiträge
Patrick I. Als Antwort am 25 Mai 2011 14:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich würde an der Stelle mal meine Lösung in den Ring werfen =)

http://patssharepoint.wordpress.com/2011/05/23/blogeintrage-als-webpart

Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 25 Mai 2011 14:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So hatte ich es am Anfang auch gemacht... Das Problem hierbei war, dass es zu viel Zeit in anspruch genommen hat... Aber Danke ! ;-)

Ich will eben noch einmal eine andere Frage hinterher schieben - und zwar zum Eval & Co.

Ich füge bei dem GridView - ItemTemplate einen Link ein der dynamisch sein muss, folgenden Code hatte ich jetzt:

[quote]

PostBackUrl='<%# "http://servername/" + Eval("FileDirRef").ToString().Replace(";#", "").Replace("Eval("ID")", "") + "/Post.aspx?ID=" + Eval("ID") %>'

[/quote]

Das Problem ist, dass das Replace("Eval("ID")", "") nicht funtkioniert, weil da die " zu viel werden... Wie könnte ich das anders schreiben, damit das klappt?

Danke & viele Grüße

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Mai 2011 14:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Florian Lippert"]Das Problem ist, dass das Replace("Eval("ID")", "") nicht funtkioniert[/quote]

Die Anführungszeichen um Eval sind eh zu viel. Einfach weglassen:
Replace(Eval("ID"), "")

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 25 Mai 2011 14:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Top! Danke!

Nun hab ich aber noch was ;-)

[quote]

<asp:Label runat="server" Text='<%# Left(Eval("Body"), 50)%>'></asp:Label>

Meldung: "Der Name Left ist im aktuellen Kontext nicht vorhanden."

[/quote]

Ich nehme an, dass da eine Referenz in der ASP-Seite fehlt... Aber welche? :(

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Mai 2011 15:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Funktion gibt es nur in VB. In C#: Eval("Body").ToString().Substring(0, 50)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 25 Mai 2011 15:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok, dass erklär einiges ^^

Hatte halt nen Beispiel mit "Left()" gefunden und mich schon gewundert... Kann ich in der ASP-Seite so eig "alles" mit C# machen?

 

Ich muss leider nochmals das Thema "Suchen in mehreren ListenTemplates" aufgreifen...

Das Beispiel was Andi gepostet hatte (http://sharepointcommunity.de/forums/p/10512/32261.aspx#32261) funktioniert bei mir leider so nicht auf anhieb. Der Kennt das "Concat" nicht, bietet mir keine Lösung an und ich finde dazu leider auch nichts was mir helfen könnte... (Ich steh heute irgendwie absolut auf dem schlauch :( )

Ideen wie ich das "umgehen" kann? Thx!

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Mai 2011 15:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Florian Lippert"]Kann ich in der ASP-Seite so eig "alles" mit C# machen?[/quote]

So ziemlich, ja. Aber es ist nicht sehr sauebr. Code Behind ist schöner.

[quote user="Florian Lippert"]Das Beispiel was Andi gepostet hatte (s.o.) funktioniert bei mir leider so nicht auf anhieb. Der Kennt das "Concat" nicht[/quote]

Das ist Linq (using System.Linq)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 25 Mai 2011 15:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn du sagt, dass so was schöner ist im Code Behind zu machen (was ich dir auch absolut zustimme), wie würde ich den sowas machen?

Weil ich hab ja eig nur meine DataTable mit den Informationen drin und in der wollte ich eig nicht rumfuschen...

 

grml -.- Nächste Meldung:

[quote]"Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<System.Data.DataRow>' to 'System.Data.EnumerableRowCollection<System.Data.DataRow>'. An explicit conversion exists (are you missing a cast?) "
[/quote]

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Mai 2011 16:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Florian Lippert"]Wenn du sagt, dass so was schöner ist im Code Behind zu machen (was ich dir auch absolut zustimme), wie würde ich den sowas machen?[/quote]

Da hätte ich jetzt den gesamten Thread nochmal lesen müssen, weil ich nicht mehr weiß, wie Du überhaupt vorgehst. Normalerweise hat man zu einer aspx-Seite oder zu einem ascx-Control auch eine CodeBehind-Datei (*.aspx.cs). Code gehört dorthin.

Zu der Meldung kann ich auf die Schnelle nichts sagen, aber sie besagt ja, daß ein Type-Cast fehlt

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 26 Mai 2011 09:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe das zusammenfügen nun etwas anders gemacht (wo ich eig gleich hätte drauf kommen können xD)

[quote]

//Dier erste Query setzen und anwenden (ServerTemplate='301'):

DataTable sourceDataTableOne = SPContext.Current.Web.GetSiteData(query);

//Die Liste ändern:

query.Lists = "<Lists ServerTemplate='302' />";

//Evtl weitere Änderungen an der Query vornehmen

//Ergebnisse über die zweite Query holen

DataTable sourceDataTableTwo = SPContext.Current.Web.GetSiteData(query);

//Die DataTables zusammenführen

sourceDataTableOne.Merge(sourceDataTableTwo);

//Die Daten ans GridView hängen:

gView.DataSource = sourceDataTableOne.DefaultView;

gView.DataBind();

[/quote]

 

Ich möchte nun aber in der ASP Seite unterscheiden ob es vom ContentTyp ein "Beitrag" oder "Kommentar" ist und dem entsprechend den Link setzen. Folgendes hab ich getestet, aber es hat nich funktioniert:

[quote]

<asp:LinkButton runat="server" Text='<%# Eval("Title") %>' PostBackUrl='<%# if (Eval("FileDirRef") == "Beitrag") { "http://servername/" + Eval("FileDirRef").ToString().Replace(";#", "").Replace(Eval("ID").ToString(), "") + "/Post.aspx?ID=" + Eval("ID")} else { "http://servername/" + Eval("FileDirRef").ToString().Replace(";#", "").Replace(Eval("ID").ToString(), "") + "/Post.aspx?ID=" + Eval("PostTitle") %>' ></asp:LinkButton>

[/quote]

(PostTitle muss dann noch nen bischen angepasst werden..)

Kann ich so das C# nich in der ASP seite benutzen?

 

Ohne Rang
194 Beiträge
Florian Lippert Als Antwort am 31 Mai 2011 10:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich hab eine Lösung dazu gefunden:

[quote]

<%#

Eval("ContentType").ToString() == "Post" ?
 "<a href=https://servername/" + Eval("FileDirRef").ToString().Replace(";#", "").Replace(Eval("ID").ToString(), "") + "/Post.aspx?ID=" + Eval("ID") + ">" + Eval("Title") + "</a>"
 :
"<a href=https://servername/" + Eval("FileDirRef").ToString().Replace(";#", "").Replace(Eval("ID").ToString(), "").Replace("Comments", "Posts") + "/Post.aspx?ID=" + Eval("PostTitle").ToString().Split(';')[0] + ">" + Eval("Title") + "</a> (Comment on \'" + Eval("PostTitle").ToString().Split(';')[1].Replace("#", "") + "\')"

%>

[/quote]