FormView DataBound Event


Using the DataBound Event of the FormView control, we can customize the format of the data displayed in the FormView control. In this example, we will demonstrate how to format the data by choosing the example of displaying closing stock quantity in an italic font when the closing stock quantity is less than or equal to 0.

Steps:

Place the FormView control and set its ID property to FormView1. Configure the SqlDataSource control and bind the FormView to the SqlDataSource control. Create an ItemTemplate for the FormView and include the ItemID, ItemName,ItemType and ClStk fields, each in their corresponding Label controls.

Observe that the ItemTemplate contains four Label controls, ItemID, ItemName, ItemType and ClStk. In the statement <asp:Label ID="lblCode" Text='<%#Eval("ItemID")%>' runat="server" />, the code Text='<%#Eval("ItemID")%>' is referred to as the Databinding syntax for the field ItemID. The statement Text='<%#Eval("ItemID")%>' assigns the value of ItemID field to the Label control's Text property.

In the ItemTemplate, instead of using label controls, we can also use Static HTML text as shown below.
<%--<b>Item ID:</b>    <%#Eval("ItemID")%>		    <br /><br />
<b>Item Name:</b>      <%#Eval("ItemName")%>	    <br /><br />
<b>Item Type:</b>      <%#Eval("ItemType")%>	    <br /><br />
<b>Closing Stock:</b>  <%#Eval("ClStk")%>	        <br /><br />--%>


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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<style type="text/css">
 .changefont
{
    font-weight: bold;
    font-style: italic;
}
</style>
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:FormView ID="FormView1"  DataSourceID="MyDataSource"  
      DataKeyNames="ItemID"  AllowPaging="true" 
      OnDataBound="ItemsFormView_DataBound" runat="server">
       <ItemTemplate>
       <h3>Item Details</h3>
       <asp:Label ID="lblCode" Text='<%#Eval("ItemID")%>'  	    runat="server" /><br />
       <asp:Label ID="lblName" Text='<%#Eval("ItemName")%>'	    runat="server" /><br />
       <asp:Label ID="lblDescription" Text='<%#Eval("ItemType")%>' runat="server" /><br />
       <asp:Label ID="lblStock" Text='<%#Eval("ClStk")%>'  	    runat="server" /><br />

<%--<b>Item ID:</b>    <%#Eval("ItemID")%>		<br /><br />
<b>Item Name:</b>      <%#Eval("ItemName")%>	    <br /><br />
<b>Item Type:</b>      <%#Eval("ItemType")%>	    <br /><br />
<b>Closing Stock:</b>  <%#Eval("ClStk")%>	        <br /><br />--%>



<asp:LinkButton     id="lnkClose"   Text="Close"  Runat="server"/>      
<asp:LinkButton     id="lnkEdit"    Text="Edit"   
CommandName="Edit" Runat="server" />	 | 
<asp:LinkButton	    id="lnkNew"     Text="New Item"   
CommandName="New"  Runat="server" />
</ItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="MyDataSource"  
ConnectionString="<%$Connectionstrings:ERPConnectionString%>"
SelectCommand="SELECT ItemID,ItemName,ItemType,ClStk FROM ItemTable" 
runat="server"        />
</div>
</form>
</body>
</html>


To customize the format of data displayed by the FormView control, we access the value of the data in the DataBound Event Handler, by creating an event handler for the FormView's DataBound event. In the DataBound Event Handler, we access the label control - clstk and set the style property - text to italic.

Using FindControl() method in DataBound Event of the FormView control

To access a label control in an Itemtemplate, we use the FindControl("controlID") method as shown below. Label lbl = (Label)FormView1.FindControl("lblStock"); In the below code, the method FindControl returns a generic Control. To access the properties of the control, we need to cast to the Label control and modify Label control's style properties using CSS class property.

protected void ItemsFormView_DataBound(object sender, EventArgs e)
    {
       DataRowView dataRow = ((DataRowView)FormView1.DataItem);
        if (Convert.ToInt16(dataRow["ClStk"]) <= 0)
        {
            Label lbl = (Label)FormView1.FindControl("lblStock");
           	lbl.CssClass = "changefont";
     }

}


formview databound event

When this code is executed, the FormView control displays items whose closing stock quantity is less than or equal to 0, in an italic font. Observe that the FormView control does not contain any BoundFields and hence we cannot use the Rows collection.

Note that the below statement changes the fonts of all the fields of the formView control because the FormView control returns all fields in a single row.

FormView1.Row.Cells[0].CssClass = "changefont";



cover image of azure cloud book

Develop Azure Applications

Azure Cloud is gaining popularity and is competing with Amazon Elastic Cloud and Google Cloud for a spot in the billion dollar Cloud computing space.

With this book learn how to use - Table (an Azure Table is different from a SQL Server Table), Queue, Blob storage services, use your local machine to create an Application and a Service, how Azure splits a Table to achieve Load Balancing, Scalability based on the Partition Key, AppFabric Service Bus, Access Control Service, role of Fabric Controller, features of Azure SQL Database and Content Delivery Network.

Many have mastered Cloud Programming and are enjoying the benefits. Why not you?

View Highlights » View Contents »
cover image of foundation database programming book

Create your Own Accounting Software

A foundation book to Master Accounting Software Development, VB.Net, C# and OOPs programming. Detailed explanation of the Accounting domain for programmers is included. SQL and ADO.Net is also covered in detail.

This book gives you a strong foundation in Application Development.

A thorough understanding of the contents will enable you to grasp the topics covered in the accompanying books quite easily. This is because, the accounting domain is dealt with great detail in this book.

The ideal book to get started with application development in the .Net world.

View Highlights » View Contents »

cover image of asp.net book

Create your Own WEB ERP Software using ASP.Net

This book opens you to the Web. Using ASP.Net, C# and SQL Server as the tools, you will learn to build a Multi Tier Web Application as recommended by Microsoft. You will learn implementing inline GridView control, Transaction Management for a layered Web Application, build Data Access component and a Business Layer component.

Opens you to a world of opportunities. You will be able to develop a Web ERP application including all the five modules and learn how to use the TreeView control and GridView control to implement transactions such as Purchase Invoice, Sales Order and Sales Invoice.

View Highlights » View Contents »
cover image of entity framework book

ASP.Net MVC 5 Application Development Using Entity Framework 6 and VS 2015

Entity frameworks is the latest buzz in .Net programming and is the data access technology for Microsoft OS based hand held devices and web applications. Learn to integrate EF into an ASP.Net Application and MVC application. Create, explore and query the Entity Data Model. Learn how to use ObjectDataSource control and GridView control in an ASP.Net Application.

Also, learn to build Three-Tier ASP.Net application, create a business-class, implement methods in the class to perform CRUD operations and bind a GridView to the ObjectDataSource control. Learn how to handle concurrency and managing Transactions.

View Contents »