ReportViewer può eseguire il rendering di un collegamento ipertestuale con un percorso relativo?

StackOverflow https://stackoverflow.com/questions/401664

Domanda

Ho creato un rapporto locale su un'origine dati che ha un campo denominato "RelativePath". Quando la mia app WinForms esegue il rendering del report, esporta i file nella posizione specificata nel campo RelativePath. Nel generatore di report ho impostato Navigazione | Azione collegamento ipertestuale | Passa a URL su " = Fields! RelativePath.Value " e impostare la proprietà EnableHyperlink del report su true. Ogni volta che la mia app esegue il rendering del report, tuttavia, il collegamento ipertestuale non è attivo. Se eseguo il hardcode del Jump to URL su un percorso assoluto, tuttavia, funziona perfettamente. ReportViewer non esegue il rendering di un collegamento ipertestuale con un percorso relativo?

È stato utile?

Soluzione

Ho avuto problemi con lo stesso problema, dopo di che sono giunto alla conclusione che il reportviewer non supporta i collegamenti ipertestuali con il relativo percorso. Per risolvere questo problema è aggiungendo un codice personalizzato che recupera il percorso relativo quindi concantenato con i valori dei campi che potresti voler far parte dell'URL - almeno che funziona per me.

Shaddie

Altri suggerimenti

Ho riscontrato lo stesso problema. Per ovviare a questo, ho creato un parametro di report chiamato " AbsolutePath " ;.

Vai alla vista di progettazione del file .rdlc. Su & ??quot; Report Data " scheda, vedrai un " Parametri " nodo. Fai clic destro per:

  1. Aggiungi parametro ...
  2. Nella scheda Generale, inserisci " AbsolutePath " nella proprietà Name.
  3. Fai clic su " Valori predefiniti "
  4. Seleziona " Specifica valori " pulsante di opzione.
  5. Aggiungi nuovo valore " AbsolutePath " ;.

Nell'espressione di azione di TextBox, aggiungi qualcosa del genere = " javascript: void (window.open ('" + Parametri! AbsolutePath.Value + " /yourpage.aspx? id = " + Fields! Id.Value + " ',' _blank ')) "

Puoi vedere che il nuovo " AbsolutPath " è disponibile un parametro da aggiungere alla tua espressione.

Ora dovrai passare il valore nel parametro del rapporto, in questo modo.

    string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
    var param = new ReportParameter("AbsolutePath", baseUrl);
    this.ReportViewer.LocalReport.SetParameters(param);

Usa semplicemente la variabile globale Globals! ReportServerUrl nell'espressione

= Globals!ReportServerUrl + "yourpath"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top