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.




Nach einem response.end geht nichts mehr

Unbeantwortet Dieser Beitrag hat 0 Antworten

Ohne Rang
17 Beiträge
sharepointkb erstellt 13 Apr. 2010 16:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich habe für SP Listen eine Custom Action entwickelt, der Listeninhalte auf eine bestimmte Art und Weise ausgibt (Schnittstelle). Dabei ruft die Custom Action eine Klasse aus. Das funktioniert auch wunderbar. Ich leite von einem WebControl ab und implementiere den IPostBackEventHandler, so dass beim Aufruf des Custom Menu Items das RaisePostBack Event ausgelöst wird. Wie gesagt bis hierhin funktioniert auch alles wunderbar. Das Problem nur ist, das nach dem ersten Klick zwar der Export gefahren wird und auch die Datei zum Download angeboten wird, nur wenn ich ein weitere Mal auf das Menüelement klicke reagiert er garnicht mehr. Auch kein Postback.

Als Test habe ich eine einfache page.response Ausgabe in den RaisPostBack Event eingebaut und siehe da, man kann mehrmals auf den Menuitem klicken und es wird auch mehrfach ausgeführt.

Es muss also am

HttpContext.Current.Response.End()

liegen. Ich habe keine Lösung dazu. Wie machen es andere denn? Hier mein Code:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Imports

 

 

System

Imports

 

 

System.Web

Imports

 

 

System.Web.UI

Imports

 

 

System.Web.UI.WebControls

Imports

 

 

Microsoft.SharePoint

Imports

 

 

Microsoft.SharePoint.Utilities

Imports

 

 

Microsoft.SharePoint.WebControls

Imports

 

 

System.Collections.Specialized

Namespace

 

 

CustomAction

 

 

Public Class

ListExport

 

 

Inherits

WebControl

 

 

Implements

IPostBackEventHandler

 

 

Protected Overrides Sub

CreateChildControls()

 

 

Dim MenuItem As MenuItemTemplate = New

MenuItemTemplate

MenuItem.Text =

 

"MyExport"

MenuItem.ClientOnClickScript = (

 

"__doPostBack('" & Me.UniqueID & "','%ITEM%')"

)

 

 

Me

.Controls.Add(MenuItem)

 

 

End

Sub

 

 

Protected Overloads Overrides Sub OnLoad(ByVal e As

EventArgs)

 

 

Me

.EnsureChildControls()

 

 

End

Sub

 

 

Public Sub RaisePostBackEvent(ByVal eventArgument As String) Implements

IPostBackEventHandler.RaisePostBackEvent

 

 

Dim attachment As String =

"attachment; filename=filetoexport.csv"

HttpContext.Current.Response.Clear()

HttpContext.Current.Response.ClearHeaders()

HttpContext.Current.Response.ClearContent()

HttpContext.Current.Response.AddHeader(

 

"content-disposition"

, attachment)

HttpContext.Current.Response.ContentType =

 

"text/csv"

HttpContext.Current.Response.AddHeader(

 

"Pragma", "public"

)

HttpContext.Current.Response.Write(

 

"This is a simple output."

)

HttpContext.Current.Response.End()

 

 

End

Sub

 

 

End

Class

End

 

 

Namespace