This is a migrated thread and some comments may be shown as answers.

How to bind DetailsView inside telerik gridview programatically using c#

0 Answers 118 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Satyajit
Top achievements
Rank 1
Satyajit asked on 09 Apr 2012, 02:47 PM
Hello,
I am embeding DetailsView inside Telerik gridview.Now I want to bind Detailsview according to rowIndex of GridView.

Below are the code
.aspx page
---------------------------------------------------

<%

 

@ Page Language="C#" AutoEventWireup="true" CodeFile="G1.aspx.cs" Inherits="G1" %>

 

<%

 

@ Register TagPrefix="telerik" Namespace="Telerik.Charting" Assembly="Telerik.Web.UI" %>

 

<%

 

@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>

 

<!

 

 

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 id="Head1" runat="server">

 

 

 

 

<!-- custom head section -->

 

 

 

<style type="text/css">

 

 

 

.viewWrap

 

{

 

 

padding: 15px;

 

 

 

background: #2291b5 0 0 url(Img/bluegradient.gif) repeat-x;

 

}

 

 

 

.contactWrap

 

{

 

 

padding: 10px 15px 15px 15px;

 

 

 

background: #fff;

 

 

 

color: #333;

 

}

 

 

 

.contactWrap td

 

{

 

 

padding: 0 20px 0 0;

 

}

 

 

 

.contactWrap td td

 

{

 

 

padding: 3px 20px 3px 0;

 

}

 

 

 

.contactWrap img

 

{

 

 

border: 1px solid #05679d;

 

}

 

 

</style>

 

 

 

<!-- end of custom head section -->

 

</

 

 

head>

 

<

 

 

body>

 

 

 

<form id="form1" runat="server">

 

 

 

<div>

 

 

 

<telerik:RadScriptManager runat="server" ID="RadScriptManager1" />

 

 

 

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">

 

 

 

<AjaxSettings>

 

 

 

<telerik:AjaxSetting AjaxControlID="RadGrid1">

 

 

 

<UpdatedControls>

 

 

 

<telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />

 

 

 

</UpdatedControls>

 

 

 

</telerik:AjaxSetting>

 

 

 

</AjaxSettings>

 

 

 

</telerik:RadAjaxManager>

 

 

 

<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />

 

<%

 

-- DataSourceID="SqlDataSource1"--%>

 

 

 

<telerik:RadGrid ID="RadGrid1" OnPreRender="RadGrid1_PreRender"

 

 

 

runat="server" AutoGenerateColumns="False" AllowSorting="True" AllowMultiRowSelection="False"

 

 

 

AllowPaging="True" PageSize="5" GridLines="None" ShowGroupPanel="true" OnItemCreated="RadGrid1_ItemCreated"

 

 

 

OnItemCommand="RadGrid1_ItemCommand">

 

 

 

<PagerStyle Mode="NumericPages"></PagerStyle>

 

<%

 

-- DataSourceID="SqlDataSource1"--%>

 

 

 

<MasterTableView DataKeyNames="SrNo" AllowMultiColumnSorting="True"

 

 

 

GroupLoadMode="Server">

 

 

 

<NestedViewTemplate>

 

 

 

<asp:Panel runat="server" ID="InnerContainer" CssClass="viewWrap" Visible="false">

 

 

 

<telerik:RadTabStrip runat="server" ID="TabStip1" MultiPageID="Multipage1" SelectedIndex="0">

 

 

 

<Tabs>

 

 

 

<telerik:RadTab runat="server" Text="Comment" PageViewID="PageView2">

 

 

 

</telerik:RadTab>

 

 

 

</Tabs>

 

 

 

</telerik:RadTabStrip>

 

 

 

<telerik:RadMultiPage runat="server" ID="Multipage1" SelectedIndex="0" RenderSelectedPageOnly="false">

 

 

 

<telerik:RadPageView runat="server" ID="PageView2" Width="460px">

 

 

 

 

<div class="contactWrap">

 

 

 

<table cellpadding="0" cellspacing="0">

 

 

 

<tr>

 

 

 

<td>

 

 

 

<asp:Label ID="Label1" Font-Bold="true" Font-Italic="true" Text='<%# Eval("SrNo") %>'

 

 

 

Visible="false" runat="server" />

 

 

 

<asp:DetailsView ID="DetailsView1" DataSourceID="SqlDataSource4" AllowPaging="true" GridLines="None" Width="100%"

 

 

 

runat="server" Font-Italic="true" AutoGenerateRows="false">

 

 

 

<Fields>

 

<%

 

-- <asp:BoundField DataFormatString="{0:MM/dd/yyyy}" HeaderText="BirthDate:" HtmlEncode="false"

 

DataField="BirthDate" HeaderStyle-Font-Italic="false" HeaderStyle-Font-Bold="true" />--

 

 

%>

 

 

 

<asp:BoundField HeaderText="Comment" DataField="Comment" HeaderStyle-Font-Italic="false"

 

 

 

HeaderStyle-Font-Bold="true" />

 

 

 

</Fields>

 

 

 

</asp:DetailsView>

 

 

 

<asp:SqlDataSource ID="SqlDataSource4" ConnectionString="<%$ ConnectionStrings:db_TempConnectionString %>"

 

 

 

ProviderName="System.Data.SqlClient" SelectCommand="Select comment from tbApproveHistorical where comment ='first changes'"

 

 

 

runat="server">

 

 

 

<SelectParameters>

 

 

 

