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.




URL Parameter in aspx weiter verwenden

Dieser Beitrag hat 25 Antworten

Ohne Rang
31 Beiträge
michael erstellt 2 Aug. 2010 15:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen. Habe mal wieder ein Problem und hoffe auf Eure Hilfe. Ich möchte an eine aspx-Seite im Sharepoint über die URL mittels "?variable1=test" eine Variable übergeben. Soweit kein Problem. Ich habe aber leider noch nichts gefunden wie ich diese Variable in meiner aspx-Seite weiter verwenden kann.

Mit dieser Variablen soll ein Query ausgelösst werden. Dieser sieht wie folgt aus.

<Query> 
  <Where>   
    <Eq>    
      <FieldRef Name="BusinessProcessId" />
      <Value Type="Text">variable1</Value>
    </Eq> 
  </Where>
</Query>

Problem ist nun die Variable1.

Kann jemand helfen?

 

Grüße,

michael

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Aug. 2010 15:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das hängt etwas davon ab, wo genau Du das machen möchtest. In einem Control oder einem webpart:
this.Page.Request.QueryString["variable1"]

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 2 Aug. 2010 16:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ist ein Webpart. Würde dann also so aussehen?

<Query>
     <Where>
      <Eq>
       <FieldRef Name="BusinessProcessId"/>
       <Value Type="Text">this.Page.Request.QueryString["variable1"]</Value>
      </Eq>
     </Where>
    </Query>

oder bin ich da falsch? Bisher funktioniert es leider so noch nicht.

Gruß

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 3 Aug. 2010 07:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So sollte es funktionieren.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 3 Aug. 2010 08:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Denke ich habe den Fehler wo anderst. Ich bin auf einer Dokumentenbibliothek und markiere dort ein dokument. dieses dokument hat die eigenschaft "variable1".

ich habe nun versucht diese Variable zu übergeben mit
       URL.......?variable1={variable1}

So funktioniert es aber leider nicht. Es wird nicht der Wert aus variable1 übergeben, sondern nur der string.
Hoffe Du kannst mir folgen :)

Hast du da eine Idee?

Grüße

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 3 Aug. 2010 08:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="michael"]Hoffe Du kannst mir folgen :)[/quote]

Nein, sorry. Kannst Du das vielleicht nochmal genauer erklären?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 3 Aug. 2010 08:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

:) Ok, ich versuchs mal.

Habe also eine Dokumentenbibliothek. Diese hat unter anderem das Feld "variable1" Nun möchte ich den Inhalt dieser Variable übergeben.
Dachte also an:

   ?vaiable={variable1}

Beim abschicken kommt mir auf der anderen seite aber nicht der Inhalt der Variable an sondern es steht in der Url

   ?vaiable=variable1

Ich brauche aber

   ?variable=asterix
   ?variable=obelix
   ....

Kann ich also belibige inhalte von Spalten in der url mitübergeben oder nur die ItemId?

 

Grüße

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 3 Aug. 2010 09:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Und wie genau versuchst Du dieses Feld in die URL zu bekommen? Von alleine geht da gar nichts...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 3 Aug. 2010 09:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

darüber

?vaiable={variable1}

wenn ich

 ?vaiable={ItemId}
bekomme ich die ItemId

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 3 Aug. 2010 09:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Laß Dir doch nicht alles aus der Nase ziehen ;-)

Wo steht dieser "Code"? In einer Datenansicht? Und wo dort?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 3 Aug. 2010 09:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe eine Benutzerdefinierte Aktion erstellt. In dieser Aktion rufe ich auf:
http://meineSeite/documents/Forms/ShowByBusinessProcessId.aspx?variable={variable1}

In der Url steht dann
http://meineSeite/documents/Forms/ShowByBusinessProcessId.aspx?variable=variable1
sollte aber stehen z.B.
http://meineSeite/documents/Forms/ShowByBusinessProcessId.aspx?variable=asterix

Variable1 ist ein Feld in der Liste auf der die Benutzerdefinierte Aktion aufgerufen wird. Aber irgendwie will er die Variable noch nicht auslesen. Muss die noch speziell "deklariert" werden?

Grüße

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 3 Aug. 2010 09:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="michael"]Ich habe eine Benutzerdefinierte Aktion erstellt[/quote]

Sag das doch gleich. Bei den Custom Actions gibt es einige wenige vordefinierte Tokens, die automatisch ersetzt werden (ItemId, ListId, ...). Andere Variablen gehen dort nicht.

