asp:literal and hyperlink field

  • Thread starter Thread starter les
  • Start date Start date
L

les

I'm new to asp.net. (refugee from old asp)
I have a database field "Website", which is a url and I want it be a
hyperlink. I can display the url as text using:

<asp:literal id="litWebsite" runat="server"></asp:literal>

But I want it to be a hyperlink. I tried enclosing the above line in
an <a href......> tag but no good.

Any tips for a newbie??
Thanks
Leslie
 
uh, no that's not how to do it! :-)

<asp:LinkButton id="link1" runat=server />

then, in your code-behind:

at top:
Protected link1 as LinkButton

and finally, within your code - one way to do this:

link1.text=o_dataRow.item("WebSite")

That's it...

PS: this is pretty basic stuff, not complicated. Glad to answer this kind
of stuff, but you should have been able to find this in ANY beginner book on
ASP.Net stuff. You should get and read one of um...
 
Well it could be as simple as this:
<asp:literal id="litWebsite" runat="server"><a href='whatever.aspx'>click
here</a></asp:literal>

Or you could put a hyperlink web server control in there, etc.
 
Thanks David, but believe me I have searched everywhere for this!
Maybe its so basic that I can't see it. I managed to include links in
datagrid pages with no problem, but this is doing my head in.

The code here shows my data on the page sucessfully, but could you
show me how I amend it to show the link. Also, some fields are long
text with carriage returns. How do I show these properly formatted?
Thanks again
Leslie

=============================

<script runat="server">
Sub Page_Load (sender As Object, e As EventArgs)
Dim conn As OleDbConnection
Dim cmd As OleDbCommand
Dim rdr As OleDbDataReader
Dim strId As String
Dim strSQL As String
strId = Request.QueryString("id")

Conn = New OleDbConnection ("PROVIDER=SQLOLEDB;
server=servername;database=briefings;User Id=;Password=;")
Conn.open

strSQL = "SELECT * FROM Briefings WHERE id = " & strId & " "
cmd = New OleDbCommand(strSQL, conn)
rdr = cmd.ExecuteReader
If rdr.Read Then
litid.Text = rdr.Item("id")
litTitle.Text = rdr.Item("Title")
litEmail.Text = rdr.Item("Email")
litAddDate.Text = Format(rdr.Item("AddDate"), "dd-MMM-yyyy")
litContact.Text = rdr.Item("Contact")
litDetails.Text = rdr.Item("Details")
litAuthor.Text = rdr.Item("Author")
litWebsite.Text = rdr.Item("Website")

Else
litID.Text = "ID '" & strId & "' not found"
End If
rdr.Close
cmd.Dispose
conn.Close
End Sub

</script>
================================

Then in the html:
<asp:literal id="litWebsite" runat="server"></asp:literal>

================================
 
Thanks. I found another way to do it using:

litWebsite.text = "<A HREF='" + rdr.Item("Website") + "'>" +
rdr.Item("Website") + "</A>"

and in the html:
<asp:literal id="litWebsite" runat="server"></asp:literal>

But I will keep your answer for next time :)

By the way I already have a book: "Web database development step by
step" by Jim Buyens. I have found it very useful, having come from
asp, just starting out with .net. Also I just discovered Web Matrix
which is good for editing.

Thanks again
Leslie
 
That'll work - but it's ugly! (MHO) ;-)

I wish you would try the .Net way - you'll learn something new, and not get
into bad habits.
 
You could do something along those lines if you made, say, a datatable a
static member. That's key -- has to be static to be callable:

<%=this.StaticDataTable.Rows[0]["Website"].ToString()%> or something like
that...

Or make the row static:

<%=this.StaticRow["Website"].ToString()%>

So your accessors would look like this:

public static DataTable StaticDataTable()
{
// Load your data, returning the datatable.
}

public static DataRow StaticRow()
{
// Load your data, get the row and return it.
}

But I don't think you could do it with a reader. Anyone correct me if I'm
wrong on that.

If you're looking for something that repeats, and will accept your
formatting and the like given a datareader, take a look at the Repeater web
control.

Luck!
 
Back
Top