1.264 Lecture 19 Web database: Forms and controls We continue using Web site Lecture18 in this lecture Next class: ASP.NET book, chapters 11-12. Exercises due after class 1 Forms • Web server and its pages are a communications channel between databases • We first create communications between a user and a database by using forms – More visible and intuitive, use the same principles – Based on XHTML pages and HTTP • Database-database communications will be covered next – Based on XML and HTTP, packaged in Web services – Machine-readable, can be validated by machines • Some human review is still used because there isn’t complete trust among trading partners, engineering collaborators, etc. – Machine-machine communications create SQL database queries to fill in ‘XML forms’ and send them to the database 2 How XHTML forms transmit data • Forms allow a series of controls to be placed on the page – Controls are text boxes, dropdowns, radio buttons, check boxes… – Each control has a name and a value • Form data is sent when user presses ‘Submit’ button. Options: – Data is sent to URL with HTTP POST command as string of form: • Name1=Value1&Name2=Value2&…NameN=ValueN • POST data is string sent after blank line after HTTP headers – Data is sent to URL with HTTP GET command, appended to end of GET string after a ?: • GET/Index.html?Name1=Value1&Name2=Value2& … – Data is sent to Web services • POST followed by an XML document • We cover XML later: it allows validation and business rules • Form’s ‘Submit’ button is associated with the URL of an application server method that will process the input data – Server programs have methods (function points) to extract the data from the POST or GET command and use it in the program • We counted Web pages and estimated function points earlier 3 Browser-server forms interaction Client Side • • • • • Step 1: Browser requests form without any parameters Step 2: Server fetches and returns input form Step 3: User fills out or edits input form and presses ‘submit’ button Step 4: Browser packages form into query string and sends to server Step 5: Program synthesizes a response document and returns it GET /App/Page.htm Server Side Web svr Web svr xxxxxx xxxxxx POST /App/Prog.htm name=Pat&state=MA MyProg MyProg Forms also support dynamic controls on an xhtml (aspx) page, such as .NET’s SqlDataSource, GridView, etc. In .NET, all pages that return dynamic results are .aspx pages and are forms 4 Example XHTML input form <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <form action="inputForm.aspx" method="post"> Last name: <input type="text" name="lName" /> First name: <input type="text" name="fName" /> <input type="submit" value="submit" /> </form> </body> </html> © Mozilla. All rights reserved. This content is excluded from our Creative Commons license. For more information, see http://ocw.mit.edu/help/faq-fair-use/. 5 Review: Set SQL Server database access • Create login for SQL Server in SSMS if you haven’t: – – – – – In Object Explorer, open Security-> Logins Right click, select ‘New login’ Select SQL Server authorization; enter name, password Select default database= MIT1264 Check all server roles, check user mapping for MIT1264 6 Review: Create Web site, database connection • In VSW, use Lecture 18 site from last class – Delete Default.aspx, Site.master. We’ll replace them. • Download Lecture18 zip file if you didn’t already – Unzip it in a temporary directory and then move its files to the Lecture18 Web site at C:\Inetpub\wwwroot\Lecture18 – MIT.master has common graphics for each page and a placeholder for active content – Images folder contains graphics used in MIT.master – Web.sitemap contains navigation structure of your site • Refresh the solution explorer after moving files into site • Tools-> Connect to Database – – – – Server: .\SQLEXPRESS or SQLEXPRESS Login name and password you set up earlier Database name: MIT1264 Test the connection • Look at database in Database Explorer in VWD 7 Review: Create XHTML form (.aspx page) • View->Toolbox – To make toolbox appear along left margin of page • File-> New File-> Web Form: Orders.aspx – Check master page and select MIT.master – Uncheck ‘code in separate file’ • In Design view, from the Toolbox – Drag a SqlDataSource control into the ContentPlaceHolder – Click the arrow at its top right, then on configure source • • • • Select connection you already created Select Orders table Check * to get all columns, ORDER BY Cust Test query and finish – Drag a GridView control on top of the SqlDataSource • • Choose data source Check ‘enable sorting’ and ‘enable paging’ – Add header 2 <h2> with “Orders”. Save the page • Use the browser symbol on the toolbar to test the page 8 Exercise 1: XHTML Customers page • Create a Web page to display the Customers table: Customers.aspx. Same steps as before. – Use MIT.master for its appearance – Enable sorting and paging • Create Default.aspx with new XHTML that uses MIT.master – Keep the name Default.aspx – Place short text in the ContentPlaceHolder on the page • Change links in MIT.master to point to your Orders, Customers pages, not Default • When done, test with the browser – Start at Default.aspx – Navigate to Orders and Customers and then back to Default – In browser, “View Source” to see what XHTML has been generated 9 Solution 1 10 Exercise 2: Display, edit and delete data • File -> New File-> Web Form: Customers2 • Drag SqlDataSource into ContentPlaceHolder – SELECT * FROM Customers ORDER BY Company – Click ‘Advanced’ and generate edit, update, delete SQL – Test and save • Drag GridView onto SqlDataSource – Set data source – Enable paging, sorting, edit, delete • Put a header <h2> at the top of the ContentPlaceHolder: “Customers” • Save and test: edit, delete – Can’t delete a customer if they have an order – Insert not present in GridView 11 Solution 2 12 Exercise 3: Display, edit, insert, delete data • File -> New File-> Web Form: SalesReps • Drag SqlDataSource into ContentPlaceHolder – SELECT * FROM SalesReps ORDER BY Name • Drag GridView onto SqlDataSource – Enable paging, sorting, selection • Drag a second SqlDataSource into ContentPlaceHolder, below the first one – SELECT * FROM SalesReps WHERE … – Click WHERE button: RepNbr, =, Control, GridView1, Add – Click Advanced button: Generate INSERT,UPDATE,DELETE • Drag FormView control onto 2nd SqlDataSource – Choose second SqlDataSource as data source • Add <h2>, save, and test in browser 13 Exercise 3, cont: Display, edit, insert, delete • GridView doesn’t update when you change data. To make it do so: – – – – In Design view, click on FormView Click Events button (lightning bolt) in Properties window Double-click ItemInserted event Add following code • GridView1.DataBind(); – Then double-click ItemDeleted event and add same code – And double-click ItemUpdated event and add same code • Save and test your page – Add Title at top of all the pages you created 14 Solution 3 15 Data transmittal across Web • These pages request a response from the server – Your Web browser sends an HTTP POST request to the Web server – URL is, e.g., localhost/Customers.aspx – .aspx page is a program that dynamically generates the response xhtml (or XML) page – In your browser: • Right click, select “View Source” on result page • It is an xhtml page; the logic on the .aspx page has been executed and the response returned to your browser • Note that we are dragging and dropping controls, without doing any programming – This will probably become the standard way to build business systems: it can be done by analysts, not IT – Specialized controls for supply chain, etc. 16 HTTP and XHTML • HTTP – Is only direct form of interaction between browser and server – Was an extremely perceptive extension of email, ftp protocols by Tim Berners-Lee to enable Web browsers – Request-response paradigm – Connection made for each request/response pair – Core Web protocol, very stable • XHTML – Page definition language, based on tags – High level page description, not specific formatting – Forms used to enter and submit data to Web server, and to invoke dynamic Web pages on Web server 17 MIT OpenCourseWare http://ocw.mit.edu 1.264J / ESD.264J Database, Internet, and Systems Integration Technologies Fall 2013 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.