AJAX

Labels
AJAX(112) App Studio(7) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(177) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(183) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
AJAX
Tuesday, June 29, 2010PrintSubscribe
Refreshing Master When Detail Changed

Q. Is there an easy way to force the Master View at the top of a page to automatically refresh (from the server) when an item is edited in the child/detail view at the bottom of the page ?

A. The example below is referring to the Northwind sample application.

Suppose you want to refresh a list of Suppliers when the detail Products view has been changed on page ~/Pages/Suppliers.aspx.

Here is the Suppliers page:

image

If the products shipped by the selected supplier have changed (inserted, updated, or deleted) then you want the list of suppliers to refresh its content.

Open the project in Designer and assign ProductsBusinessRules handler to Products data controller. If you generate the project then business rules class empty shall ~\App_Code\Rules\ProductsBusinessRules.cs file will be created for you. If you are using VB as a programming language of the generated application then the business rules class will be coded in VB.NET.

Here is the sample business rules class written in C#, which will do the trick of refresh the master:

using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using MyCompany.Data;

namespace MyCompany.Rules
{
    public partial class ProductsBusinessRules : MyCompany.Data.BusinessRules
    {
        [ControllerAction("Products", "Update", ActionPhase.After)]
        [ControllerAction("Products", "Insert", ActionPhase.After)]
        [ControllerAction("Products", "Delete", ActionPhase.After)]
        public void DoRefreshMaster(string companyName, int supplierID)
        {
            if (Result.Errors.Count == 0)
                Result.ExecuteOnClient(
                    "this.set_lastCommandName(null);" + // the action state machine is reset
                    "this.goToView('grid1');" + // show 'grid1'
                    "var dv=Web.DataView.find('view1Extender');" + // find specific master data view
                    "if(dv)dv.refresh();"); // if the view is found then ask it to refresh
        }
    }
}

Note that parameters in DoRefreshMaster are not playing any role here. You could use the field values to perform selective operations in the client when needed.

The view we are looking to refresh is view1Extender. This extender is available on page ~/App_Code/Pages/Suppliers.aspx.

Here is the page markup as created by code generator:

<%@ Page Language="C#" MasterPageFile="~/Main.master" AutoEventWireup="true" CodeFile="Suppliers.aspx.cs"
    Inherits="Pages_Suppliers" Title="Suppliers" %>

<asp:Content ID="Content1" ContentPlaceHolderID="PageHeaderContentPlaceHolder" runat="Server">
    Suppliers</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="PageContentPlaceHolder" runat="Server">
    <div factory:flow="NewRow" xmlns:factory="urn:codeontime:app-factory">
        <div id="view1" runat="server">
        </div>
        <aquarium:DataViewExtender ID="view1Extender" runat="server" TargetControlID="view1"
            Controller="Suppliers" View="grid1" ShowInSummary="True" />
    </div>
    <div factory:flow="NewRow" style="padding-top: 8px" xmlns:factory="urn:codeontime:app-factory">
        <div factory:activator="Tab|Products">
            <div id="view2" runat="server">
            </div>
            <aquarium:DataViewExtender ID="view2Extender" runat="server" TargetControlID="view2"
                Controller="Products" View="grid1" FilterSource="view1Extender" FilterFields="SupplierID"
                PageSize="5" AutoHide="Container" />
        </div>
    </div>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="SideBarPlaceHolder" runat="Server">
    <div class="TaskBox">
        <div class="Inner">
            <div class="Header">
                About</div>
            <div class="Value">
                This page allows suppliers management.</div>
        </div>
    </div>
</asp:Content>
Wednesday, June 2, 2010PrintSubscribe
Three Level Master-Detail

Learn to create multi-level master-detail pages in ASP.NET+AJAX web applications created with Code OnTime Generator and Web Site Factory. In this example we will create a 3-level master-detail page layout that links customers, orders, and order details.

Three Level Master-Detail in ASP.NET/AJAX Web Applications

Watch this video tutorial on our Youtube channel at http://www.youtube.com/watch?v=9b3TKM0nFAM

Wednesday, May 26, 2010PrintSubscribe
Choosing Page Data Layout

Web Site Factory web applications offer several page layouts. Each layout offers its own method of presenting data on a single page.  The most popular master-detail  data layouts of pages are described below.

Tabbed layout

View live demo of tabbed master-detail layout at http://dev.codeontime.com/demo/websitefactory3/pages/customers.aspx.

Detail tabs show up only when you select a master record. Tabs disappear when a new record is selected or an existing selected record is deleted. The most compact layout. The lowest impact on the database.

 image

Classic layout

View live demo of classic master-detail layout at http://dev.codeontime.com/demo/websitefactory6/pages/customers.aspx.

Detail tabs will show at the bottom of the screen when you select a master record. This type of layout is probably familiar to most end users. Selection of a master records causes at least one detail query to execute.

image

Stacked Layout

View live demo of stacked layout at http://dev.codeontime.com/demo/websitefactory5/pages/customers.aspx.

Detail data views will show at the bottom of the screen when you select a master record. All detail data views are visible simultaneously. We have improved the detail query execution to better detect master record selection, which improves overall performance of pages with master-detail layout. Selection of a master record will cause all detail views to refresh. Detail views will disappear if you start creating a new master record or loose the current master record selection.

image