213 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			213 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
								 | 
							
								<!DOCTYPE html>
							 | 
						|||
| 
								 | 
							
								<html>
							 | 
						|||
| 
								 | 
							
								<head>
							 | 
						|||
| 
								 | 
							
								    <meta http-equiv="X-UA-Compatible" content="IE=edge">
							 | 
						|||
| 
								 | 
							
								    <title>jsGrid - Data Manipulation</title>
							 | 
						|||
| 
								 | 
							
								    <link rel="stylesheet" type="text/css" href="demos.css" />
							 | 
						|||
| 
								 | 
							
								    <link href='http://fonts.googleapis.com/css?family=Open+Sans:300,600,400' rel='stylesheet' type='text/css'>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <link rel="stylesheet" type="text/css" href="../css/jsgrid.css" />
							 | 
						|||
| 
								 | 
							
								    <link rel="stylesheet" type="text/css" href="../css/theme.css" />
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.2/themes/cupertino/jquery-ui.css">
							 | 
						|||
| 
								 | 
							
								    <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <script src="db.js"></script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <script src="../src/jsgrid.core.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="../src/jsgrid.load-indicator.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="../src/jsgrid.load-strategies.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="../src/jsgrid.sort-strategies.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="../src/jsgrid.field.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="../src/fields/jsgrid.field.text.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="../src/fields/jsgrid.field.number.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="../src/fields/jsgrid.field.select.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="../src/fields/jsgrid.field.checkbox.js"></script>
							 | 
						|||
| 
								 | 
							
								    <script src="../src/fields/jsgrid.field.control.js"></script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <style>
							 | 
						|||
