In this story, you will learn the use of the latest feature offered by asp.net 4.5 to development community.
Strongly type binding is one of the new feature in Asp.net 4.5.
Normally we use late binding techniques in Asp.Net Data Controls like GridView and ListView. When we use the late binding, binding will be happened during the runtime. In this case we use “Eval(expression)” for achieving the runtime binding. In this case, data type will not be specified.So it will throw an exception when the expression is not evaluated properly.
In Asp.Net 4.5 Strongly Type Binding is introduced to bind the data to the display control with strong types. So if there is an exception occurs, it will evaluate and eliminate the error s.
In this article I am going to explain both earlier binding technique without strong type and Strongly type binding.
We need to do the following steps for demonstrating the Data Binding in Asp.net
- Create a new class (User defined Type)
- Create the Generic list type method for Binding the data
- Create Aspx Web page for display the Grid Control and Display the records.
First, I like to show the earlier binding Technic
Public class Part { Public int PartNum { get; set; } Public string PartName { get; set; } Public string PartType { get; set; } Public decimal Qty { get; set; } Public decimal Price { get; set; } }
Create a method for BindGrid which will return the generic list type Part.
Public IList<Part> BindGrid() { Return new List<Part> { new Part{PartNum=1,PartName="Part1",PartType="M",Qty=10.00M,Price=1.1M}, new Part{PartNum=2,PartName="Part2",PartType="M",Qty=10.00M,Price=1.1M}, new Part{PartNum=3,PartName="Part3",PartType="M",Qty=10.00M,Price=1.1M}, new Part{PartNum=4,PartName="Part4",PartType="M",Qty=10.00M,Price=1.1M}, }; }
We will useEval(expression) for binding the data in List View Control
<asp:ListView ID="ShowPart" runat="server"> <LayoutTemplate> <table id="h1" runat="server"> <tr id="hr1" runat="server"> <td id="hd1" runat="server"> PartNum </td> <td id="hd2" runat="server"> PartName </td> <td id="hd2" runat="server"> PartType </td> <td id="hd2" runat="server"> Qty </td> <td id="hd2" runat="server"> Price </td> </tr> <tr id="PartItem" runat="server"> </tr> </table> </LayoutTemplate> <ItemTemplate> <tr> <td> <asp:Label ID="Label1" runat="server" Text='<%# Eval("PartNum")%>'> </asp:Label> </td> <td> <asp:Label ID="Label2" runat="server" Text='<%# Eval("PartType")%>'> </asp:Label> </td> <td> <asp:Label ID="Label2" runat="server" Text='<%# Eval("Qty")%>'> </asp:Label> </td> <td> <asp:Label ID="Label2" runat="server" Text='<%# Eval("Price")%>'> </asp:Label> </td> </tr> </ItemTemplate> </asp:ListView> protected void Page_Load(object sender, EventArgs e) { ShowPart.DataSource = BindGrid(); ShowPart.DataBind(); }
In this section, I am going to explain how we can bind the above list view using Strongly Typed data. In Asp.Net 4.5 data controls, new binding property is introduced called ItemType. In this ItemType we can specify the Column Name. like <%#Item.ColumnName#%>.
<asp:ListView ID="ShowPart" runat="server" ItemType="Part"> <LayoutTemplate> <table id="h1" runat="server"> <tr id="hr1" runat="server"> <td id="hd1" runat="server"> PartNum </td> <td id="hd2" runat="server"> PartName </td> <td id="hd2" runat="server"> PartType </td> <td id="hd2" runat="server"> Qty </td> <td id="hd2" runat="server"> Price </td> </tr> <tr id="PartItem" runat="server"> </tr> </table> </LayoutTemplate> <ItemTemplate> <tr> <td> <asp:Label ID="Label1" runat="server" Text='<%# Item.PartNum%>'> </asp:Label> </td> <td> <asp:Label ID="Label2" runat="server" Text='<%# Item.PartType%>'> </asp:Label> </td> <td> <asp:Label ID="Label2" runat="server" Text='<%# Item.Qty%>'> </asp:Label> </td> <td> <asp:Label ID="Label2" runat="server" Text='<%# Item.Price%>'> </asp:Label> </td> </tr> </ItemTemplate> </asp:ListView>
In the above code I have used the Item Type. which is used to bind the data with respectivedata Type to the control. Here we have used Part as a custom data Type. For getting the values from the Part class We need to use the Keyword “Item”, Visual Studio intelligence will automatically show the property values like “Item.PartNum”. This helps us to bind the strongly typed data to the controls.
Authentication With Angular 2 App (Front-end) And ASP.NET Web API (Back-end)
In the same way, we can use the SelectMethod property, which is used to select the data from the data source.To fetch the data, we need to write the method called “Showpartdata” in Code behind and it is called in SelectMethod property.
<asp:ListView ID="ShowPart" runat="server" ItemType="Part"SelectMethod="ShowPartdata" > <LayoutTemplate> <table id="h1" runat="server"> <tr id="hr1" runat="server"> <td id="hd1" runat="server"> PartNum </td> <td id="hd2" runat="server"> PartName </td> <td id="hd2" runat="server"> PartType </td> <td id="hd2" runat="server"> Qty </td> <td id="hd2" runat="server"> Price </td> </tr> <tr id="PartItem" runat="server"> </tr> </table> </LayoutTemplate> <ItemTemplate> <tr> <td> <asp:Label ID="Label1" runat="server" Text='<%# Item.PartNum%>'> </asp:Label> </td> <td> <asp:Label ID="Label2" runat="server" Text='<%# Item.PartType%>'> </asp:Label> </td> <td> <asp:Label ID="Label2" runat="server" Text='<%# Item.Qty%>'> </asp:Label> </td> <td> <asp:Label ID="Label2" runat="server" Text='<%# Item.Price%>'> </asp:Label> </td> </tr> </ItemTemplate> </asp:ListView>
In this article, experts have explained the process of binding the List view control in both Strong typed data binding and conventional binding. For queries related to the subject, make comments below.
Conclusion:
In this article I have explained how we can bind the List view control in both Conventional binding and strongly typed data binding. In Strongly Typed binding we can directly binding property with respective type, so it will not trigger any type casting issue. This article is very helpful and easier understand for the reader. You can hire asp.net developers India who can provide you premium development services.
Hope this article is useful in Understanding the concept of typed bindings.