Avatar billede Kim Neesgaard Seniormester
03. november 2005 - 10:40 Der er 9 kommentarer og
1 løsning

'Mærkelig' fejlmelding ved download af indhold i et datagrid

Jeg har et datagrid med et rettelink i en af kolonnerne og en knap til download af indholdet til et Worddokument. Når jeg klikker på downloadknappen, får jeg følgende kryptiske melding:

Control 'dgPlan__ctl2__ctl0' of type 'DataGridLinkButton' must be placed inside a form tag with runat=server.

men alt er faktisk placeret indeni formtagget med:

<form runat="server">

Jeg har støvet lidt rundt på Internettet for at finde noget om fejlen og fandt faktisk her årsagen, men desværre ikke løsningen. Årsagen er denne linie med rettelinket:

<asp:ButtonColumn Text="Ret" CommandName="Edit" HeaderText="Rettelink"></asp:ButtonColumn>

og videre viser det sig, at hvis man indføjer Visible="False", så kan man noget overraskende fint downloade, men så kan man jo ikke se eller bruge rettelinks, så det er ingen farbar vej.

Har I et godt råd, så man både kan se rettelinks og downloade?
Avatar billede snepnet Nybegynder
03. november 2005 - 10:43 #1
hej neesgaard :o)
hvor er din downloadknap, og hvordan ser linien ud?
mvh
Avatar billede Kim Neesgaard Seniormester
03. november 2005 - 10:52 #2
Sådan:

<asp:Button id="btnDownload" onclick="btnDownload_Click" runat="server" Text="Download planen"></asp:Button>

Sub btnDownload_Click(sender As Object, e As EventArgs)

Dim FileName As String

'Overførsel til Word
'Set the content type to Word
FileName = "Vores plan" & ".doc"
Response.ContentType = "application/vnd.ms-word;"
Response.ContentEncoding = System.Text.Encoding.GetEncoding(1252) 'For at æøå downloades korrekt
Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName)

'Turn off the view state
Me.EnableViewState = False

'Remove the charset from the Content-Type header
Response.Charset = String.Empty
Dim myTextWriter As New System.IO.StringWriter()
Dim myHtmlTextWriter As New System.Web.UI.HtmlTextWriter(myTextWriter)

'Get the HTML for the control
dgPlan.RenderControl(myHtmlTextWriter)  'HER går det galt

'Write the HTML to the browser
Response.Write(myTextWriter.ToString())

'End the response
Response.End()

Me.EnableViewState = True

End Sub
Avatar billede snepnet Nybegynder
03. november 2005 - 11:01 #3
det virker sært ... hvad sker der hvis du prøver at sætte denne her ind på din retteknap:
ButtonType="PushButton"
mvh
Avatar billede Kim Neesgaard Seniormester
03. november 2005 - 11:13 #4
Ja - meget sært! Den crasher også nu.
Avatar billede snepnet Nybegynder
03. november 2005 - 11:38 #5
kan du finde linket frem til den side hvor problemet er beskrevet?
mvh
Avatar billede Kim Neesgaard Seniormester
03. november 2005 - 12:22 #6
Avatar billede snepnet Nybegynder
03. november 2005 - 12:28 #7
det ser da ud til at der er forslag på fungerende workarounds i den tråd...
Avatar billede Kim Neesgaard Seniormester
03. november 2005 - 20:14 #8
Så har jeg ikke kigget godt nok efter - er det den alternative måde at downloade på?

Iøvrigt fik jeg en god og simpel løsning af en kollega - erstat

<asp:ButtonColumn Text="Ret" CommandName="Edit" HeaderText="Rettelink"></asp:ButtonColumn>

med

<asp:TemplateColumn>
    <ItemTemplate>
    <a href='Rediger.aspx?ID=<%# DataBinder.Eval(Container.DataItem, "ID").ToString() %>'>Ret</a>
    </ItemTemplate>
</asp:TemplateColumn>

Så virker både rettelinks og download!
Avatar billede snepnet Nybegynder
03. november 2005 - 22:50 #9
det vigtigste er jo at det virker :o)
mvh
Avatar billede Kim Neesgaard Seniormester
08. november 2005 - 15:09 #10
Håber det er ok, at jeg selv tager point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester