Jag vill ha en hyperlänkar i min datalist, men vet inte hur jag gör. Jag vill göra en sida där man skriver namnet på sidan och den skall vara länkad till en hyperlänk. Någon som kan ge mig en kod eller hjälpa mig på traven. Har nu denna datalist:
Sub Page_Load(sender As Object, e As EventArgs)
Dim myConnection As SqlConnection
Dim myCommand As SqlDataAdapter
' Create a connection to the "pubs" SQL database located on the
' local computer.
myConnection = New SqlConnection("server=sql1.webmatrixhosting.net,1441;UID=kulturen;PWD=busteriloveyou;Initial Catalog=H_kulturen;")
' Connect to the SQL database using a SQL SELECT query to get all
' the data from the "notistabell" table.
myCommand = New SqlDataAdapter("SELECT \* FROM notistabell", myConnection)
' Create and fill a DataSet.
Dim ds As DataSet = new DataSet()
myCommand.Fill(ds)
' Bind MyDataList to the DataSet. MyDataList is the ID for
' the DataList control in the HTML section of the page.
MyDataList.DataSource = ds
MyDataList.DataBind()
End Sub
</script>
<html>
<head>
<link href="textmall.css" type="text/css" rel="stylesheet" /><%-- Display the data. -%>
</head>
<body>
<p>
</p>
<div id="Layer3" style="Z-INDEX: 2; LEFT: 577px; WIDTH: 150px; POSITION: absolute; TOP: 210px; HEIGHT: 154px"><%-- Open the DataList control and set it for two columns, to be
filled in horizontal order. --%>
<ASP:DataList id="MyDataList" runat="server" Width="112px" BackColor="White" RepeatColumns="1" RepeatDirection="Horizontal" CellPadding="0">
<ItemTemplate>
<div>
<div style="padding:1,1,1,1;font-size:8pt;font-family:Arial;">
<div style="font:9pt Arial;color:black">
<b><%# DataBinder.Eval(Container.DataItem, "webpagetitle")%></b></b>
</div>
<br />
<%# DataBinder.Eval(Container.DataItem, "webpagebody") %>
<p></p>
</div>
</ItemTemplate>
</ASP:DataList>
</div>
<p>
</p>
</body>
</html>
hejsan.. jag tror att det är okay så länge du gör det före DataBind(), t.ex.
HyperLinkColumn hlc = new HyperLinkColumn();
hlc.NavigateUrl = "nånsida.aspx";
/* eller om du binder mot databas så kan du ha */
hlc.DataNavigateUrlField = "hclkolumn";
/* plus andra grejer du kan lägga till hlc om du vill */
MyDataList.Controls.Add(hlc);
MyDataList.DataSource = ds
MyDataList.DataBind()
och sen i "HTML" delen av din kod lägger du till nåt i den här stilen (om namnen på filerna loopas fram ur databas.. fast jag förstod som sagt inte riktigt hur du menade... :) )
kankse nån annan kan fylla i lite mer här.. är ganska nybörjare själv... :) sök annars eventuellt lite på Google efter HyperLinkColumn och tutorial tills vidare så kommer det kanske nåt bra exempel..
Hejsan igen!
Tusen tack för hjälpen! Jo ,jag har sökt på google för att försöka hitta mer om detta, men tyvärr så finns det inte så mycket lättare tutorials för oss nybörjare ute på nätet....synd! Får detta felmedelande nu:
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30451: Name 'hlc' is not declared.
Source Error:
Line 18: ' Bind MyDataList to the DataSet. MyDataList is the ID for
Line 19: ' the DataList control in the HTML section of the page.
Line 20: hlc.DataNavigateUrlField = "hclkolumn";
Line 21: /* plus andra grejer du kan lägga till hlc om du vill */
Line 22: MyDataList.Controls.Add(hlc);
Sub Page_Load(sender As Object, e As EventArgs)
Dim myConnection As SqlConnection
Dim myCommand As SqlDataAdapter
' Create a connection to the "pubs" SQL database located on the
' local computer.
myConnection = New SqlConnection("server=sql1.webmatrixhosting.net,1441;UID=xxxxx;PWD=xxxxx;Initial Catalog=H_kulturen;")
' Connect to the SQL database using a SQL SELECT query to get all
' the data from the "notistabell" table.
myCommand = New SqlDataAdapter("SELECT \* FROM notistabell", myConnection)
' Create and fill a DataSet.
Dim ds As DataSet = new DataSet()
myCommand.Fill(ds)
' Bind MyDataList to the DataSet. MyDataList is the ID for
' the DataList control in the HTML section of the page.
hlc.DataNavigateUrlField = "hclkolumn";
/\* plus andra grejer du kan lägga till hlc om du vill \*/
MyDataList.Controls.Add(hlc);
MyDataList.DataSource = ds
MyDataList.DataBind()
End Sub
</script>
<html>
<head>
<link href="textmall.css" type="text/css" rel="stylesheet" /><%-- Display the data. -%>
</head>
<body>
<p>
</p>
<div id="Layer3" style="Z-INDEX: 2; LEFT: 577px; WIDTH: 150px; POSITION: absolute; TOP: 210px; HEIGHT: 154px"><%-- Open the DataList control and set it for two columns, to be
filled in horizontal order. --%>
<ASP:DataList id="MyDataList" runat="server" CellPadding="0" RepeatDirection="Horizontal" RepeatColumns="1" BackColor="White" Width="112px">
<ItemTemplate>
<asp:TemplateColumn runat="server">
<ItemTemplate>
<a href='<%# DataBinder.Eval(Container, "DataItem.hclkolumn")%>'><%# DataBinder.Eval(Container, "DataItem.hclkolumn")%></a>
</ItemTemplate>
</asp:TemplateColumn>
<div>
<div style="padding:1,1,1,1;font-size:8pt;font-family:Arial;">
<div style="font:9pt Arial;color:black">
<b><%# DataBinder.Eval(Container.DataItem, "webpagetitle")%></b></b>
</div>
<br />
<%# DataBinder.Eval(Container.DataItem, "webpagebody") %>
<p></p>
</div>
</ItemTemplate>
</ASP:DataList>
</div>
<p>
</p>
</body>
</html>
Någon mer som kan hjälpa mig lösa mitt problem och få min datalista att hämta länkarna i min DB?
sen så där det står "hlckolumn" så skriver du namnet på den kolumn i din databas som innehåller namnen på sidlänkarna som du vill ha med (om jag inte tar fel).
Om du kör VS.NET så kan du efter att ha skapat HyperLinkColumn med new operatorn trycka på punkt.. om du får upp en intellisense med alla metoder etc. så har du gjort rätt.. annars så kanske du måste använda nån import sats högst upp.. (jag brukar prova så iaf :) )
oj.. såg precis att du använde VB..
Så jag antar att man skriver
Dim hlc as HyperLinkColumn 'bredvid dina andra Dim
o sen kan du skriva hlc = new HyperLinkColumn precis ovanför där du börjar använda hlc...
Sub Page_Load(sender As Object, e As EventArgs)
Dim myConnection As SqlConnection
Dim myCommand As SqlDataAdapter
Dim hlc as HyperLinkColumn
' Create a connection to the "pubs" SQL database located on the
' local computer.
myConnection = New SqlConnection("server=sql1.webmatrixhosting.net,1441;UID=xxx;PWD=xxx;Initial Catalog=xxx;")
' Connect to the SQL database using a SQL SELECT query to get all
' the data from the "notistabell" table.
myCommand = New SqlDataAdapter("SELECT \* FROM notistabell", myConnection)
' Create and fill a DataSet.
Dim ds As DataSet = new DataSet()
myCommand.Fill(ds)
' Bind MyDataList to the DataSet. MyDataList is the ID for
' the DataList control in the HTML section of the page.
hlc = new HyperLinkColumn
hlc.DataNavigateUrlField = "testtabell";
/\* plus andra grejer du kan lägga till hlc om du vill \*/
MyDataList.Controls.Add(hlc);
MyDataList.DataSource = ds
MyDataList.DataBind()
End Sub
</script>
<html>
<head>
<link href="textmall.css" type="text/css" rel="stylesheet" /><%-- Display the data. -%>
</head>
<body>
<p>
</p>
<div id="Layer3" style="Z-INDEX: 2; LEFT: 577px; WIDTH: 150px; POSITION: absolute; TOP: 210px; HEIGHT: 154px"><%-- Open the DataList control and set it for two columns, to be
filled in horizontal order. --%>
<ASP:DataList id="MyDataList" CellPadding="0" RepeatDirection="Horizontal" RepeatColumns="1" BackColor="White" Width="112px" runat="server">
<ItemTemplate>
<asp:TemplateColumn runat="server">
<ItemTemplate>
<a href='<%# DataBinder.Eval(Container, "DataItem.hclkolumn")%>'><%# DataBinder.Eval(Container, "DataItem.hclkolumn")%></a>
</ItemTemplate>
</asp:TemplateColumn>
<div>
<div style="padding:1,1,1,1;font-size:8pt;font-family:Arial;">
<div style="font:9pt Arial;color:black">
<b><%# DataBinder.Eval(Container.DataItem, "webpagetitle")%></b></b>
</div>
<br />
<%# DataBinder.Eval(Container.DataItem, "webpagebody") %>
<p></p>
</div>
</ItemTemplate>
</ASP:DataList>
</div>
<p>
</p>
</body>
</html>
vet inte, ser väl bra ut (har inte testat iofs.. ) kanske ska vara new HyperLinkColumn() (med parentes) o sen då att din kolumn som ska användas för hcl i din testtabell heter hclkolumn (de ska ha samma namn iaf)
Nej, det verkar inte funka....får felmedelenade igen...
Vad tror du att felet är? Har ju gjort en SQL tabell som heter testtabell och i den har jag: ID som är nyckeln och står på int, Linktitle som är sitens namn och står på char och sist har jag hclkolumn som är url:n och valde text.
Sub Page_Load(sender As Object, e As EventArgs)
Dim myConnection As SqlConnection
Dim myCommand As SqlDataAdapter
Dim hlc as HyperLinkColumn
' Create a connection to the "pubs" SQL database located on the
' local computer.
myConnection = New SqlConnection("server=sql1.webmatrixhosting.net,1441;UID=xxx;PWD=xxx9;Initial Catalog=xxx;")
' Connect to the SQL database using a SQL SELECT query to get all
' the data from the "notistabell" table.
myCommand = New SqlDataAdapter("SELECT \* FROM testtabell", myConnection)
' Create and fill a DataSet.
Dim ds As DataSet = new DataSet()
myCommand.Fill(ds)
' Bind MyDataList to the DataSet. MyDataList is the ID for
' the DataList control in the HTML section of the page.
hlc = new HyperLinkColumn()
hlc.DataNavigateUrlField = "hclkolumn";
/\* plus andra grejer du kan lägga till hlc om du vill \*/
MyDataList.Controls.Add(hlc);
MyDataList.DataSource = ds
MyDataList.DataBind()
End Sub
</script>
<html>
<head>
<link href="textmall.css" type="text/css" rel="stylesheet" /><%-- Display the data. -%>
</head>
<body>
<p>
</p>
<%-- Open the DataList control and set it for two columns, to be
filled in horizontal order. --%>
<ASP:DataList id="MyDataList" runat="server" Width="112px" BackColor="White" RepeatColumns="1" RepeatDirection="Horizontal" CellPadding="0">
<ItemTemplate>
<asp:TemplateColumn runat="server">
<ItemTemplate>
<a href='<%# DataBinder.Eval(Container, "DataItem.hclkolumn")%>'><%# DataBinder.Eval(Container, "DataItem.hclkolumn")%></a>
</ItemTemplate>
</asp:TemplateColumn>
<div>
<div style="padding:1,1,1,1;font-size:8pt;font-family:Arial;">
<div style="font:9pt Arial;color:black">
<b><%# DataBinder.Eval(Container.DataItem, "webpagetitle")%></b></b>
</div>
<br />
<%# DataBinder.Eval(Container.DataItem, "webpagebody") %>
<p></p>
</div>
</ItemTemplate>
</ASP:DataList>
<div>
</div>
<p>
</p>
</body>
</html>
Jag ber om ursäkt för mitt tidigare inlägg och hoppas att det inte orsakat alltför stora problem... :r Jag läste inte ordentligt.. du hade ju en DataList... inte en DataGrid... DataList har inte .Columns.Add()... jag är på väg hem nu men nån annan kanske kan komma med nåt bra förslag..
sen såg jag att du körde mot webmatrixhosting.. ibland kan det vara strul med sånt också.. kör du mot en lokal IIS också eller laddar du upp vartefter till hosting företaget o testar så..?
Ta med felmeddelandet också kanske som du får när du kompilerar... :) Ber om ursäkt igen att jag inte läste nogrannare första gångerna.. sen tycker jag själv att det är rätt svårt att koda utan VS.NET eftersom man inte har tillgång till intellisense utan isf måste leta på MSDN hela tiden efter vilka metoder osv som finns.. vissa skolor har tillgång till en Academic license för VS.NET som då är gratis om jag inte har fel.. o sen om man köper vissa böcker från MS finns det också för under 1000 kr.. om man nu vill gå så långt.. (offtopic iofs)
Nu är jag nybörjare själv som sagt o har inte jobbat med datalist på det sättet.. annars kanske man skapar en <td> o lägger till en vanlig href... alternativt att du provar o använda Datagrid.. hoppas det löser sig iaf :)
Hejsan!
Gör inget, sånt som händer. Jag testkör i programmet Web Matrix som har en egen inbyggd server och det är där jag får felmedeladena.
Jo, jag hoppas jag kommer på en lösning. Hoppas på att någon annan har lust att hjälpa mig att fixa ihop en datalista där ´länkar ifrån en MS SQL DB hämtar texten och länkarna.
Någon som har lust att hjälpa en nybörjare?
Mvh Sane
147 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe