I want to show Components in a tabs , so first of all create few components. In this project we have three components, First View Component public class AllViewComponent : ViewComponent { private readonly UserManager<ApplicationUser> _userManager; public AllViewComponent(UserManager<ApplicationUser> userManager) { _userManager = userManager; } public async Task<IViewComponentResult> InvokeAsync() { List<StudentViewModel> allUsers = new List<StudentViewModel>(); var items = await _userManager.Users.ToListAsync(); foreach (var item in items) { allUsers.Add(new StudentViewModel {Id=item.Id, EnrollmentNo = item.EnrollmentNo, FatherName = item.FatherName, Name = item.Name, Age = item.Age, Birthdate = item.Birthdate, Address = item.Address, Gender = item.Gender, Email = item.Email }); }
Bind Details view using onselectedIndexChanged event of Gridview view. First to Bind the Gridview with select command. By using selectedIndexChanged method you can bind the details view. If you want to bind the DetailsView from Gridview Row then use select command name in GridView's button field name. In the Code behind file, first to bind the Gridview from database table. Retrieve the selected Row data using select command, bind DataTable with Retrieved data.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:BoundField DataField="Id" HeaderText="ID" />
<asp:BoundField DataField="name" HeaderText="Name" />
<asp:TemplateField HeaderText="address">
<ItemTemplate>
<asp:Label ID="addlabel" Text='<%# Eval("address") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField Text="select" CommandName="select" />
</Columns>
</asp:GridView>
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" AutoGenerateRows="false">
<Fields>
<asp:BoundField DataField="Id" HeaderText="ID" />
<asp:BoundField DataField="name" HeaderText="Name" />
<asp:BoundField DataField="address" HeaderText="Address" />
</Fields>
</asp:DetailsView>
</div>
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:BoundField DataField="Id" HeaderText="ID" />
<asp:BoundField DataField="name" HeaderText="Name" />
<asp:TemplateField HeaderText="address">
<ItemTemplate>
<asp:Label ID="addlabel" Text='<%# Eval("address") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField Text="select" CommandName="select" />
</Columns>
</asp:GridView>
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" AutoGenerateRows="false">
<Fields>
<asp:BoundField DataField="Id" HeaderText="ID" />
<asp:BoundField DataField="name" HeaderText="Name" />
<asp:BoundField DataField="address" HeaderText="Address" />
</Fields>
</asp:DetailsView>
</div>
</form>
</body>
</html>
Code Behind Code
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["myconnection"].ToString();
con.Open();
SqlCommand cmd=new SqlCommand();
cmd.CommandText="select * from [Registration]";
cmd.Connection=con;
SqlDataReader rd = cmd.ExecuteReader();
GridView1.DataSource = rd;
GridView1.DataBind();
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
int id= int.Parse(GridView1.SelectedRow.Cells[0].Text);
string name = GridView1.SelectedRow.Cells[1].Text;
string add = (GridView1.SelectedRow.FindControl("addlabel") as Label).Text;
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("ID", typeof(int)), new DataColumn("Name", typeof(string)), new DataColumn("Address", typeof(string)) });
dt.Rows.Add(id, name, add);
DetailsView1.DataSource = dt;
DetailsView1.DataBind();
}
Comments
Post a Comment