How to access information from the controls in the TemplateColumn in SelectedIndexChanged Event
<asp:Label id=’Label1′ runat=’server’>Label</asp:Label> <asp:DataGrid id=’DataGrid1′ OnSelectedIndexChanged=’SelectedIndexChg’ AutoGenerateColumns=’False’ runat=’server’> <Columns> <asp:ButtonColumn Text=’Select’ ButtonType=’PushButton’ CommandName=’Select’></asp:ButtonColumn> <asp:TemplateColumn HeaderText=’ProductId’> <ItemTemplate> <asp:Label text=<%#DataBinder.Eval(Container.DataItem , ‘Productid’)%> ID=’lbl1′ Runat=server ></asp:Label> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> VB.NET Protected Sub SelectedIndexChg(ByVal sender As Object, ByVal e As System.EventArgs) Label1.Text = CType(DataGrid1.SelectedItem.FindControl(‘lbl1’), Label).Text End Sub C# protected void SelectedIndexChg(object sender, System.EventArgs e) { Label1.Text = ((Label)DataGrid1.SelectedItem.FindControl (‘lbl1’)).Text ; }
How to add a Column dynamically to the datagrid to include custom expressions
<asp:DataGrid id=’DataGrid1′ runat=’server’></asp:DataGrid> VB.NET ’Fill the DataSet ds with data from database Dim dc As DataColumn dc = New DataColumn(‘Total’, Type.GetType(‘System.Double’)) dc.Expression = ‘UnitPrice * UnitsInStock’ ds.Tables(0).Columns.Add(dc) DataGrid1.DataSource = ds DataGrid1.DataBind() C# //Fill the DataSet ds with data from database DataColumn dc ; dc = new DataColumn(‘Total’, Type.GetType(‘System.Double’)); dc.Expression = ‘UnitPrice * UnitsInStock’; ds.Tables[0].Columns.Add(dc); DataGrid1.DataSource = ds; DataGrid1.DataBind();
How to fill a DataGrid with an array
<asp:DataGrid id=’DataGrid1′ runat=’server’></asp:DataGrid> VB.NET Dim strArray As String() = {‘Tom’, ‘Jerry’, ‘Harry’, ‘Mickey’} DataGrid1.DataSource = strArray DataGrid1.DataBind() C# string[] strArray = {‘Tom’,’Jerry’, ‘Harry’, ‘Mickey’}; DataGrid1.DataSource = strArray; DataGrid1.DataBind();
How to trigger the checkChanged event of the checkbox inside a DataGrid
<asp:DataGrid id=’DataGrid1′ runat=’server’> <Columns> <asp:TemplateColumn HeaderText=’Boolean Value’> <ItemTemplate> <asp:CheckBox id=CheckBox1 runat=’server’ onCheckedChanged=’chkChanged’ Checked=’<%# DataBinder.Eval(Container.DataItem, ‘Discontinued’) %>’ AutoPostBack=’True’> </asp:CheckBox> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> VB.NET Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ’Put user code to initialize the page here If Not IsPostBack Then ’Populate the datagrid End If End Sub protected Sub chkChanged(ByVal sender As Object, ByVal e As System.EventArgs) Response.Write(‘CheckChanged Event’) End Sub C# private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here if (!Page.IsPostBack ) { DataGrid1.DataSource =BindDataClass.BindData (); DataGrid1.DataBind (); } } protected void chkChanged(object sender , System.EventArgs e ) { Response.Write(‘CheckChanged Event’); }
How do I change the width of the Textboxes created for edit-mode of a Datagrid?
<asp:DataGrid id=’DataGrid1′ runat=’server’ AutoGenerateColumns=’False’> <Columns> <asp:TemplateColumn HeaderText=’ProductName’> <ItemTemplate> <%#DataBinder.Eval(Container.DataItem, ‘ProductName’).ToString()%> </ItemTemplate> <EditItemTemplate> <asp:Textbox runat=’server’ width=’450′ maxlength=’450’/> </EditItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid>