Login    
 
 
 
 
Text/HTML
  
You are here :: Blogs Saturday, May 19, 2012

Search
Note: This uses the internal blog search engine. The Google search engine is also available at the top of the page.
  
Disclaimer

Please review the site disclaimer before downloading or using content found on this site

  
Categories
  
DEVSHED Blog
As always, I welcome your comments!
Mar 9

Written by: Steve Gray
3/9/2011 6:23 PM  RssIcon

Following is an example of the ComponentArt grid in Client Mode.

Now, if you use the CA grid at all you know that they install examples right on your machine for you to learn from.

The reason that I’m coding these examples is:

  • Their examples are sometimes too verbose
  • Their examples aren’t coded the way that I have the grids coded – I use a class that abstracts a lot of the grid setup so that I don’t have to look at it, and so that it is consistent across a project.

These examples are coded in a master page, I’m providing only the needed details here.

So, here is a complete working example of grid editing in client mode.

An on-line example is provided here: http://componentart.devshed.us/Examples/Grid/ClientEditing.aspx

There is a reference to the ComponentArtGrid class in the code behind, that’s here: http://devshed.us/Blogs/tabid/227/EntryId/1004/ComponentArt-Grid-Class.aspx

And the style sheet is here (gridStyle.css) http://devshed.us/Blogs/tabid/227/EntryId/1005/ComponentArt-Grid-Css.aspx

