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&id={0}&name={1}" DataNavigateUrlFields="CustomerID,CustomerName" ControlStyle-CssClass="blulink">
//Adding HyperLink Control in ItemTemplate
//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}"
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&id={0}&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}§ion={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}"