GridView with Template and backend code : TemplateField « Data Binding « ASP.Net






GridView with Template and backend code


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="GridViewTemplates2" %>

<!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 runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:SqlDataSource ID="sourceProducts" 
                           runat="server" 
                           ConnectionString="<%$ ConnectionStrings:Northwind %>"
                           ProviderName="System.Data.SqlClient" 
                           SelectCommand="SELECT ProductID, ProductName, UnitPrice, UnitsInStock FROM Products">
        </asp:SqlDataSource>
        <asp:GridView ID="GridView1" 
                      runat="server" 
                      AutoGenerateColumns="False" 
                      CellPadding="4"
                      DataKeyNames="ProductID" 
                      DataSourceID="sourceProducts" 
                      Font-Names="Verdana" 
                      Font-Size="Small" 
                      ForeColor="#333333" 
                      GridLines="None" 
                      AllowPaging="True" 
                      OnRowCommand="GridView1_RowCommand">
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:TemplateField HeaderText="Status">
                <ItemTemplate>
                    <asp:ImageButton ID="ImageButton1" runat="server" 
                                     ImageUrl='<%# GetStatusPicture(Container.DataItem) %>'
                                     CommandName="StatusClick"
                                     CommandArgument='<%# Eval("ProductID") %>'
                      /></ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="ProductID" 
                                HeaderText="ID" 
                                InsertVisible="False" 
                                ReadOnly="True"
                                SortExpression="ProductID" />
                <asp:BoundField DataField="ProductName" 
                                HeaderText="Product" 
                                SortExpression="ProductName" />
                <asp:BoundField DataField="UnitPrice" 
                                DataFormatString="{0:C}" 
                                HeaderText="Price"
                                SortExpression="UnitPrice" />
                <asp:BoundField DataField="UnitsInStock" 
                                HeaderText="UnitsInStock" 
                                SortExpression="Units In Stock" />
            </Columns>
        </asp:GridView>
        <br />
        <asp:Label ID="lblInfo" runat="server" Font-Names="Verdana" Font-Size="Small"></asp:Label>
    
    </div>
    </form>
</body>
</html>

File: Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class GridViewTemplates2 : System.Web.UI.Page
{
  protected string GetStatusPicture(object dataItem)
  {
    int units = Int32.Parse(DataBinder.Eval(dataItem, "UnitsInStock").ToString());
    if (units == 0)
    {
      return "0.gif";
    }
    else if (units > 50)
    {
      return "50.gif";
    }
    else
    {
      return "blank.gif";
    }
  }
  protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
  {
    if (e.CommandName == "StatusClick")
      lblInfo.Text = "You clicked product #" + e.CommandArgument;
  }


}

File: Web.config

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <appSettings/>
      <connectionStrings>
        <add name="Northwind" connectionString="Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI"/>
      </connectionStrings>
</configuration>

 








Related examples in the same category

1.Editing Data using Templated Columns
2.Displaying Column Summaries
3.Displaying Nested Master/Details Forms
4.Master-Detail GridView in Single Page
5.Using Templated Columns with GridView