Nested GridView in Asp.Net with wizard Concept........
Note: In this topic we will discuss How will
show a GridView in another GridView,In this program we have make two table one
for Employee Details and another for Contact Details for each Employee,contact
detail show in another GridView whose present main GridView’s Template Field
and if employee contact no is less than 10 digits then it will show in GrdView
Cells with color…………………..
--Sql Query ......................
create database test
use
test
--For First Table.............
create table Employee(EmpId varchar(50) primary key,Name varchar(50),Department varchar(50))
--For Second Table.................
create table EmpContactInfo(SrNo int identity(1,1) primary key,Work nvarchar(50),Home varchar(50),EmpId varchar(50) foreign key references Employee(EmpId) on delete cascade)
insert into Employee values('CS11','Somesh Katiyar','CS')
insert into EmpContactInfo values('9953760690','8826382483','CS11')
We take Default.aspx Page with GridView which name
GridView1 and we bind this GridView with table Employee using simple wizard
concept after that we take another GridView which name GridView2 within
GridView1 Template Field
Follow this step when
you bind GridView2 with table in GridView1 which is shown in this picture…………………………………..
Source Code for Default.aspx................
<%@ Page Language="C#"
AutoEventWireup="true"
CodeFile="Default.aspx.cs"
Inherits="_Default"
%>
<!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>
<style type="text/css">
.style1 {
width: 100%;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<table class="style1">
<tr>
<td>
<b> Nested
GridView in Asp.Net with wizard Concept........</b></td>
</tr>
<tr>
<td>
<asp:GridView ID="GridView1"
runat="server"
AutoGenerateColumns="False"
DataKeyNames="EmpId" DataSourceID="SqlDataSource1"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="EmpId"
HeaderText="EmpId"
ReadOnly="True"
SortExpression="EmpId" />
<asp:BoundField DataField="Name"
HeaderText="Name"
SortExpression="Name"
/>
<asp:BoundField DataField="Department"
HeaderText="Department"
SortExpression="Department" />
<asp:TemplateField>
<HeaderTemplate>
Contact Information
</HeaderTemplate>
<ItemTemplate>
<asp:GridView ID="GridView2"
runat="server"
AutoGenerateColumns="False"
DataSourceID="SqlDataSource1" onrowdatabound="GridView2_RowDataBound">
<Columns>
<asp:BoundField DataField="Work"
HeaderText="Work"
SortExpression="Work"
/>
<asp:BoundField DataField="Home"
HeaderText="Home"
SortExpression="Home"
/>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:textcon %>"
SelectCommand="SELECT [Work], [Home] FROM
[EmpContactInfo] WHERE ([EmpId] = @EmpId)">
<SelectParameters>
<asp:Parameter Name="EmpId"
Type="String"
/>
</SelectParameters>
</asp:SqlDataSource>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:textcon %>"
SelectCommand="SELECT * FROM [Employee] ORDER
BY [Name]">
</asp:SqlDataSource>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
Source Code for Default.aspx.cs…………………………………………..
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default :
System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs
e)
{
}
//code for GridView1
protected void
GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string empid = (string)DataBinder.Eval(e.Row.DataItem, "EmpId");
SqlDataSource sc = (SqlDataSource)e.Row.FindControl("SqlDataSource1");
sc.SelectParameters["empid"].DefaultValue = empid;
}
}
//Code for GridView2...........................
protected void
GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
String wno = DataBinder.Eval(e.Row.DataItem,
"Work").ToString();
if (wno.Length < 10)
// e.Row.ForeColor = System.Drawing.Color.Red;
e.Row.Cells[0].ForeColor
= System.Drawing.Color.Red;
String hno = DataBinder.Eval(e.Row.DataItem,
"Home").ToString();
if (hno.Length < 10)
e.Row.Cells[1].Style["color"] = "Blue";
}
}
}
Result:
0 comments:
Post a Comment