Tuesday, April 16, 2013

Asp.Net GridView useful tips and tricks

Asp.Net GridView useful tips and tricks

OUTSIDE GRIDVIEW CODE BEHIND

//Filtering only just DataRow inside GridView RowDataBound (i.e. Excluding Header, Footer and Pager)
if (e.Row.RowType == DataControlRowType.DataRow)
{
//Finding Control inside the GridViewRow
 Button b = ((Button)e.Row.FindControl("MyButtonID"));

//Get Data Item field (Might need to validate as your own)
string CustomerID = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "CustomerID"));


//Get GridViewRow in the button click of GridView ItemTemplate
Method 1) GridViewRow gvr = (GridViewRow)(sender as Button).NamingContainer;
Method 2) GridViewRow gvr = (sender as Button).Parent.Parent as GridViewRow;

//Get Parent's GridViewRow in the button click of Nested GridView ItemTemplate
GridViewRow ParentRow = e.Row.Parent.Parent.Parent.Parent as GridViewRow;

INSIDE GRIDVIEW

//Add auto increase Sr. No. (1,2,3,4.....)
<%#Container.DataItemIndex+1 %>

//Binding Data Item
Text='<%#Eval("CustomerID")%>'

//Binding Multiple Data Items
Text='<%#Eval("Key")+"|"+Eval("Line_No") %>'

//Binding Data Item with Custom Text

Text='<%#"Customer ID is " + Eval("CustomerID")%>'

//Add Codebehind Class property inside the GridView
<%# CodeBehindProperty %>

//Adding HyperLinkField

<asp:HyperLinkField HeaderText="Customer ID" DataTextField="CustomerID" DataNavigateUrlFormatString="CustomerDetail.aspx?c=y&amp;id={0}&amp;name={1}" DataNavigateUrlFields="CustomerID,CustomerName" ControlStyle-CssClass="blulink">

 //Adding HyperLink Control in ItemTemplate
<asp:HyperLink ID="HyperLink1" runat="server"  navigateurl='<%# String.Format("~/GLEntryDetails.aspx?uid={0}&section={1}&des={2}&Field4=something", Eval("UserID"), Eval("Section"), Eval("Description")) %>' Text='<%#Eval("Click Here") %>'></asp:HyperLink>

//BoundField Data Format of Date

<asp:BoundField DataFormatString="{0:dd/MM/yyyy}" />

//Item Template Data Format of Date
<asp:ItemTemplate><asp:Label Text='<%# Bind("Expiry_Date","{0:dd-MM-yyyy}") %>'/></asp:ItemTemplate>

//BoundField Data Format of Currency
Method 1) DataFormatString="{0:#,###.00}"
Method 2) DataFormatString="{0:N2}"
Method 3) DataFormatString="{0:dd/MM/yyyy hh:mm:ss tt}"