Bei SharePoint 2010 kannst Du aber eine JavaScript-Funktion aufrufen, der Du die ListId und ItemId übergibst. Diese Funktion holt sich dann über das Client Object Model den gewünschten Wert, den Du dann z.B. an die URL hängen kannst. Wie das genau geht, kann ich Dir aber nicht so nebenbei erklären...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 3 Aug. 2010 10:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

War ja klar das es nicht einfach geht ;) immer das selbe. Dann darf ich also nicht über die Benutzerdefienierte Aktion arbeiten sondern direkt mit einem JavaScript.
Fals mir da noch jemand ein Beispiel hat wäre ich super dankbar :)

Dir mal danke für Deine schnelle Hilfe

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 3 Aug. 2010 10:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Natürlich kannst Du über die benutzerdefinierte Aktion gehen. Du kannst nur nicht so einfach eine URL aufrufen, sondern eben eine JavaScript-Funktion.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 3 Aug. 2010 11:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Aber ich kann doch in den Benutzerdefinierten aktionen nur eine url angeben. Wie mache ich das denn mit dem javascript?

Glaube ich stehe gerade total auf dem Schlauch

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 3 Aug. 2010 12:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

javascript:functionName();

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 4 Aug. 2010 09:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich bin am verzweifeln. Kann doch echt nicht sein das es da keine Standardeinstellung gibt um beliebigen inhalt aus spalten in einer Benutzerdefinierten Aktion zu übermitteln.

Die haben doch am Sharepoint 2010 so viel neues eingebaut. Warum das nicht?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Aug. 2010 11:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="michael"]Die haben doch am Sharepoint 2010 so viel neues eingebaut[/quote]

Haben sie auch. Es gibt das Client Object Model u.a. auch für ECMA (Java-)Script und damit kann man das und noch sehr viel mehr erreichen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 4 Aug. 2010 11:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Gibt es dafür eventuell auch irgendwo beispiele oder lektüre wo ich das nachlesen und verstehen kann?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Aug. 2010 13:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das SharePoint Foundation SDK. Und natürlich die Suchmaschine Deines Vertrauens :-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 10 Aug. 2010 09:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also mit dem JavaScript hab ich nun alles. Aber nach der Übergabe funktioniert der Aufrüf mit

 

<Query>
     <Where>
      <Eq>
       <FieldRef Name="BusinessProcessId"/>
       <Value Type="Text">this.Page.Request.QueryString["variable1"]</Value>
      </Eq>
     </Where>
    </Query>

nicht :(

Er erwartet dort einen String und behandelt das dann auch alles als string.

Muss ich das ding noch irgendwie maskieren wie z.B. bei php <?php function ?> ?

Grüße

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Aug. 2010 09:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="michael"]Er erwartet dort einen String und behandelt das dann auch alles als string.[/quote]

Erkläre Dich mal genauer.

Wo und wie hast Du das denn eingebaut? Wie benutzt Du diese Query?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 10 Aug. 2010 10:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Nachstehen ist der code aus dem Sharepointdesigner 2010.
Die gelben Abschnitte können nicht bearbeitet werden.

Der Query dient zur Filterung der Dokumentenbibliothek. Wenn ich den gewünschten Wert hart rein schreibe passts auch. Aber ich brauche eben denn aus meiner url.

 

<asp:Content ContentPlaceHolderId ="PlaceHolderBodyLeftBorder" runat="server">
    <div height="100%" class="ms-pagemargin"><img src="/_layouts/images/blank.gif" width='6' height='1' alt="" /></div>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
        <WebPartPages:WebPartZone runat="server" FrameType="None" ID="Main" Title="loc:Main">
<ZoneTemplate>
        <WebPartPages:XsltListViewWebPart runat="server" Description="" PartOrder="2" HelpLink="" AllowRemove="True" IsVisible="True" AllowHide="True" UseSQLDataSourcePaging="True" ExportControlledProperties="False" IsIncludedFilter="" DataSourceID="" Title="team documents2" ViewFlag="8388613" AllowConnect="True" DisplayName="ShowByBusinessProcessId" FrameState="Normal" PageSize="-1" PartImageLarge="" AsyncRefresh="False" ExportMode="NonSensitiveData" Dir="Default" DetailLink="/integro_team/Team documents" ShowWithSampleData="False" ListId="3f233651-7bf2-48da-8e24-d55affc82677" ListName="{3F233651-7BF2-48DA-8E24-D55AFFC82677}" FrameType="Default" PartImageSmall="" IsIncluded="True" SuppressWebPartChrome="False" AllowEdit="True" ViewGuid="{6BC44939-42A8-459A-A56A-EF5056983FB6}" AutoRefresh="False" AutoRefreshInterval="60" AllowMinimize="True" WebId="00000000-0000-0000-0000-000000000000" ViewContentTypeId="0x" InitialAsyncDataFetch="False" GhostedXslLink="main.xsl" MissingAssembly="Dieses Webpart kann nicht importiert werden." HelpMode="Modeless" ID="g_6bc44939_42a8_459a_a56a_ef5056983fb6" ConnectionID="00000000-0000-0000-0000-000000000000" AllowZoneChange="True" TitleUrl="/integro_team/Team documents" ManualRefresh="False" __MarkupType="vsattributemarkup" __WebPartId="{6BC44939-42A8-459A-A56A-EF5056983FB6}" __AllowXSLTEditing="true" __designer:CustomXsl="fldtypes_Ratings.xsl" WebPart="true" Height="" Width=""><ParameterBindings>
            <ParameterBinding Name="dvt_sortdir" Location="Postback;Connection"/>
            <ParameterBinding Name="dvt_sortfield" Location="Postback;Connection"/>
            <ParameterBinding Name="dvt_startposition" Location="Postback" DefaultValue=""/>
            <ParameterBinding Name="dvt_firstrow" Location="Postback;Connection"/>
            <ParameterBinding Name="OpenMenuKeyAccessible" Location="Resource(wss,OpenMenuKeyAccessible)" />
            <ParameterBinding Name="open_menu" Location="Resource(wss,open_menu)" />
            <ParameterBinding Name="select_deselect_all" Location="Resource(wss,select_deselect_all)" />
            <ParameterBinding Name="idPresEnabled" Location="Resource(wss,idPresEnabled)" />
            <ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noitemsinview_doclibrary)" />
            <ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noitemsinview_doclibrary_howto2)" />
        </ParameterBindings>
<XmlDefinition>
            <View Name="{6BC44939-42A8-459A-A56A-EF5056983FB6}" MobileView="TRUE" Type="HTML" DisplayName="ShowByBusinessProcessId" Url="/mischm_sandbox/team documents2/Forms/ShowByBusinessProcessId1.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images/dlicon.png">
                <Query>
                    <Where>
                        <Eq>
                            <FieldRef Name="BusinessProcessId"/>
                            <Value Type="Text">this.Page.Request.QueryString["variable1"]</Value>
                        </Eq>
                    </Where>
                </Query>
                <ViewFields>
                    <FieldRef Name="DocIcon"/>
                    <FieldRef Name="LinkFilename"/>
                    <FieldRef Name="Title"/>
                    <FieldRef Name="Alias"/>
                    <FieldRef Name="Description1"/>
                    <FieldRef Name="CustId"/>
                    <FieldRef Name="ProjectId"/>
                    <FieldRef Name="ModuleId"/>
                    <FieldRef Name="BusinessProcessId"/>
                    <FieldRef Name="FitGapId"/>
                    <FieldRef Name="DocumentStatus"/>
                    <FieldRef Name="Owner"/>
                    <FieldRef Name="CheckoutUser"/>
                    <FieldRef Name="_UIVersionString"/>
                    <FieldRef Name="DocumentType"/>
                </ViewFields>
                <RowLimit Paged="TRUE">30</RowLimit>
                <Aggregations Value="Off"/>
                <Toolbar Type="Standard"/>
            </View>
        </XmlDefinition>
<DataFields>
</DataFields>
</WebPartPages:XsltListViewWebPart>

</ZoneTemplate></WebPartPages:WebPartZone>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderBodyAreaClass" runat="server">

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Aug. 2010 10:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

An der Stelle bekommst Du das so nicht rein. Das geht einfach nicht. Du kannst aber für das XsltListViewWebpart über den SharePoint Designer Parameter und darauf basierende Filter definieren.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
31 Beiträge
michael Als Antwort am 10 Aug. 2010 10:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist aber sehr schlecht. Dann war ja alles umsonnst. Kann doch nicht sein. Es MUSS doch eine Möglichkeit geben an dieser Stelle eine Variable aus der URL einzubinden. Ist jetzt ja wirklich nichts neues oder revolutionäres.

Ohne Rang
1 Beiträge
Joachim F Als Antwort am 9 Nov. 2010 14:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Es ist ganz einfach! Die Antwort von Andi Fandrich ist zwar kurz, aber genau das was Du suchst.

Sehr gut beschrieben ist das Verfahren in dem Buch 'Sharepoint Designer 2007. Das Handbuch'. Die Vorgehensweise ist in Sharepoint Designer 2010 genau so.

J.