I want to show Components in a tabs , so first of all create few components. In this project we have three components, First View Component public class AllViewComponent : ViewComponent { private readonly UserManager<ApplicationUser> _userManager; public AllViewComponent(UserManager<ApplicationUser> userManager) { _userManager = userManager; } public async Task<IViewComponentResult> InvokeAsync() { List<StudentViewModel> allUsers = new List<StudentViewModel>(); var items = await _userManager.Users.ToListAsync(); foreach (var item in items) { allUsers.Add(new StudentViewModel {Id=item.Id, EnrollmentNo = item.EnrollmentNo, FatherName = item.FatherName, Name = item.Name, Age = item.Age, Birthdate = item.Birthdate, Address = item.Address, Gender = item.Gender, Email = item.Email }); }
News From Computer Programming: In ASP.NET you can't change the data without post-back, if you want to change data without post back, you can use AJAX technology. In previous article we have already learned more about AJAX like, How to install AJAX control Toolkit to the Toolbox or many more. Today we will learn How to update your GridView data in every seconds, for this you can use Timer control.
The Timer control is used for updating contents of the UpdatePanel control at predefined intervals. Single Timer control can refresh more than one UpdatePanel control simultaneously. The Timer control has an Interval property for defining the timer limit after which the content gets refreshed. When this interval limit gets over, the Tick event is raised . You can handle this event for updating the content values defined in the UpdatePanel control. The Timer control can be used either inside the UpdatePanel control or outside the UpdatePanel control. Now, let's try to understand the UpdatePanel control in both ways.
1. Set the interval property of the Timer control as 1000 that equal to 1 second as it takes value in milliseconds.
2.Now, double-click the Timer control in design mode. It will generate event handler function in the code-behind file to handle the Tick event.
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" Interval ="1000" OnTick ="Timer1_Tick"></asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID ="Timer1" EventName ="Tick" />
</Triggers>
</asp:UpdatePanel>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval ="1000" OnTick ="Timer1_Tick"></asp:Timer>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True" SortExpression="Id" />
<asp:BoundField DataField="Name " HeaderText="Name " SortExpression="Name " />
<asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Table]"></asp:SqlDataSource>
</ContentTemplate>
</asp:UpdatePanel>
<div>
</div>
</form>
</body>
</html>
The Timer control is used for updating contents of the UpdatePanel control at predefined intervals. Single Timer control can refresh more than one UpdatePanel control simultaneously. The Timer control has an Interval property for defining the timer limit after which the content gets refreshed. When this interval limit gets over, the Tick event is raised . You can handle this event for updating the content values defined in the UpdatePanel control. The Timer control can be used either inside the UpdatePanel control or outside the UpdatePanel control. Now, let's try to understand the UpdatePanel control in both ways.
Timer control Inside the UpdatePanel Control
To use the Timer control inside the UpdatePanel control, drag and drop from the Toolbox as a sub-element of the <ContentTemplate>tag and follow the following steps:1. Set the interval property of the Timer control as 1000 that equal to 1 second as it takes value in milliseconds.
2.Now, double-click the Timer control in design mode. It will generate event handler function in the code-behind file to handle the Tick event.
Timer Control Outside the UpdatePanel Control
You can use the Timer control outside the UpdatePanel control. This approach is appropriate when there are more than one UpatePanel control in the same Web page and you need to use same Timer control for all or some of them. To do so, you need to perform some changes in your application. However, these changes will not affect the output of your application. First, drag-and-drop the Timer control from the toolbox. Drop it after the ScriptManager control and before the UpdatePanel control; and configure its properties in the following way:
The ScriptManager Tag:
</asp:ScriptManager>
The Timer control outside the UpdatePanel control and after the ScriptManager Tag:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" Interval ="1000" OnTick ="Timer1_Tick"></asp:Timer>
Configure the UpdatePanel Control's <Triggers> Element for referencing the timer control in the following way:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID ="Timer1" EventName ="Tick" />
</Triggers>
</asp:UpdatePanel>
Lets take a simple example to update GridView Data:
Step-1 : Add ScriptManager and UpdatePanel control after Form tag
Step-2 : Add Content template inside UpdatePanel Control.
Step-3 : Add Timer control inside ContentTemplate with Tick event and Interval property.
Step-4 : Also add GridView control inside the Content Template.
Step-5 : Bind GridView Control in Tick event.
Complete Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval ="1000" OnTick ="Timer1_Tick"></asp:Timer>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True" SortExpression="Id" />
<asp:BoundField DataField="Name " HeaderText="Name " SortExpression="Name " />
<asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Table]"></asp:SqlDataSource>
</ContentTemplate>
</asp:UpdatePanel>
<div>
</div>
</form>
</body>
</html>
Code File
protected void Timer1_Tick(object sender, EventArgs e)
{
GridView1.DataBind();
}
{
GridView1.DataBind();
}
Output
in above snap, if you change data in database table from server explorer, output affected on browser.
Comments
Post a Comment