Blog: Posts from March, 2012

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
Posts from March, 2012
Saturday, March 24, 2012PrintSubscribe
Custom Form Template: Defining Template Placeholder

Let’s customize the template that was generated.

Switch back to Visual Studio, and refresh the solution. Navigate to and open ~/Controls/OrderFormTemplate.ascx. On the menu bar, select Edit / Advanced / Format Document to reformat the automatically generated markup of the control. You will see that there is just an UpdatePanel element present.

Default UpdatePanel in 'OrderFormTemplate'

Delete the UpdatePanel element and replace it with the sample below.

C#:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="OrderFormTemplate.ascx.cs" 
    Inherits="Controls_OrderFormTemplate" %>
<div>
    <div id="Orders_editForm1">
        <div class="FieldPlaceholder">
            {CustomerID}
        </div>
        <div class="FieldPlaceholder">
            {EmployeeID}
        </div>
        <div class="FieldPlaceholder">
            {ShipVia}
        </div>
        <div class="FieldPlaceholder">
            {OrderDate}
        </div>
        <div class="FieldPlaceholder">
            {Freight}
        </div>
        <div class="FieldPlaceholder">
            {Total}
        </div>
    </div>
</div>

Visual Basic:

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="OrderFormTemplate.ascx.vb" 
    Inherits="Controls_OrderFormTemplate" %>
<div>
    <div id="Orders_editForm1">
        <div class="FieldPlaceholder">
            {CustomerID}
        </div>
        <div class="FieldPlaceholder">
            {EmployeeID}
        </div>
        <div class="FieldPlaceholder">
            {ShipVia}
        </div>
        <div class="FieldPlaceholder">
            {OrderDate}
        </div>
        <div class="FieldPlaceholder">
            {Freight}
        </div>
        <div class="FieldPlaceholder">
            {Total}
        </div>
    </div>
</div>

The top level div element has another div element with id “Orders_editForm1”. This element instructs the client-side library of the application to present the contents of editForm1, rendered by Orders data controller, using the template. There are several more div elements within Order_editForm1, marked with the CSS class “FieldPlaceholder”. The field names, surrounded by curly brackets, have been placed inside as placeholders.

If you save the file, and refresh the webpage of the application, then you will see the field names in brackets from the template appear above the order form view.

Order Form with custom template

To hide the field names in brackets, change the main div of the user control as follows:

<div style="display:none;">
    <div id="Orders_editForm1">
        <div class="FieldPlaceholder">
            {CustomerID}
        </div>
        <div class="FieldPlaceholder">
            {EmployeeID}
        </div>
        <div class="FieldPlaceholder">
            {ShipVia}
        </div>
        <div class="FieldPlaceholder">
            {OrderDate}
        </div>
        <div class="FieldPlaceholder">
            {Freight}
        </div>
        <div class="FieldPlaceholder">
            {Total}
        </div>
    </div>
</div>
You can see that no field names in brackets will appear, and that only the fields specified in the template are presented in the detail view listed from left to right.

Order Form with hidden custom template

Let’s make a more sophisticated design for the template, which includes the rest of the fields. In order
to build a completely custom template and retain the data functionality of the client side library, you
need to get rid of the labels. Switch back to Visual Studio, and add the class “DataOnly” to each field, as shown in the example:

<div style="display:none;">
    <div id="Orders_editForm1">
        <div class="FieldPlaceholder DataOnly">
            {CustomerID}
        </div>
        <div class="FieldPlaceholder DataOnly">
            {EmployeeID}
        </div>
        <div class="FieldPlaceholder DataOnly">
            {ShipVia}
        </div>
        <div class="FieldPlaceholder DataOnly">
            {OrderDate}
        </div>
        <div class="FieldPlaceholder DataOnly">
            {Freight}
        </div>
        <div class="FieldPlaceholder DataOnly">
            {Total}
        </div>
    </div>
</div>

When you save and refresh the application, you can see that labels are no longer present, but the
formatting is terribly off.

Order Form with custom template DataOnly

Don’t worry. This gives you a perfect foundation to position the fields as you see fit.

Friday, March 23, 2012PrintSubscribe
In-Place Creation of Lookup Items

Lookup fields with the style “Lookup” render a button that allows creating new lookup items in-place.

The screen shot shows a “New Supplier” button next to the “Supplier Company Name” field on a form view.

Button 'New Lookup Item' rendered next to a lookup field allows in-place creation of lookup items

If user clicks on the button then “New Supplier” modal form is rendered.

'New ...' modal form displayed in response to in-place lookup creation button click

If the user enters the values and clicks OK then the new data record is created. The newly created record will be displayed as the lookup value.

Lookup item is automatically selected after in-place creation

The “New Lookup Item” button is displayed only if the current user is allowed to create new objects of this lookup type. If there is at least one action with command name New that is available to the users as defined by the “Suppliers” data controller, then the button is rendered.

Action 'New' displayed in Project Explorer

You can assign a value to the Roles property of all “New” actions  defined by the data controller, or implement data controller virtualization to prevent certain types of users from being able to create new lookup items in-place.

You can also specify a custom form that will be used to create new lookup items or disable this feature permanently if you change or clear the New Data View property under the Lookup section of the field.

Property 'New Data View' displayed in the 'Lookup' section of the field properties

The following screen shot shows the lookup field rendered without the “New Lookup Item” button if you clear the New Data View property of Products / Fields / SupplierID field.

Lookup field without 'New Lookup Item' button

Friday, March 23, 2012PrintSubscribe
Search by First Letter in Lookup Windows

Search by First Letter can be enabled in the lookup windows.

The following screen shot shows lookup properties of the field Products / Fields / Suppliers. Toggle the “Search by First Letter” check box to enable the feature.

Property 'Search by First Letter' in the 'Lookup' section of a field

This is how the list of suppliers is rendered when a lookup window is displayed.

Feature 'Search by First Letter' enabled in a lookup window

Users can remove the selected “first letter” filter by clicking on the filter element in the filter details area.

Filter element can be removed from the list of active filters via a single mouse-click