Om du vill kan du eposta sidan.aspx och sidan.aspx.vb till mig så kan jag kommentera vad du gjort fel och hur du ska åtgärda det.
Fråga: Hyperlink i datagrid
23 svar · 760 visningar · startad av gunnargren · sida 2 av 2
Skickade filerna till din hotmail adress. Tack för att du tar dig tid att hjälpa mig...
Tar upp min gammla tråd här. Har det inte fått att fungera än, börjar tor att det kan vara hur jag har sparat det i databasen som kan vara fel, har bara lagt in sökvägen direkt i databasen. Men jag visar koden får jag se om någon kan hjälpa mig.
Först aspx sidan:
asp:datagrid id="DataGrid1" runat="server" OnPageIndexChanged="DataGrid1_PageIndexChanged" OnItemCreated="Datagrid1_ItemCreated"
<Columns>
<asp:BoundColumn Visible="False" DataField="urID"></asp:BoundColumn>
<asp:TemplateColumn HeaderText=" Artikelnr. ">
<ItemStyle Width="100px" CssClass="mellanrubrik"></ItemStyle>
<ItemTemplate><div class="mellanrubrik" align="left">
<%#Container.DataItem ("urArtikel")%></div>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText=" Kulörbeskrivning ">
<ItemStyle Width="100px" CssClass="mellanrubrik"></ItemStyle>
<ItemTemplate><div class="mellanrubrik" align="left">
<%#Container.DataItem ("urBeskrivning")%></div>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton ID="pdfLink" runat="server"
CommandArgument='<%#Databinder.Eval (Container.DataItem, "urID")%>'
CommandName="HelpDisplay" Text='<%#Databinder.Eval (Container.DataItem, "urTDS")%>'>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
och så aspx.vb sidan
Imports System.Data
Imports System.Data.OleDb
Imports System.IO
Public Class urval
Inherits System.Web.UI.Page
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
Dim urval As jonas.myUrvalCls = New jonas.myUrvalCls
Dim ds As DataSet = New DataSet
Try
ds = urval.GetEntrys()
urval = Nothing
DataGrid1.DataSource = ds.Tables(0).DefaultView
DataGrid1.DataBind()
Catch ex As Exception
Throw (ex)
End Try
End If
End Sub
Protected Sub DataGrid1_PageIndexChanged(ByVal obj As Object, ByVal e As DataGridPageChangedEventArgs)
'OnPageIndexChanged = "DataGrid1_PageIndexChanged"
DataGrid1.CurrentPageIndex = e.NewPageIndex
DataGrid1.DataBind()
Dim page As New jonas.myForumCls
Dim ds1 As DataSet = page.GetEntrys
DataGrid1.DataSource = ds1
DataGrid1.DataMember = ""
DataGrid1.DataBind()
End Sub
Protected Sub Datagrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs)
Dim itemType As ListItemType = e.Item.ItemType
If itemType = ListItemType.Pager Then
Dim pager As TableCell = CType(e.Item.Controls(0), TableCell)
Dim i As Integer
For i = 0 To pager.Controls.Count Step +2
Try
Dim myLabel As Label = CType(pager.Controls(i), Label)
myLabel.Text = "Sida " + myLabel.Text
myLabel.CssClass = "aktuellsida"
Catch
Dim myLinkButton As LinkButton = CType(pager.Controls(i), LinkButton)
myLinkButton.Text = "[ " + myLinkButton.Text + " ]"
myLinkButton.CssClass = "sidlankar"
End Try
Next
End If
End Sub
Public Sub HelpDisplay(ByVal sender As Object, ByVal e As CommandEventArgs)
Dim myDir As String = Server.MapPath("~/Autofox/pdf/")
Dim oFileStream As FileStream
Dim lFileSize As Long, lStartpos = 0
Dim myFile As String = e.CommandArgument
' Read the file
Try
oFileStream = New FileStream(myDir & myFile, FileMode.Open)
Catch ex As FileNotFoundException
HttpContext.Current.Response.Clear()
Response.Write(myDir)
'CreateMessageAlert(Me, "Could not find the specific file.", "key1")
HttpContext.Current.Response.End()
Return
Catch Ex As Exception
HttpContext.Current.Response.Clear()
Response.Write(myDir)
' CreateMessageAlert(Me, "An error occured: " & Ex.Message, "key1")
HttpContext.Current.Response.End()
Return
End Try
' Get the size of the file
lFileSize = oFileStream.Length
Dim bBuffer(CInt(lFileSize)) As Byte
oFileStream.Read(bBuffer, 0, CType(lFileSize, Integer))
oFileStream.Close()
' Attach The stream to the browser.
With HttpContext.Current
.Response.ClearContent()
.Response.ContentType = "application/pdf"
.Response.AddHeader("content-disposition", "attachment; filename=" & myFile & "")
.Response.BinaryWrite(bBuffer)
.Response.End()
End With
End Sub
End Class
Blir mycket kod, men bättre för mycket än för lite. Sist så har vi databasen:
urID | urArtikel | urBeskrivning | urTDS | urMSDS | urProdukter | urArbets
1 S401 svart c:\inetpub\wwwroot\autofox\Information.pdf
Det är alltså dom fyra sista som ska innehålla länkar till pdf filerna. Men tänkte börja med att få till en till att börja med. Nu när jag klickar så händer det ingenting. Får inget felmeddelande men inget händer.
Tack på förhand /Jonas
Någon som en idé varför det inte fungerar?