or
<rad:RadGrid ID="radTestInputs" Width="100px" EnableAJAX="True" AutoGenerateColumns="false" EnableAJAXLoadingTemplate="True" GridLines="None" AllowSorting="True" AllowPaging="True" runat="server" Skin="WinXP"> <ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True"> <Resizing AllowColumnResize="True" EnableRealTimeResize="True" ResizeGridOnColumnResize="True" /> <Scrolling AllowScroll="True" UseStaticHeaders="True" FrozenColumnsCount="1" /> </ClientSettings> <HeaderStyle Width="100px" /> </rad:RadGrid> Partial Class DefaultVB Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then BindGrid() End If End Sub Public Sub BindGrid() Dim templateColumnName As String = "Number" Dim templateColumn As New GridTemplateColumn() templateColumn.ItemTemplate = New MyTemplateCaption("Number") templateColumn.HeaderText = templateColumnName templateColumn.ItemStyle.Width = Unit.Pixel(80) templateColumn.HeaderStyle.Width = Unit.Pixel(80) templateColumn.DataField = "Number" radTestInputs.MasterTableView.Columns.Add(templateColumn) Dim templateColumnName1 As String = "Test" Dim templateColumn1 As New GridTemplateColumn() templateColumn1.ItemTemplate = New MyTemplateCaption("Test") templateColumn1.HeaderText = templateColumnName1 templateColumn1.ItemStyle.Width = Unit.Pixel(80) templateColumn1.HeaderStyle.Width = Unit.Pixel(80) templateColumn1.DataField = "Test" radTestInputs.MasterTableView.Columns.Add(templateColumn1) Dim dt As DataTable = New DataTable() dt.Columns.Add("Number") dt.Columns.Add("Test") Dim dr As DataRow = dt.NewRow() dr(0) = "1" dr(1) = "Test1" dt.Rows.Add(dr) Dim dr1 As DataRow = dt.NewRow() dr1(0) = "2" dr1(1) = "Test2" dt.Rows.Add(dr1) radTestInputs.DataSource = dt radTestInputs.DataBind() End SubEnd ClassClass MyTemplateCaption Implements ITemplate Protected lControl As LiteralControl Private value As String, id As String Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) _ Implements System.Web.UI.ITemplate.InstantiateIn lControl = New LiteralControl() lControl.ID = value 'How can I provide different id for each control here? AddHandler lControl.DataBinding, AddressOf label1_DataBinding container.Controls.Add(lControl) End Sub Public Sub New(ByVal cValue As String) value = cValue End Sub Private Sub label1_DataBinding(ByVal sender As Object, ByVal e As EventArgs) Dim target As LiteralControl = DirectCast(sender, LiteralControl) Dim item As GridDataItem = DirectCast(target.BindingContainer, GridDataItem) Dim row As DataRowView = DirectCast(item.DataItem, DataRowView) If (target.ID.ToLower().Contains("number")) Then 'Not proper- here I Need to assign text according to the control's id target.Text = row.Item(0).ToString() Else target.Text = row.Item(1).ToString() End If End SubEnd ClassrgHotels.MasterTableView.InsertItem();
eventArgs.get_gridColumn() This is not the column that has been dragged. How do I get the correct dragged column with it's new position? Paul
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DefaultCS.aspx.cs" Inherits="TelerikNestedGrid.DefaultCS" %><%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <!-- custom head section --> <!-- end of custom head section --></head><body class="BODY"> <form runat="server" id="mainForm" method="post"> <!-- content start --> <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> <script language="javascript" type="text/javascript"> function testAlert() { alert("hello"); } </script> <br /> <div style="width: 730px;"> <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> </telerik:RadAjaxManager> <br /> </div> <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="testAlert()"/> <!-- content end --> </form></body></html>using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;using System.Data;using System.IO;using System.Data.Odbc;namespace TelerikNestedGrid{ public partial class DefaultCS : System.Web.UI.Page { private void DefineGridStructure() { RadGrid RadGrid1 = new RadGrid(); RadGrid1.ID = "RadGrid1"; RadGrid1.ItemCreated += new GridItemEventHandler(RadGrid1_ItemCreated); //Assignt the DataTable as Source RadGrid1.DataSource = GetTableFromCSV(@"D:\RadGridImport.csv"); ; //If only Bind the Data here, the ImageColumn will not appear. RadGrid1.DataBind(); //Create and Add the new Column GridImageColumn col = new GridImageColumn(); col.ImageUrl= "/images/stift_icon.gif"; GridImageButton btn = new GridImageButton(col); btn.OnClientClick = "testAlert()"; btn.Click += new ImageClickEventHandler(GridButton_Click); RadGrid1.Columns.Add(col); //If i first Bind and then Rebind() here, the ImageColumn is at the Beginning. RadGrid1.Rebind(); this.PlaceHolder1.Controls.Add(RadGrid1); } public void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) { if (e.Item is GridDataItem) { //e.Item.Cells[0].Controls[0].GetType() -> type is usual button and not GridImageButton? Why that? TableCell t = e.Item.Cells[0]; foreach (Control c in t.Controls) { c.GetType(); //(c as ImageButton).OnClientClick = "testAlert()"; (c as Button).OnClientClick = "testAlert()"; (c as Button).Click += new EventHandler(GridButton_Click); (c as Button).Attributes.Add("onclick", "GridButton_Click()"); } } } public void GridButton_Click(object sender, EventArgs e) { Console.WriteLine(); } protected void Page_Init(object source, System.EventArgs e) { DefineGridStructure(); } protected void Page_Load(object sender, EventArgs e) { } private DataTable GetTableFromCSV(string path) { if (!File.Exists(path)) throw new FileNotFoundException(); FileInfo fileInfo = new FileInfo(path); DataTable dataTable = new DataTable(); string connectionString = String.Format("Driver={{Microsoft Text Driver (*.txt; *.csv)}};Dbq={0};", fileInfo.DirectoryName); OdbcConnection connection = new OdbcConnection(connectionString); OdbcDataAdapter da = new OdbcDataAdapter(String.Format("select * from [{0}]", fileInfo.Name), connection); da.Fill(dataTable); return dataTable; } }}Hello :)
I have a Rad grid view, which contain a button in each row
I want to do something with the data key (the primary key ) of the grid when I press a button in some row
can I retrieve the data key for used row to use it in my C# code ?
thank you all :)