<asp:ControlParameter ControlID="Label1" PropertyName="Text" Type="String" Name="SrNo" />

 

 

 

</SelectParameters>

 

 

 

</asp:SqlDataSource>

 

 

 

</td>

 

 

 

</tr>

 

 

 

</table>

 

 

 

</div>

 

 

 

</telerik:RadPageView>

 

 

 

</telerik:RadMultiPage>

 

 

 

</asp:Panel>

 

 

 

</NestedViewTemplate>

 

 

 

<Columns>

 

<%

 

-- <telerik:GridTemplateColumn Visible="false">

 

<asp:Label ID="Label1" Font-Bold="true" Font-Italic="true" Text='<%# Eval("SrNo") %>'

Visible="false" runat="server" />

</telerik:GridTemplateColumn>--

 

 

%>

 

 

 

<telerik:GridBoundColumn SortExpression="SrNo" HeaderText="SrNo" HeaderButtonType="TextButton"

 

 

 

DataField="SrNo" UniqueName="SrNo" Visible="false">

 

 

 

</telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn SortExpression="Period" HeaderText="Period" HeaderButtonType="TextButton"

 

 

 

DataField="Period" UniqueName="Period">

 

 

 

</telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn SortExpression="Name" HeaderText="Name" HeaderButtonType="TextButton"

 

 

 

DataField="Name" UniqueName="Name">

 

 

 

</telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn SortExpression="Date" HeaderText="Date" HeaderButtonType="TextButton"

 

 

 

DataField="Date" UniqueName="Date">

 

 

 

</telerik:GridBoundColumn>

 

 

 

</Columns>

 

 

 

</MasterTableView>

 

 

 

<ClientSettings AllowDragToGroup="true" />

 

 

 

</telerik:RadGrid>

 

<%

 

-- <asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:db_TempConnectionString %>"

 

ProviderName="System.Data.SqlClient" SelectCommand="SELECT ROW_NUMBER() OVER(ORDER BY AH.UpdatedOn DESC) As SrNo,

PC.PeriodContextRef AS Period,

(UR.UserFirstName + ' ' + UR.UserLastName) AS Name,

AH.Comment,

CONVERT(varchar,AH.UpdatedOn,101) AS [Date]

FROM tbApproveHistorical AH WITH(NOLOCK)

LEFT OUTER JOIN dbIndigo_Central.dbo.tbPeriodCont PC WITH(NOLOCK)

ON (AH.PeriodContextRefId = PC.PeriodContextRefId)

LEFT OUTER JOIN dbIndigo_Central.dbo.tbUser UR WITH(NOLOCK)

ON (AH.LoginId = UR.LoginId)

ORDER BY UpdatedOn DESC"

runat="server"></asp:SqlDataSource>--

 

 

%>

 

 

 

</div>

 

 

 

</form>

 

</

 

 

body>

 

</

 

 

html>

 

-------------------------------------------------------------------------
.cs file

using

 

 

System;

 

using

 

 

System.Collections.Generic;

 

using

 

 

System.Linq;

 

using

 

 

System.Web;

 

using

 

 

System.Web.UI;

 

using

 

 

Telerik.Web.UI;

 

using

 

 

System.Web.UI.WebControls;

 

public

 

 

partial class G1 : System.Web.UI.Page

 

{

 

 

//protected void RadChart1_ItemDataBound(object sender, Telerik.Charting.ChartItemDataBoundEventArgs e)

 

 

 

//{

 

 

 

// e.SeriesItem.Name = (string)DataBinder.Eval(e.DataItem, "pName");

 

 

 

//}

 

 

 

 

protected void Page_Load(object sender, EventArgs e)

 

{

 

 

clsGetData obj = new clsGetData();

 

RadGrid1.DataSource = obj.GetData();

RadGrid1.MasterTableView.DataKeyNames =

 

new string[] { "SrNo" };

 

RadGrid1.MasterTableView.DataSource = obj.GetData();

 

}

 

 

protected void RadGrid1_PreRender(object sender, EventArgs e)

 

{

 

 

if (!Page.IsPostBack)

 

{

RadGrid1.MasterTableView.Items[0].Expanded =

 

true;

 

RadGrid1.MasterTableView.Items[0].ChildItem.FindControl(

 

"InnerContainer").Visible = true;

 

}

}

 

 

protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)

 

{

 

 

if (e.CommandName == RadGrid.ExpandCollapseCommandName && e.Item is GridDataItem)

 

{

((

 

GridDataItem)e.Item).ChildItem.FindControl("InnerContainer").Visible =

 

!e.Item.Expanded;

}

 

 

 

 

//clsGetData obj = new clsGetData();

 

 

 

//((GridDataItem)e.Item).ChildItem.FindControl("DetailsView1").DataSource = obj.GetData();

 

 

 

// ((GridDataItem)e.Item).ChildItem.FindControl("DetailsView1").DataBind();

 

 

 

//if (((GridDataItem)e.Item).ChildItem.FindControl("DetailsView1").ClientID=="")

 

 

 

//{ }

 

}

 

 

 

protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)

 

{

 

 

if (e.Item is GridNestedViewItem)

 

{

e.Item.FindControl(

 

"InnerContainer").Visible = ((GridNestedViewItem)e.Item).ParentItem.Expanded;

 

}

}

}


Thanks for any help
Satyajit Kadam.

No answers yet. Maybe you can help?

Tags
Grid
Asked by
Satyajit
Top achievements
Rank 1
Share this question
or