Code Snippet
  1. <%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="ClientEditing.aspx.vb" Inherits="ComponentArt.ClientEditing" %>
  2. <%@ Register Assembly="ComponentArt.Web.UI" Namespace="ComponentArt.Web.UI" TagPrefix="ComponentArt" %>
  3.  
  4. <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
  5.     <script type="text/javascript">
  6.     //<![CDATA[
  7.  
  8.         function Grid1_onItemBeforeInsert(sender, eventArgs) {
  9.             if (document.getElementById('ctl00$MainContent$chkConfirmInsert').checked)
  10.                 if (!confirm("Insert record?"))
  11.                     eventArgs.set_cancel(true);
  12.         }
  13.  
  14.         function Grid1_onItemBeforeUpdate(sender, eventArgs) {
  15.             if (document.getElementById('ctl00$MainContent$chkConfirmUpdate').checked)
  16.                 if (!confirm("Update record?"))
  17.                     eventArgs.set_cancel(true);
  18.         }
  19.  
  20.         function Grid1_onItemBeforeDelete(sender, eventArgs) {
  21.             if (document.getElementById('ctl00$MainContent$chkConfirmDelete').checked)
  22.                 if (!confirm("Delete record?"))
  23.                     eventArgs.set_cancel(true);
  24.         }
  25.  
  26.         function Grid1_onItemBeforeUpdate(sender, eventArgs) {
  27.             var newItem = eventArgs.get_newItem();
  28.  
  29.  
  30.             // validate Quantity
  31.             var Quantity = newItem.getMember('Quantity').get_value();
  32.             if (isNaN(Quantity)) {
  33.                 // failed validation, return to editing
  34.                 alert('Quantity must be a number.');
  35.                 eventArgs.set_continue(true);
  36.             }
  37.  
  38.             if (document.getElementById('MainContent_chkConfirmUpdate').checked)
  39.                 if (!confirm("Update record?"))
  40.                     eventArgs.set_cancel(true);
  41.  
  42.         }
  43.  
  44.  
  45.         function editGrid(rowId) {
  46.             Grid1.edit(Grid1.getItemFromClientId(rowId));
  47.         }
  48.  
  49.         function editRow() {
  50.             Grid1.editComplete();
  51.         }
  52.  
  53.         function insertRow() {
  54.             Grid1.editComplete();
  55.         }
  56.  
  57.         function deleteRow(rowId) {
  58.             Grid1.deleteItem(Grid1.getItemFromClientId(rowId));
  59.         }
  60.     //]]>
  61.     </script>
  62.  
  63. </asp:Content>
  64. <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
  65.     <div >
  66.         <span>This grid is in Client Mode. Edits are held until you press the button at the bottom of the form, then the updates are all done at once</span>
  67.         <br />
  68.         <br />
  69.         <ComponentArt:DataGrid ID="Grid1"
  70.             runat="server">
  71.             <ClientEvents>
  72.                 <ItemBeforeInsert EventHandler="Grid1_onItemBeforeInsert" />
  73.                 <ItemBeforeUpdate EventHandler="Grid1_onItemBeforeUpdate" />
  74.                 <ItemBeforeDelete EventHandler="Grid1_onItemBeforeDelete" />
  75.             </ClientEvents>
  76.             <Levels>
  77.                 <ComponentArt:GridLevel
  78.                     DataKeyField="lRowID"
  79.                     EditCommandClientTemplateId="EditCommandTemplate"
  80.                     InsertCommandClientTemplateId="InsertCommandTemplate"
  81.                     >
  82.                     <Columns>
  83.                         <ComponentArt:GridColumn AllowEditing="false" DataField="lRowID" Visible="false" />
  84.                         <ComponentArt:GridColumn DataField="Itemnmbr" HeadingText="Item"  AllowEditing="false" />
  85.                         <ComponentArt:GridColumn DataField="Quantity" HeadingText="Quantity" />
  86.                         <ComponentArt:GridColumn DataField="UnitCost" HeadingText="Unit Cost" AllowEditing="false" />
  87.                         <ComponentArt:GridColumn AllowSorting="false" HeadingText="Edit Command" DataCellClientTemplateId="EditTemplate" EditControlType="EditCommand" Width="100" Align="Center" />
  88.                     </Columns>
  89.                 </ComponentArt:GridLevel>
  90.             </Levels>
  91.             <ClientTemplates>
  92.                 <ComponentArt:ClientTemplate ID="EditTemplate"><a href="javascript:Grid1.edit(Grid1.getItemFromClientId('## DataItem.ClientId ##'));">
  93.                     Edit</a> | <a href="javascript:Grid1.deleteItem(Grid1.getItemFromClientId('## DataItem.ClientId ##'))">
  94.                         Delete</a> </ComponentArt:ClientTemplate>
  95.                 <ComponentArt:ClientTemplate ID="EditCommandTemplate"><a href="javascript:Grid1.editComplete();">
  96.                     Update</a> | <a href="javascript:Grid1.editCancel();">Cancel</a> </ComponentArt:ClientTemplate>
  97.                 <ComponentArt:ClientTemplate ID="InsertCommandTemplate"><a href="javascript:Grid1.editComplete();">
  98.                     Insert</a> | <a href="javascript:Grid1.editCancel();">Cancel</a> </ComponentArt:ClientTemplate>
  99.             </ClientTemplates>
  100.         </ComponentArt:DataGrid>
  101.  
  102.         <br/>
  103.         <table width="100%" cellpadding="0" cellspacing="0" border="0">
  104.             <tr>
  105.                 <td width="270" valign="top">
  106.                     <span class="hint">Insert, update, and delete any number of records, and postback when
  107.                         you are ready: </span>
  108.                     <br />
  109.                     <br />
  110.                     <asp:Button ID="Button1" Text="Commit All Changes" runat="server" /><br />
  111.                     <br />
  112.                     <asp:CheckBox ID="chkConfirmInsert" Text="Confirm Before Insert" Checked="false"
  113.                         runat="server" />
  114.                     <br />
  115.                     <asp:CheckBox ID="chkConfirmUpdate" Text="Confirm Before Update" Checked="false"
  116.                         runat="server" />
  117.                     <br />
  118.                     <asp:CheckBox ID="chkConfirmDelete" Text="Confirm Before Delete" Checked="false"
  119.                         runat="server" />
  120.                     <br />
  121.                     <br />
  122.                 </td>
  123.                 <td valign="top">
  124.                     <asp:Label ID="lblFeedback" runat="server" />
  125.                 </td>
  126.                 <td align="right" valign="top">
  127.                     <input type="button" onclick="Grid1.Table.AddRow()" value="Add row" />
  128.                 </td>
  129.             </tr>
  130.         </table>
  131.     </div>
  132.  
  133. </asp:Content>

Tags:
Categories:
As always, I welcome your comments!
  
 
 
Home | Products | Blogs | Contact Us | Links | God's Plan
Privacy Statement | Terms Of Use
 
Copyright 2011 by Devshed.us