or
Hello
I want to generate Radgrid templates column Dynamically on button click event.
as shown in images attached below Edit ,Delete and ProductNames columns are Fixed
I just want to add Country Column dynamically on AddCountry Button click
Using the following code the new column gets added but the previous column gets deleted , I want to maintain the previous column and the values in it
as shown it attached images
Please check if I am missing any thing in the code below
thanks
waiting for reply
Kishor
Dim objProductDataTable As New tblProductDataTable Dim objProductTableAdapter As New tblProductTableAdapter Private Class MyTemplate Implements ITemplate Protected textBox As TextBox Private colname As String Public Sub New(ByVal cName As String) MyBase.New() colname = cName End Sub Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements ITemplate.InstantiateIn textBox = New TextBox textBox.ID = "abc" container.Controls.Add(textBox) End Sub End Class Protected Sub btnAddCountry_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddCountry.Click objProductDataTable = objProductTableAdapter.GetProducts() RadGrid1.DataSource = objProductDataTable Dim templateColumnName As String = "Col1" Dim templateColumn As New GridTemplateColumn() templateColumn.ItemTemplate = New MyTemplate(templateColumnName) templateColumn.HeaderText = txtCountry.Text templateColumn.ItemStyle.Font.Bold = True templateColumn.HeaderStyle.Font.Bold = True RadGrid1.MasterTableView.Columns.Add(templateColumn) RadGrid1.DataBind() For i = 0 To objProductDataTable.Rows.Count - 1 Dim lbl As Label = DirectCast(RadGrid1.Items(i).FindControl("lblproduct"), Label) lbl .Text = objProductDataTable.Rows(i).Item("ProductName") Next End Sub
01.<!DOCTYPE html>02.<html xmlns="http://www.w3.org/1999/xhtml">03.<head runat="server">04. <title></title>05. <style type="text/css">06. html, body, form {07. width: 100%;08. height: 100%;09. padding: 0;10. margin: 0;11. border-collapse: collapse;12. }13. </style>14.</head>15.<body>16. <form id="form1" runat="server">17. <telerik:RadScriptManager ID="RadScriptManager1" runat="server" />18. <telerik:RadSplitter Height="100%" ID="RadSplitter1" Orientation="Horizontal" runat="server" Width="100%">19. <telerik:RadPane Height="36px" ID="headerPane" runat="server" Width="100%">20. <telerik:RadButton ButtonType="LinkButton" ID="test" NavigateUrl="http://www.telerik.com" runat="server" Target="contentPane" Text="TEST" />21. </telerik:RadPane>22. <telerik:RadPane ContentUrl="about:blank" Height="500px" ID="contentPane" runat="server">23. </telerik:RadPane>24. </telerik:RadSplitter>25. </form>26.</body>27.</html>001.<%@ Page Title="" Language="C#" MasterPageFile="~/TYS_T.Master" AutoEventWireup="true"002. CodeBehind="Talep_Takibi.aspx.cs" Inherits="TYS20.Talep_Takibi" %>003. 004.<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">005. <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">006. <script type="text/javascript">007. 008. function onClientClearButtonClicked(sender, args) {009. disableConversationWindow();010. isEnabled = false;011. }012. 013. </script>014. </telerik:RadCodeBlock>015. 016. 017. <div id="content" class="content maxContentHeigth">018. <asp:SqlDataSource ID="SqlDataSource1" runat="server"019. ConnectionString="<%$ ConnectionStrings:TYS20DEVConnectionString %>"020. SelectCommand="(select c.DEGER as 'ACILIYETDERECESI' , p.ID from PARAMETRE p inner join CEVIRI c on (p.ID=c.PARAMETREID) where USTPARAMETREID='352EA330-9E16-4014-86D3-08372E4A3881' and c.DILID= @SAYFA)">021. <SelectParameters>022. <asp:SessionParameter DefaultValue="tr-TR" Name="SAYFA" SessionField="userLang"023. Type="String" />024. </SelectParameters>025. </asp:SqlDataSource>026. <asp:SqlDataSource ID="SqlDataSource2" runat="server"027. ConnectionString="<%$ ConnectionStrings:TYS20DEVConnectionString %>"028. SelectCommand="(select c.DEGER as 'ISLEMDURUMU' , p.ID from PARAMETRE p inner join CEVIRI c on (p.ID=c.PARAMETREID) where USTPARAMETREID='AC2788D4-BEB7-4E6F-8BF0-AF7D2AE1A84D' and c.DILID= @SAYFA)">029. <SelectParameters>030. <asp:SessionParameter DefaultValue="tr-TR" Name="SAYFA" SessionField="userLang"031. Type="String" />032. </SelectParameters>033. </asp:SqlDataSource>034. 035. <asp:SqlDataSource ID="SqlDataSource3" runat="server"036. ConnectionString="<%$ ConnectionStrings:TYS20DEVConnectionString %>"037. SelectCommand="(select distinct c.DEGER,k.ID,k.USTKATEGORIID from KATEGORI k inner join CEVIRI c on (c.PARAMETREID=k.ID) where c.DILID= @SAYFA)">038. <SelectParameters>039. <asp:SessionParameter DefaultValue="tr-TR" Name="SAYFA" SessionField="userLang"040. Type="String" />041. </SelectParameters>042. </asp:SqlDataSource>043. 044. <asp:SqlDataSource ID="SqlDataSource4" runat="server"045. ConnectionString="<%$ ConnectionStrings:TYS20DEVConnectionString %>"046. SelectCommand="(select distinct t.TALEPNO ,t.ID from KULLANICIHAVUZ kh inner join HAVUZTALEP ht on (kh.HAVUZTANIMID=ht.HAVUZID) inner join TALEP t on (ht.TALEPID=t.ID) inner join TALEPKULLANICI tk on (tk.TALEPID=t.ID) where kh.KULLANICIID = @ID)">047. <SelectParameters>048. <asp:SessionParameter Name="ID" SessionField="tysUSER" Type="Object" />049. </SelectParameters>050. 051. </asp:SqlDataSource>052. 053. <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" UpdateInitiatorPanelsOnly="true">054. <AjaxSettings>055. <telerik:AjaxSetting AjaxControlID="radTalepTakipGrid">056. <UpdatedControls>057. <telerik:AjaxUpdatedControl ControlID="radTalepTakipGrid" LoadingPanelID="RadAjaxLoadingPanel1" />058. </UpdatedControls>059. </telerik:AjaxSetting>060. 061. <telerik:AjaxSetting AjaxControlID="radSecilenKisiCombo">062. <UpdatedControls>063. <telerik:AjaxUpdatedControl ControlID="radTalepTakipGrid" LoadingPanelID="RadAjaxLoadingPanel1"></telerik:AjaxUpdatedControl>064. <telerik:AjaxUpdatedControl ControlID="radSecilenKisiCombo" LoadingPanelID="RadAjaxLoadingPanel1"></telerik:AjaxUpdatedControl>065. </UpdatedControls>066. </telerik:AjaxSetting>067. </AjaxSettings>068. 069. </telerik:RadAjaxManager>070. <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Sunset">071. <div class="loading">072. <asp:Image ID="loadingImg" runat="server" ImageUrl="~/Images/loading.gif" AlternateText="loading"></asp:Image>073. </div>074. </telerik:RadAjaxLoadingPanel>075. 076. <telerik:RadComboBox ID="radSecilenKisiCombo" runat="server"077. AutoPostBack="True" Width="250px" Height="150px"078. AppendDataBoundItems="true"079. OnSelectedIndexChanged="radSecilenKisiCombo_SelectedIndexChanged" EmptyMessage="Kişi seçiniz...">080. 081. <ItemTemplate>082. <div class="imageWrap">083. <telerik:RadBinaryImage runat="server" ID="Image1" Width="32px" Height="32px" ResizeMode="Fit" DataValue='<%# Eval("KULLANICIFOTO")%>' />084. </div>085. <div>086. <ul class="personDetails">087. <asp:Label ID="Label1" runat="server" Text='<%# Eval("AD")%>'></asp:Label>088. </ul>089. </div>090. </ItemTemplate>091. </telerik:RadComboBox>092. <div class="gridPanel">093. <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1">094. <telerik:RadGrid ID="radTalepTakipGrid" AllowPaging="true" PageSize="10"095. AllowFilteringByColumn="True" AllowSorting="True"096. runat="server" EnableLinqExpressions="False"097. OnNeedDataSource="radTalepTakipGrid_NeedDataSource"098. OnItemDataBound="radTalepTakipGrid_ItemDataBound"099. OnItemCreated="radTalepTakipGrid_ItemCreated"100. CssClass="RadGrid_gg RadGridRTL_gg">101. <MasterTableView AutoGenerateColumns="false" ShowFooter="True" TableLayout="Fixed" DataKeyNames="ID" ClientDataKeyNames="ID">102. <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />103. <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />104. <AlternatingItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />105. <Columns>106. <telerik:GridHyperLinkColumn UniqueName="TALEPNO" DataNavigateUrlFormatString="TalepDetay.aspx?TID={0}" DataTextField="TALEPNO" DataNavigateUrlFields="ID" FilterControlWidth="90%" NavigateUrl="ID" HeaderText="TALEP NO"107. AutoPostBackOnFilter="true" CurrentFilterFunction="Contains"108. ShowFilterIcon="false">109. <FilterTemplate>110. <telerik:RadAutoCompleteBox ID="radTalepNoBox" EmptyMessage="TALEP NO GİRİNİZ" DataSourceID="SqlDataSource4" DataTextField="TALEPNO" MaxResultCount="10"111. Width="90%" DataValueField="TALEPNO" OnEntryAdded="radTalepNoBox_EntryAdded" AutoPostBack="true" runat="server">112. </telerik:RadAutoCompleteBox>113. 114. </FilterTemplate>115. </telerik:GridHyperLinkColumn>116. <telerik:GridBoundColumn FilterControlWidth="90px" DataField="KATEGORI" UniqueName="KATEGORI" HeaderText="KATEGORI"117. AutoPostBackOnFilter="true" CurrentFilterFunction="Contains"118. ShowFilterIcon="false">119. <FilterTemplate>120. <telerik:RadDropDownTree ID="radKATEGORItree" runat="server" DefaultMessage="Seçiniz.." Width="130px"121. OnEntryAdded="radKATEGORItree_EntryAdded" ExpandNodeOnSingleClick="false" EnableFiltering="true" FilterSettings-Highlight="Matches" FilterSettings-EmptyMessage="Kategori Seçiniz.. ">122. <DropDownSettings AutoWidth="Enabled" />123. </telerik:RadDropDownTree>124. <telerik:RadButton ID="radKategoriFilterButton" Text="Seç" ImageUrl="<%#GetFilterIcon() %>" ImagePosition="center" runat="server" OnClick="radKategoriFilterButton_Click">125. </telerik:RadButton>126. 127. </FilterTemplate>128. </telerik:GridBoundColumn>129. <telerik:GridBoundColumn FilterControlWidth="90%" UniqueName="ACILIYETDERECESI" DataField="ACILIYETDERECESI" HeaderText="ACILIYET DERECESI"130. CurrentFilterFunction="Contains"131. ShowFilterIcon="false">132. <FilterTemplate>133. <telerik:RadComboBox ID="radACILIYETDERECESICombo" Width="100%" AutoPostBack="true" EmptyMessage="seçiniz" OnSelectedIndexChanged="radACILIYETDERECESICombo_SelectedIndexChanged"134. runat="server">135. </telerik:RadComboBox>136. </FilterTemplate>137. 138. </telerik:GridBoundColumn>139. <telerik:GridBoundColumn FilterControlWidth="90%" UniqueName="ACIKLAMA" DataField="ACIKLAMA" HeaderText="AÇIKLAMA" AutoPostBackOnFilter="true" ShowFilterIcon="true">140. </telerik:GridBoundColumn>141. <telerik:GridBoundColumn FilterControlWidth="90%" UniqueName="ISLEMDURUMU" DataField="ISLEMDURUMU" HeaderText="ISLEM DURUMU"142. AutoPostBackOnFilter="true" CurrentFilterFunction="Contains"143. ShowFilterIcon="false">144. <FilterTemplate>145. <telerik:RadComboBox ID="radISLEMDURUMUCombo" Width="100%" runat="server" EmptyMessage="seçiniz" AutoPostBack="true" OnSelectedIndexChanged="radISLEMDURUMUCombo_SelectedIndexChanged">146. </telerik:RadComboBox>147. </FilterTemplate>148. </telerik:GridBoundColumn>149. <telerik:GridDateTimeColumn DataField="TALEPACILISTARIHI" HeaderText="TALEP ACILIS TARIHI" FilterControlWidth="90%"150. SortExpression="TALEPACILISTARIHI" PickerType="DatePicker" EnableTimeIndependentFiltering="true" ShowFilterIcon="true"151. DataFormatString="{0:dd/MM/yyyy}">152. </telerik:GridDateTimeColumn>153. 154. </Columns>155. 156. <NestedViewSettings>157. <ParentTableRelation >158. <telerik:GridRelationFields DetailKeyField="ID" MasterKeyField="ID" />159. </ParentTableRelation>160. </NestedViewSettings>161. 162. <NestedViewTemplate>163. <div style="height: 150px; width: 100%">164. <div style="width: 100%; height: 60%">165. <div style="float: left; padding-left: 3%; width: 25%; height: 100%">166. <div style="float: left;">167. <telerik:RadBinaryImage runat="server" ID="RadBinaryImage1" Width="64px" Height="64px" ResizeMode="Fit" DataValue='<%# Eval("TALEPSAHIBIKULLANICIFOTO")%>' />168. 169. </div>170. <div style="float: left; margin-left: 3%">171. <%# Eval("TALEPSAHIBI")%>172. <br />173. <%# Eval("TALEPSAHIBIFIRMA")%>174. <br />175. <%# Eval("TALEPSAHIBIDEPARTMAN")%>176. <br />177. <%# Eval("TALEPSAHIBIDEPARTMANGOREV")%>178. </div>179. </div>180. <div style="float: right; margin-left: 1%; width: 70%; height: 100%">181. <asp:Label ID="Label2" runat="server" Text=' <%# Eval("ID") %>' Visible="false"></asp:Label>182. <asp:Label ID="TalepNoLabel" runat="server" Text="Talep Numarası :" Font-Bold="true"></asp:Label>183. <%# Eval("TALEPNO") %>184. <br />185. <asp:Label ID="AciklamaLabel" runat="server" Text="Talep Açıklaması" Font-Bold="true"></asp:Label>186. <br />187. <%# Eval("ACIKLAMA") %>188. </div>189. </div>190. <div style="width: 100%; height: 40%">191. <telerik:RadGrid ID="radTalepSonHareketGrid" runat="server">192. <MasterTableView AutoGenerateColumns="True" ShowFooter="True" TableLayout="Fixed">193. <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />194. <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />195. <AlternatingItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />196. </MasterTableView>197. </telerik:RadGrid>198. </div>199. </div>200. 201. 202. </NestedViewTemplate>203. </MasterTableView>204. <ClientSettings EnableRowHoverStyle="true">205. <Selecting AllowRowSelect="true" EnableDragToSelectRows="false" />206. </ClientSettings>207. </telerik:RadGrid>208. </telerik:RadAjaxPanel>209. </div>210. </div>211.</asp:Content>01.protected void radTalepTakipGrid_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)02. {03. TYS20DEVEntities db = new TYS20DEVEntities();04. Guid secilenK = Guid.Parse(radSecilenKisiCombo.SelectedItem.Value.ToString());05. var tlp = (from t in db.TALEP06. from th in db.HAVUZTALEP07. from tk in db.TALEPKULLANICI08. from kh in db.KULLANICIHAVUZ09. from f in db.FOTO10. where11. (secilenK == Guid.Empty || t.TALEPSORUMLUSUKULLANICIID == secilenK || tk.KULLANICIID == secilenK) &&12. t.ID == tk.TALEPID &&13. tk.KULLANICIID == userID &&14. kh.HAVUZTANIMID == th.HAVUZID &&15. th.TALEPID == t.ID &&16. t.TALEPSAHIBIKULLANICIID == f.FKID17. && kh.KULLANICIID==tk.KULLANICIID18. orderby t.TALEPNO descending19. select new20. {21. ID = t.ID,22. TALEPNO = t.TALEPNO,23. TALEPACILISTARIHI = t.TALEPACILISTARIHI,24. KATEGORI = t.KATEGORI.CEVIRI.FirstOrDefault(c => c.DILID == userLang).DEGER,25. KATEGORIID = t.KATEGORIID,26. TALEPSAHIBI = t.TALEPSAHIBIKULLANICI.AD + " " + t.TALEPSAHIBIKULLANICI.SOYAD,27. TALEPSAHIBIFIRMA = t.TALEPSAHIBIKULLANICI.KURUM.AD,28. TALEPSAHIBIDEPARTMAN = t.TALEPSAHIBIKULLANICI.KURUMDEPARTMAN.PARAMETRE.CEVIRI.FirstOrDefault(c => c.DILID == userLang).DEGER,29. TALEPSAHIBIDEPARTMANGOREV = t.TALEPSAHIBIKULLANICI.DEPARTMANGOREV.PARAMETRE.CEVIRI.FirstOrDefault(c => c.DILID == userLang).DEGER,30. TALEPSAHIBIKULLANICIFOTO = f.ICERIK,31. ACILIYETDERECESI = t.ACILIYETDERECESI.CEVIRI.FirstOrDefault(c => c.DILID == userLang).DEGER,32. BILDIRIMTURU = t.BILDIRIMTURU.CEVIRI.FirstOrDefault(c => c.DILID == userLang).DEGER,33. ACIKLAMA = t.ACIKLAMA,34. ACILIYETDERECESIID = t.ACILIYETDERECEID,35. ISLEMDURUMU = t.ISLEMDURUM.CEVIRI.FirstOrDefault(c => c.DILID == userLang).DEGER,36. KULLANICIACILIYETSEVIYESI = tk.PARAMETRE.CEVIRI.FirstOrDefault(p => p.DILID == userLang).DEGER37. }).ToList().Distinct();38. 39. radTalepTakipGrid.DataSource = tlp.ToList();40. (radTalepTakipGrid.MasterTableView.GetColumn("ACIKLAMA") as GridBoundColumn).AllowFiltering = false;41. 42. }
protected void radTalepTakipGrid_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridNestedViewItem)
{
GridDataItem nestedItem = ((GridNestedViewItem)e.Item).ParentItem as GridDataItem;
string dataKeyValue = nestedItem.GetDataKeyValue("ID").ToString();
RadGrid radTalepSonHareketGrid = (e.Item.FindControl("radTalepSonHareketGrid") as RadGrid);
Guid tID = Guid.Parse(dataKeyValue);
TYS20DEVEntities ent = new TYS20DEVEntities();
var sonhareket = (from th in ent.TALEPHAREKET
where
th.TALEPID == tID
orderby th.TARIH descending
select new
{
KAYNAK = (th.KAYNAKHAVUZ.HAVUZPARAMETRE.CEVIRI.FirstOrDefault(c => c.DILID == userLang).DEGER == null) ? th.KAYNAKKULLANICI.AD + "" + th.KAYNAKKULLANICI.SOYAD : th.KAYNAKHAVUZ.HAVUZPARAMETRE.CEVIRI.FirstOrDefault(c => c.DILID == userLang).DEGER + " / " + th.KAYNAKKULLANICI.AD + "" + th.KAYNAKKULLANICI.SOYAD,
HEDEF = (th.HEDEFHAVUZ.HAVUZPARAMETRE.CEVIRI.FirstOrDefault(c => c.DILID == userLang).DEGER == null) ? th.HEDEFKULLANICI.AD + " " + th.HEDEFKULLANICI.SOYAD : th.HEDEFHAVUZ.HAVUZPARAMETRE.CEVIRI.FirstOrDefault(c => c.DILID == userLang).DEGER + " / " + th.HEDEFKULLANICI.AD + " " + th.HEDEFKULLANICI.SOYAD,
TARIH = th.TARIH,
ACIKLAMA = th.ACIKLAMA,
TALEPDURUM = ent.CEVIRI.FirstOrDefault(c => c.PARAMETREID == th.TALEPDURUM && c.DILID == userLang).DEGER
}).Take(1);
radTalepSonHareketGrid.DataSource = sonhareket;
radTalepSonHareketGrid.DataBind();
}
}
// Called from OnPreRender. private void RestoreOrderIndexes() { // Load the OrderIndexes saved in ViewState. var columnOrder = (Dictionary<string, int>)this.ViewState["GridColumnOrder"]; if (columnOrder == null) return; // Apply the OrderIndexes to the grid columns. foreach (string columnName in columnOrder.Keys) { var gridColumn = this.MasterTableView.Columns.FindByUniqueNameSafe(columnName); if (gridColumn != null) gridColumn.OrderIndex = columnOrder[columnName]; } }//Create the Rad GridTelerik.Web.UI.RadGrid tmpRadGrid = new Telerik.Web.UI.RadGrid();tmpRadGrid.Init += new EventHandler(tmpRadGrid_Init);tmpRadGrid.NeedDataSource += new Telerik.Web.UI.GridNeedDataSourceEventHandler(tmpRadGrid_NeedDataSource);tmpRadGrid.SelectedIndexChanged += new EventHandler(tmpRadGrid_SelectedIndexChanged);tmpRadGrid.MasterTableView.ExpandCollapseColumn.Visible = false;tmpRadGrid.Width = Unit.Percentage(100);tmpRadGrid.ID = "radGrid" + tabText;tmpRadGrid.Skin = "Silk";tmpRadGrid.AutoGenerateColumns = false;tmpRadGrid.AllowFilteringByColumn = true;tmpRadGrid.GroupingSettings.CaseSensitive = false;tmpRadGrid.AllowSorting = true;tmpRadGrid.ClientSettings.EnableRowHoverStyle = true;tmpRadGrid.ClientSettings.Selecting.AllowRowSelect = true;tmpRadGrid.ClientSettings.EnablePostBackOnRowClick = true;tmpRadGrid.CellPadding = 0;tmpRadGrid.CellSpacing = 0;tmpRadGrid.AllowPaging = true;tmpRadGrid.PageSize = 50;tmpRadGrid.PagerStyle.AlwaysVisible = true;//Create the columnsTelerik.Web.UI.GridTemplateColumn tmpCol_Name = new Telerik.Web.UI.GridTemplateColumn();tmpCol_Name.ItemTemplate = new GridNameColumnTemplate();tmpCol_Name.ItemStyle.Width = new Unit(150);tmpCol_Name.ItemStyle.VerticalAlign = VerticalAlign.Top;tmpCol_Name.HeaderText = "Name";tmpCol_Name.DataField = "FullName";tmpCol_Name.SortExpression = "FullName";tmpCol_Name.UniqueName = "FullName";tmpCol_Name.FilterDelay = 0;tmpCol_Name.FilterControlWidth = Unit.Percentage(80);tmpCol_Name.AutoPostBackOnFilter = true;tmpCol_Name.CurrentFilterFunction = Telerik.Web.UI.GridKnownFunction.Contains;Telerik.Web.UI.GridBoundColumn tmpCol_Title = new Telerik.Web.UI.GridBoundColumn();tmpCol_Title.ItemStyle.Width = new Unit(150);tmpCol_Title.ItemStyle.VerticalAlign = VerticalAlign.Top;tmpCol_Title.HeaderText = "Business Title";tmpCol_Title.DataField = "Title";tmpCol_Title.SortExpression = "Title";tmpCol_Title.UniqueName = "Title";tmpCol_Title.FilterDelay = 0;tmpCol_Title.FilterControlWidth = Unit.Percentage(80);tmpCol_Title.AutoPostBackOnFilter = true;tmpCol_Title.CurrentFilterFunction = Telerik.Web.UI.GridKnownFunction.Contains;Telerik.Web.UI.GridTemplateColumn tmpCol_ContactInfo = new Telerik.Web.UI.GridTemplateColumn();tmpCol_ContactInfo.ItemTemplate = new GridContactInfoColumnTemplate();tmpCol_ContactInfo.ItemStyle.Width = new Unit(100);tmpCol_ContactInfo.ItemStyle.VerticalAlign = VerticalAlign.Top;tmpCol_ContactInfo.HeaderText = "Contact Information";tmpCol_ContactInfo.DataField = "FullContactInfo";tmpCol_ContactInfo.SortExpression = "FullContactInfo";tmpCol_ContactInfo.UniqueName = "ContactInfo";tmpCol_ContactInfo.FilterDelay = 0;tmpCol_ContactInfo.FilterControlWidth = Unit.Percentage(80);tmpCol_ContactInfo.AutoPostBackOnFilter = true;tmpCol_ContactInfo.CurrentFilterFunction = Telerik.Web.UI.GridKnownFunction.Contains;Telerik.Web.UI.GridBoundColumn tmpCol_Location = new Telerik.Web.UI.GridBoundColumn();tmpCol_Location.ItemStyle.Width = new Unit(70);tmpCol_Location.ItemStyle.VerticalAlign = VerticalAlign.Top;tmpCol_Location.FilterControlWidth = Unit.Percentage(60);tmpCol_Location.DataField = "OfficeCode";tmpCol_Location.HeaderText = "Office Code";tmpCol_Location.SortExpression = "OfficeCode";tmpCol_Location.UniqueName = "Office";tmpCol_Location.FilterDelay = 0;tmpCol_Location.AutoPostBackOnFilter = true;tmpCol_Location.CurrentFilterFunction = Telerik.Web.UI.GridKnownFunction.Contains;//Add the columns to the gridtmpRadGrid.MasterTableView.Columns.Add(tmpCol_Name);tmpRadGrid.MasterTableView.Columns.Add(tmpCol_Title);tmpRadGrid.MasterTableView.Columns.Add(tmpCol_ContactInfo);tmpRadGrid.MasterTableView.Columns.Add(tmpCol_Location);tmpRadGrid.DataSource = tmpLetterContacts;tmpRadGrid.DataBind();class GridNameColumnTemplate : ITemplate{ public void InstantiateIn(Control container) { Literal lit = new Literal(); lit.DataBinding += new EventHandler(lit_DataBinding); container.Controls.Add(lit); } public void lit_DataBinding(object sender, EventArgs e) { Literal l = (Literal)sender; Telerik.Web.UI.GridDataItem container = (Telerik.Web.UI.GridDataItem)l.NamingContainer; Directory_BO.Employee tmpEmp = (Directory_BO.Employee)container.DataItem; l.Text = "<table><tr><td style='border:none;vertical-align:top;padding:0 3px 0 0 !important;' width='45px;'><img width='45px' src='/controls/EmployeePhoto.ashx?img=thumb&id=" + tmpEmp.ID + "' /></td><td style='border:none;padding:0px;vertical-align:top;'>" + tmpEmp.FullName + "</td></tr></table>"; }}class GridContactInfoColumnTemplate : ITemplate{ public void InstantiateIn(Control container) { Literal lit = new Literal(); lit.DataBinding += new EventHandler(lit_DataBinding); container.Controls.Add(lit); } public void lit_DataBinding(object sender, EventArgs e) { Literal l = (Literal)sender; Telerik.Web.UI.GridDataItem container = (Telerik.Web.UI.GridDataItem)l.NamingContainer; Directory_BO.Employee tmpEmp = (Directory_BO.Employee)container.DataItem; l.Text = tmpEmp.FullContactInfo; }}