We will
know now how to bind Gridview from database and if we want to generate custom
column in Gridview then we can set using Eval in Gridview and for that we have
to set autogeneratedcolumn to False in Gridview. We can get data from DataTable
and bind in Gridview from database. Here we will check if we want to change
some value when we got data from database it could be string or numeric then we
have to check if it will be like this then we have to check if condition then
that value will be display on the Gridview. We can do it in Gridview Eval. So
let’s start how to achieve this functionality.
Step 1: Create table in database.
CREATE TABLE [dbo].[Status](
[StatusId] [int] IDENTITY(1,1) NOT NULL,
[StatusName] [varchar](50) NOT NULL,
[StatusCode] [int] NOT NULL,
CONSTRAINT
[PK_Status] PRIMARY KEY
CLUSTERED
(
[StatusId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS
= ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Step 2: Design your Webpage like below.
<div>
<asp:GridView ID="GridView1"
runat="server"
AutoGenerateColumns="False"
BackColor="White"
BorderColor="#CCCCCC"
BorderStyle="None"
BorderWidth="1px"
CellPadding="4"
ForeColor="Black"
GridLines="Horizontal">
<Columns>
<asp:BoundField DataField="StatusId"
HeaderText="Status
Id" ItemStyle-Width="90">
<ItemStyle Width="90px"></ItemStyle></asp:BoundField>
<asp:BoundField DataField="StatusName"
HeaderText="Error
Name" ItemStyle-Width="150">
<ItemStyle Width="150px"></ItemStyle>
</asp:BoundField>
<asp:TemplateField HeaderText="Status"
ItemStyle-Width="100">
<ItemTemplate>
<asp:Label ID="Label1" Text='<%# Eval("StatusCode").ToString() ==
"0" ? "Error" : "No Error" %>' runat="server" />
</ItemTemplate>
<ItemStyle Width="100px"></ItemStyle>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99"
ForeColor="Black"
/>
<HeaderStyle BackColor="#333333"
Font-Bold="True"
ForeColor="White"
/>
<PagerStyle BackColor="White"
ForeColor="Black"
HorizontalAlign="Right"
/>
<SelectedRowStyle BackColor="#CC3333"
Font-Bold="True"
ForeColor="White"
/>
<SortedAscendingCellStyle BackColor="#F7F7F7"
/>
<SortedAscendingHeaderStyle BackColor="#4B4B4B"
/>
<SortedDescendingCellStyle BackColor="#E5E5E5"
/>
<SortedDescendingHeaderStyle BackColor="#242121"
/>
</asp:GridView>
<br />
</div>
Here you can see how I passed condition in Gridview Eval for
checking data and display other data in Gridview. If you want to put your
condition then you can set your own condition based on your requirement.
Step 3: Now go to Code behind Bind Gridview
from database. As we know how to bind it from database using connection string
and pass query for what we want from database and store in DataTable.
if (!this.IsPostBack)
{
using (SqlConnection con = new
SqlConnection(CS))
{
SqlCommand
cmd = new SqlCommand("Select * from Status", con);
SqlDataAdapter
da = new SqlDataAdapter(cmd);
DataTable
dt = new DataTable();
da.Fill(dt);
if
(dt.Rows.Count > 0)
{
GridView1.DataSource =
dt;
GridView1.DataBind();
GridView2.DataSource = dt;
GridView2.DataBind();
}
}
}
Step 4: Run Application and see output.
Thanks for comments.....