Part - 7
Using Fields with
GridView Control
As to solve some
of problems like enabling the GridView to render its columns automatically
is that we give up any control over column formatting. For example, the
BoxOfficeTotals column is displayed as a decimal amount without any currency
formatting. The EnTRyDate column always displays in short-date and long-time
format. The solution to such problems is to specify explicitly the fields
that a GridView displays. The GridView control supports the following types
of fields:
-
BoundField
Enables us to display the value of a data item as text.
-
CheckBoxField
Enables us to display the value of a data item as a check box.
-
CommandField
Enables us to display links for editing, deleting, and selecting rows.
-
ButtonField
Enables us to display the value of a data item as a button (image
button, link button, or push button).
-
HyperLinkField
Enables us to display the value of a data item as a link.
-
ImageField
Enables us to display the value of a data item as an image.
-
TemplateField
Enables us to customize the appearance of a data item.
Using TemplateField
Introduction & Demonstration
A TemplateField enables we to add any content to a GridView column that we
need. A TemplateField can contain HTML, DataBinding expressions, or ASP.NET
controls.
TemplateFields are particularly useful when we are using a GridView to edit
database records. You can use a TemplateField to customize the user
interface and add validation to the fields being edited.
Assume an example, we want a required field validation or list box when we
edit any row. These all features can be enabled using TemplateField. Let's
take a look, here we are using required field validation.
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<style type="text/css">
</style>
</head>
<body>
<form id="form1" runat="server" >
<div>
<br /><br /><br />
<asp:GridView
ID="GridView1"
runat="server"
DataSourceID="SqlDataSource1"
PageSize="2"
AutoGenerateEditButton="true"
DataKeyNames="ID"
AllowPaging="true" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<%# Eval("ID")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
id="txtID"
Text='<%# Bind("ID") %>'
Runat="server" />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<%# Eval("Name")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
id="txtName"
Text='<%# Bind("Name") %>'
Runat="server" />
<asp:RequiredFieldValidator
id="valName"
ControlToValidate="txtName"
Text="(required)"
Runat="server"
BackColor="Blue"/>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Address">
<ItemTemplate>
<%# Eval("Address")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
id="txtAddress"
Text='<%# Bind("Address") %>'
Runat="server" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString1 %>"
SelectCommand="SELECT
* FROM MyTB"
UpdateCommand="UPDATE
MyTB SET Name=@Name, Address=@Address WHERE ID=@ID">
</asp:SqlDataSource>
<br />
</div>
</form>
</body>
</html>
Note: Continue
in Next Part.
HAVE A GREAT CODING!