Introduction
In this article i will show you how to take hyperlink control in datalist control also you can say how to bind hyperlink control into datalist. I will show you example of bind hyperlink control into datalist.
Datalist introduction
The Datalist control is a data bound control that displays data by using templates. These templates define controls and HTML elements that should be displayed for an item. The Datalist control exists within the System.Web.UI.WebControl namespace.
Some steps for binding Hyperlink control in Datalist
Step-1: Create a DataBase Table with following fields.
Step-1: Create a DataBase Table with following fields.
Step-2: Fill this field with following values
DepartmentID Name Description
1 IT This is first department Name
2 CS This is Second Department Name
Step-3 : Create Procedure for retrieving values.
Database.mdf-->Stored Procedures -->Right click -->Add new Stored Procedure
CREATE PROCEDURE GetDepartments
AS
SELECT DepartmentID ,Name ,Description From [Table] ;
RETURN 0
Step-4: Take a webform in your project name as "Departmentlist.aspx"
Step-5: Paste this code into your Department.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Departmentlist.aspx.cs" Inherits="Departmentlist" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:DataList ID="DataList1" runat="server">
<HeaderTemplate>
Choose a Department
</HeaderTemplate>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl ='<%#Link .ToDepartment (Eval ("DepartmentID").ToString ()) %>'
Text ='<%# HttpUtility .HtmlEncode (Eval ("Name").ToString ()) %>' ToolTip ='<%# HttpUtility .HtmlEncode (Eval ("Description").ToString ()) %>' >
</asp:HyperLink>
</ItemTemplate>
</asp:DataList>
<div>
</div>
</form>
</body>
</html>
using System;
using System.Data.SqlClient;
using System.Data;
public partial class Departmentlist : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True";
con.Open ();
SqlCommand cmd=new SqlCommand ();
cmd.CommandText ="GetDepartments";
cmd.CommandType =CommandType .StoredProcedure ;
cmd.Connection =con;
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds, "Department");
DataList1.DataSource = ds;
DataList1.DataBind();
}
}
Step-7 Make a Link class for absolute url
using System;
using System.Web;
/// <summary>
/// Summary description for Link
/// </summary>
public class Link
{
public static string BuildAbsolute(string relativeuri)
{
// get current uri
Uri uri = HttpContext.Current.Request.Url;
// build absolute path
string app = HttpContext.Current.Request.ApplicationPath;
if (!app.EndsWith("/"))
app += "/";
relativeuri = relativeuri.TrimStart('/');
// return the absolute path
return HttpUtility .UrlPathEncode (String .Format ("http://{0}:{1}{2}",uri .Host ,uri.Port ,app ));
}
public static string ToDepartment(string departmentId, string page)
{
if (page == "1")
return BuildAbsolute(string.Format("catalog.aspx?DepartmentID={0}", departmentId));
else
return BuildAbsolute (string .Format ("catalog.aspx?DepartmentID={0}&Page={1}",departmentId,page ));
}
//generate a department url for the first page
public static string ToDepartment(string departmentId)
{
return ToDepartment(departmentId, "1");
}
}
Out Put