This code is used to Redirect to another page when User click
on the GRIDVIEW ROW.
<%@ Page Language="C#"
AutoEventWireup="true"
CodeFile="Default.aspx.cs"
Inherits="_Default"
EnableEventValidation="false"%>
<%@ Register TagName="Header"
TagPrefix="Uc1"
Src="~/UserControl/Header.ascx"
%>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
//This function
will fire when user Click on the GRID VIEW ROW
var
NAC_TimeoutId = null;
function
NAC_StartSingleClick(event)
{
NAC_TimeoutId = setTimeout(event, 200);
}
var
previousRow;
function
NAC_StartDblClick(event)
{
window.clearTimeout(NAC_TimeoutId);
setTimeout(event, 1);
}
function
ChangeRowColor(row) {
//If last clicked
row and the current clicked row are same
if
(previousRow == row)
return;
//do nothing
//If there is row
clicked earlier
else if (previousRow != null)
document.getElementById(previousRow).style.backgroundColor = "#ffffff"; //change
the color of the previous row back to white
document.getElementById(row).style.backgroundColor = "#ffffda"; //change
the color of the current row to light yellow
//assign the
current row id to the previous row id for next row to be clicked
previousRow = row;
}
function
RowColor(row)
{
}
//This
Function is used to change the ROW backGroundColor on MouseOver.
var
lastColorUsed;
function
NAC_ChangeBackColor(row, highlight, RowHighlightColor)
{
if
(highlight)
{
// set the
background colour
lastColorUsed =
row.style.backgroundColor;
row.style.backgroundColor =
RowHighlightColor;
}
else
{
// restore
the colour
row.style.backgroundColor =
lastColorUsed;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div style="height: 554px; width: 1088px; margin-bottom:
91px;">
<Uc1:Header ID="test" runat="server" Visible="true" />
<table>
<tr>
<td>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
style="top: 177px; left: 394px; position: absolute; height: 198px; width: 531px"
onrowupdated="GridView1_RowUpdated" onrowupdating="GridView1_RowUpdating"
onrowcancelingedit="GridView1_RowCancelingEdit" DataKeyNames="Sno"
onrowediting="GridView1_RowEditing"
onrowdatabound="GridView1_RowDataBound"
onselectedindexchanged="GridView1_SelectedIndexChanged"
onselectedindexchanging="GridView1_SelectedIndexChanging"
ondatabound="GridView1_DataBound" onrowcommand="GridView1_RowCommand"
onprerender="GridView1_PreRender">
<Columns>
<asp:ButtonField Text="SingleClick" CommandName="SingleClick" Visible="false" />
<asp:ButtonField Text="DoubleClick" CommandName="DoubleClick"
Visible="false"
/>
<asp:TemplateField HeaderText="ENo.">
<ItemTemplate>
<%#Eval("Sno")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<%#Eval("Name")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Salary">
<ItemTemplate>
<%#Eval("Salary")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="DeptNo">
<ItemTemplate>
<%#Eval("DeptNo")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Address">
<ItemTemplate>
<%#Eval("Address")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Country">
<ItemTemplate>
<%#Eval("Country")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="State">
<ItemTemplate>
<%#Eval("State")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="City">
<ItemTemplate>
<%#Eval("City")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:Image ID="main" runat="server" Height="100" Width="100"/>
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:TemplateField
HeaderText="Edit">
<ItemTemplate>
<a id="Edit"
visible="true"
href="Employee.aspx?ID=<%#Eval("Sno")%>">Edit</a>
</ItemTemplate>
</asp:TemplateField>--%>
</Columns>
<SelectedRowStyle BackColor="#FF66FF" />
<EditRowStyle BackColor="Fuchsia" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
Code Behind File:
using System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Data;
using
System.Data.SqlClient;
using
System.Configuration;
public partial class _Default : System.Web.UI.Page
{
DataSet
ds = new DataSet();
protected void Page_Load(object
sender, EventArgs e)
{
if(!this.IsPostBack)
{
BindGrid();
}
}
//This method
is used to bind Table to GridView
private void BindGrid()
{
SqlConnection
con = new SqlConnection("");
SqlDataAdapter
da = new SqlDataAdapter("select * from emp", con);
da.Fill(ds, "Emp");
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void GridView1_RowUpdated(object
sender, GridViewUpdatedEventArgs e)
{
}
protected void GridView1_RowUpdating(object
sender, GridViewUpdateEventArgs e)
{
//int no =
Convert.ToInt32(GridView1.Rows[e.RowIndex].Cells[0].Text);
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs
e)
{
}
//This event will
fire after the single click on Grid Row
protected void GridView1_RowEditing(object
sender, GridViewEditEventArgs e)
{
int id
=Convert.ToInt32(GridView1.DataKeys[e.NewEditIndex].Value);
Response.Redirect("Employee.aspx?ID="+id+"");
}
//This event will
use to bind GridRows if UserClicks on the row ROWDATABOUND event will b fired
protected void GridView1_RowDataBound(object
sender, GridViewRowEventArgs e)
{
try
{
if
(e.Row.RowType == DataControlRowType.DataRow)
{
//This is used
to Bind IMAGES on GRIDVIEW column
DataRowView
drview = (DataRowView)e.Row.DataItem;
((Image)e.Row.FindControl("main")).ImageUrl = "~/Images/" +
drview.Row.ItemArray[8].ToString();
LinkButton
_doubleClickButton = (LinkButton)e.Row.Cells[0].Controls[0];
string
_jsDouble = ClientScript.GetPostBackClientHyperlink(_doubleClickButton, "");
e.Row.Attributes["ondblclick"] = _jsDouble;
e.Row.Attributes["onmouseover"] = "javascript:return setMouseOverColor(this);";
e.Row.Attributes["onmouseout"] = "javascript:return
setMouseOutColor(this);";
//Newly
changed
//e.Row.Attributes.Add("onclick",
"javascript:ChangeRowColor('" + e.Row.ClientID + "')");
}
if
(e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] = "this.style.cursor='hand';";
e.Row.Attributes["onmouseout"]
= "this.style.textDecoration='none';";
string
jsCommand = string.Format("if ({2} != {1})
__doPostBack('{0}','Edit${1}')", GridView1.ID, e.Row.RowIndex,
GridView1.EditIndex);
foreach
(TableCell c in
e.Row.Cells)
{
if
(c == e.Row.Cells[1])
{
}
else
{
c.Attributes["onclick"] += jsCommand;
}
}
}
}
catch (Exception ex)
{
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs
e)
{
}
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs
e)
{
}
//This event is
used to check the click whether it is single or double click
protected void GridView1_RowCommand(object
sender, GridViewCommandEventArgs e)
{
int
selectedIndex = int.Parse(e.CommandArgument.ToString());
string
_commandName = e.CommandName;
switch
(_commandName)
{
case
("SingleClick"):
{
GridView1.SelectedIndex =
selectedIndex;
object
send = new object();
GridViewEditEventArgs
ex = new GridViewEditEventArgs(selectedIndex);
GridView1_RowEditing(send,
ex);
break;
}
}
}
//this event is
used to change the background color of row if user mouseover the row.
protected void GridView1_DataBound(object
sender, EventArgs e)
{
foreach
(GridViewRow row in
GridView1.Rows)
{
if
(row.RowType == DataControlRowType.DataRow)
{
//
Add javascript to highlight row
row.Attributes["onmouseover"] =
"javascript:NAC_ChangeBackColor(this,
true, '#BAD5E8'); this.style.cursor = 'hand';";
row.Attributes["onmouseout"] = "javascript:NAC_ChangeBackColor(this,
false, '');";
foreach
(Control c in
row.Cells[0].Controls)
{
if
(c is LinkButton)
{
LinkButton selectButton = (LinkButton)c;
// Get the javascript which is assigned to this LinkButton
String jsClick =
ClientScript.GetPostBackClientHyperlink(selectButton, "");
// Get command name in lowercase
String commandName = selectButton.CommandName.ToLower();
// Add this javascript to the onclick Attribute of the row
if (commandName == "details")
row.Attributes["onclick"] = "NAC_StartSingleClick(\""
+ jsClick + "\");";
// Add this
javascript to the ondblclick Attribute of the row
if (commandName == "edit")
row.Attributes["ondblclick"] = "NAC_StartDblClick(\""
+ jsClick + "\");";
// set the link button to be invisible
if (commandName == "details"
|| commandName == "edit")
selectButton.Visible = false;
}
}
}
}
}
//this is the preRender
event used to render the control from client side to server side
protected void GridView1_PreRender(object
sender, EventArgs e)
{
}
}