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.