| 
								 | 
							
								        .ui-widget *, .ui-widget input, .ui-widget select, .ui-widget button {
							 | 
						|||
| 
								 | 
							
								            font-family: 'Helvetica Neue Light', 'Open Sans', Helvetica;
							 | 
						|||
| 
								 | 
							
								            font-size: 14px;
							 | 
						|||
| 
								 | 
							
								            font-weight: 300 !important;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        .details-form-field input,
							 | 
						|||
| 
								 | 
							
								        .details-form-field select {
							 | 
						|||
| 
								 | 
							
								            width: 250px;
							 | 
						|||
| 
								 | 
							
								            float: right;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        .details-form-field {
							 | 
						|||
| 
								 | 
							
								            margin: 30px 0;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        .details-form-field:first-child {
							 | 
						|||
| 
								 | 
							
								            margin-top: 10px;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        .details-form-field:last-child {
							 | 
						|||
| 
								 | 
							
								            margin-bottom: 10px;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        .details-form-field button {
							 | 
						|||
| 
								 | 
							
								            display: block;
							 | 
						|||
| 
								 | 
							
								            width: 100px;
							 | 
						|||
| 
								 | 
							
								            margin: 0 auto;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        input.error, select.error {
							 | 
						|||
| 
								 | 
							
								            border: 1px solid #ff9999;
							 | 
						|||
| 
								 | 
							
								            background: #ffeeee;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        label.error {
							 | 
						|||
| 
								 | 
							
								            float: right;
							 | 
						|||
| 
								 | 
							
								            margin-left: 100px;
							 | 
						|||
| 
								 | 
							
								            font-size: .8em;
							 | 
						|||
| 
								 | 
							
								            color: #ff6666;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    </style>
							 | 
						|||
| 
								 | 
							
								</head>
							 | 
						|||
| 
								 | 
							
								<body>
							 | 
						|||
| 
								 | 
							
								    <h1>Data Manipulation</h1>
							 | 
						|||
| 
								 | 
							
								    <div id="jsGrid"></div>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <div id="detailsDialog">
							 | 
						|||
| 
								 | 
							
								        <form id="detailsForm">
							 | 
						|||
| 
								 | 
							
								            <div class="details-form-field">
							 | 
						|||
| 
								 | 
							
								                <label for="name">Name:</label>
							 | 
						|||
| 
								 | 
							
								                <input id="name" name="name" type="text" />
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								            <div class="details-form-field">
							 | 
						|||
| 
								 | 
							
								                <label for="age">Age:</label>
							 | 
						|||
| 
								 | 
							
								                <input id="age" name="age" type="number" />
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								            <div class="details-form-field">
							 | 
						|||
| 
								 | 
							
								                <label for="address">Address:</label>
							 | 
						|||
| 
								 | 
							
								                <input id="address" name="address" type="text" />
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								            <div class="details-form-field">
							 | 
						|||
| 
								 | 
							
								                <label for="country">Country:</label>
							 | 
						|||
| 
								 | 
							
								                <select id="country" name="country">
							 | 
						|||
| 
								 | 
							
								                    <option value="">(Select)</option>
							 | 
						|||
| 
								 | 
							
								                    <option value="1">United States</option>
							 | 
						|||
| 
								 | 
							
								                    <option value="2">Canada</option>
							 | 
						|||
| 
								 | 
							
								                    <option value="3">United Kingdom</option>
							 | 
						|||
| 
								 | 
							
								                    <option value="4">France</option>
							 | 
						|||
| 
								 | 
							
								                    <option value="5">Brazil</option>
							 | 
						|||
| 
								 | 
							
								                    <option value="6">China</option>
							 | 
						|||
| 
								 | 
							
								                    <option value="7">Russia</option>
							 | 
						|||
| 
								 | 
							
								                </select>
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								            <div class="details-form-field">
							 | 
						|||
| 
								 | 
							
								                <label for="married">Is Married</label>
							 | 
						|||
| 
								 | 
							
								                <input id="married" name="married" type="checkbox" />
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								            <div class="details-form-field">
							 | 
						|||
| 
								 | 
							
								                <button type="submit" id="save">Save</button>
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								        </form>
							 | 
						|||
| 
								 | 
							
								    </div>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    <script>
							 | 
						|||
| 
								 | 
							
								        $(function() {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            $("#jsGrid").jsGrid({
							 | 
						|||
| 
								 | 
							
								                height: "70%",
							 | 
						|||
| 
								 | 
							
								                width: "100%",
							 | 
						|||
| 
								 | 
							
								                editing: true,
							 | 
						|||
| 
								 | 
							
								                autoload: true,
							 | 
						|||
| 
								 | 
							
								                paging: true,
							 | 
						|||
| 
								 | 
							
								                deleteConfirm: function(item) {
							 | 
						|||
| 
								 | 
							
								                    return "The client \"" + item.Name + "\" will be removed. Are you sure?";
							 | 
						|||
| 
								 | 
							
								                },
							 | 
						|||
| 
								 | 
							
								                rowClick: function(args) {
							 | 
						|||
| 
								 | 
							
								                    showDetailsDialog("Edit", args.item);
							 | 
						|||
| 
								 | 
							
								                },
							 | 
						|||
| 
								 | 
							
								                controller: db,
							 | 
						|||
| 
								 | 
							
								                fields: [
							 | 
						|||
| 
								 | 
							
								                    { name: "Name", type: "text", width: 150 },
							 | 
						|||
| 
								 | 
							
								                    { name: "Age", type: "number", width: 50 },
							 | 
						|||
| 
								 | 
							
								                    { name: "Address", type: "text", width: 200 },
							 | 
						|||
| 
								 | 
							
								                    { name: "Country", type: "select", items: db.countries, valueField: "Id", textField: "Name" },
							 | 
						|||
| 
								 | 
							
								                    { name: "Married", type: "checkbox", title: "Is Married", sorting: false },
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        type: "control",
							 | 
						|||
| 
								 | 
							
								                        modeSwitchButton: false,
							 | 
						|||
| 
								 | 
							
								                        editButton: false,
							 | 
						|||
| 
								 | 
							
								                        headerTemplate: function() {
							 | 
						|||
| 
								 | 
							
								                            return $("<button>").attr("type", "button").text("Add")
							 | 
						|||
| 
								 | 
							
								                                .on("click", function () {
							 | 
						|||
| 
								 | 
							
								                                    showDetailsDialog("Add", {});
							 | 
						|||
| 
								 | 
							
								                                });
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                ]
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            $("#detailsDialog").dialog({
							 | 
						|||
| 
								 | 
							
								                autoOpen: false,
							 | 
						|||
| 
								 | 
							
								                width: 400,
							 | 
						|||
| 
								 | 
							
								                close: function() {
							 | 
						|||
| 
								 | 
							
								                    $("#detailsForm").validate().resetForm();
							 | 
						|||
| 
								 | 
							
								                    $("#detailsForm").find(".error").removeClass("error");
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            $("#detailsForm").validate({
							 | 
						|||
| 
								 | 
							
								                rules: {
							 | 
						|||
| 
								 | 
							
								                    name: "required",
							 | 
						|||
| 
								 | 
							
								                    age: { required: true, range: [18, 150] },
							 | 
						|||
| 
								 | 
							
								                    address: { required: true, minlength: 10 },
							 | 
						|||
| 
								 | 
							
								                    country: "required"
							 | 
						|||
| 
								 | 
							
								                },
							 | 
						|||
| 
								 | 
							
								                messages: {
							 | 
						|||
| 
								 | 
							
								                    name: "Please enter name",
							 | 
						|||
| 
								 | 
							
								                    age: "Please enter valid age",
							 | 
						|||
| 
								 | 
							
								                    address: "Please enter address (more than 10 chars)",
							 | 
						|||
| 
								 | 
							
								                    country: "Please select country"
							 | 
						|||
| 
								 | 
							
								                },
							 | 
						|||
| 
								 | 
							
								                submitHandler: function() {
							 | 
						|||
| 
								 | 
							
								                    formSubmitHandler();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var formSubmitHandler = $.noop;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var showDetailsDialog = function(dialogType, client) {
							 | 
						|||
| 
								 | 
							
								                $("#name").val(client.Name);
							 | 
						|||
| 
								 | 
							
								                $("#age").val(client.Age);
							 | 
						|||
| 
								 | 
							
								                $("#address").val(client.Address);
							 | 
						|||
| 
								 | 
							
								                $("#country").val(client.Country);
							 | 
						|||
| 
								 | 
							
								                $("#married").prop("checked", client.Married);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                formSubmitHandler = function() {
							 | 
						|||
| 
								 | 
							
								                    saveClient(client, dialogType === "Add");
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                $("#detailsDialog").dialog("option", "title", dialogType + " Client")
							 | 
						|||
| 
								 | 
							
								                    .dialog("open");
							 | 
						|||
| 
								 | 
							
								            };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var saveClient = function(client, isNew) {
							 | 
						|||
| 
								 | 
							
								                $.extend(client, {
							 | 
						|||
| 
								 | 
							
								                    Name: $("#name").val(),
							 | 
						|||
| 
								 | 
							
								                    Age: parseInt($("#age").val(), 10),
							 | 
						|||
| 
								 | 
							
								                    Address: $("#address").val(),
							 | 
						|||
| 
								 | 
							
								                    Country: parseInt($("#country").val(), 10),
							 | 
						|||
| 
								 | 
							
								                    Married: $("#married").is(":checked")
							 | 
						|||
| 
								 | 
							
								                });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                $("#jsGrid").jsGrid(isNew ? "insertItem" : "updateItem", client);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                $("#detailsDialog").dialog("close");
							 | 
						|||
| 
								 | 
							
								            };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        });
							 | 
						|||
| 
								 | 
							
								    </script>
							 | 
						|||
| 
								 | 
							
								</body>
							 | 
						|||
| 
								 | 
							
								</html>
							 |