<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Intersoft Solutions Corporate Blog &#187; 2009 R1</title>
	<atom:link href="http://blog.intersoftsolutions.com/category/2009-r1/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.intersoftsolutions.com</link>
	<description>All about development productivity – ASP.NET, Silverlight, WPF, iOS, Android, Windows Phone, Windows 8</description>
	<lastBuildDate>Sat, 21 Apr 2018 06:57:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.33</generator>
	<item>
		<title>Target Group Feature in WebCallOut</title>
		<link>http://blog.intersoftsolutions.com/2009/12/target-group-feature-in-webcallout/</link>
		<comments>http://blog.intersoftsolutions.com/2009/12/target-group-feature-in-webcallout/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 13:04:28 +0000</pubDate>
		<dc:creator><![CDATA[intersoftbram]]></dc:creator>
				<category><![CDATA[2009 R1]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[GroupName]]></category>
		<category><![CDATA[WebCallOut]]></category>
		<category><![CDATA[WebDesktop]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=990</guid>
		<description><![CDATA[The latest WebCallout control introduces a new capability to target a group of elements. Although it may seem simple, it’s indeed a nice time-saving feature which eliminates a lot of codes. With this group targeting feature, you can easily specify the &#8220;group name&#8221; of multiple [...]]]></description>
				<content:encoded><![CDATA[<p>The latest WebCallout control introduces a new capability to target a group of elements. Although it may seem simple, it’s indeed a nice time-saving feature which eliminates a lot of codes. With this group targeting feature, you can easily specify the &#8220;group name&#8221; of multiple WebCallOuts in the page. The callout instances with same &#8220;group name&#8221; will only appear once per show.</p>
<p>To get a better picture, let&#8217;s assume we have three WebCallout instances in a page where each callout is bound to each image element to be shown. The scenario that we’d like to achieve here is to show a callout on an image and automatically hide the other callouts that may still be displayed in the previous show.</p>
<p>Certainly the above scenario can be achieved using traditional way by handling the <strong>OnShow</strong> client-side event where custom codes are required to hide the other callouts. The new “group name” feature is a much more elegant approach to achieve this scenario, where you can simply specify the group name of all callout instance to an identical value.</p>
<p>For a quick instance, I have three callout instances where each callout is bound to a car image. Each callout will be shown when its associated image is hovered. Ultimately, you’ll see all the three callouts displayed at the same time when you hover on each car image quickly – which isn’t the behavior that users desire. To prevent this to happen, now I simply set all the <strong>GroupName</strong> property of all callout instances to &#8220;automobile&#8221;. Please see the following screenshot.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/11/carspecification2.png"><img class="alignnone size-full wp-image-993" title="CarSpecification" src="http://intersoftpt.files.wordpress.com/2009/11/carspecification2.png" alt="" width="544" height="199" /></a></p>
<p>Here’s an example of the WebCallout markup declaration used in the above sample:</p>
<p>&lt;ISWebDesktop:WebCallOut ID=&#8221;WebCallOut1&#8243; runat=&#8221;server&#8221; Height=&#8221;69px&#8221; Width=&#8221;300px&#8221; TargetControlId=&#8221;chrysler&#8221; Title=&#8221;Chrysler 300 Touring&#8221; <strong>GroupName=&#8221;automobile&#8221;</strong> ContentMode=&#8221;UseTemplate&#8221;&gt;</p>
<p>&lt;ContentTemplate&gt;</p>
<p>&#8230;&#8230;. create the WebCallout template here&#8230;&#8230;.</p>
<p>&lt;/ContentTemplate&gt;</p>
<p>&lt;/ISWebDesktop:WebCallOut&gt;</p>
<p>That&#8217;s all for now, hopefully this new time-saving feature is useful for your web development. Please visit <a href="http://intersoftpt.com/Community/" target="_blank">our forum</a> for feedback and questions.</p>
<p>Best regards,</p>
<p>Budianto Muliawan</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/12/target-group-feature-in-webcallout/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Enhancements in WebScheduler 2 SP1</title>
		<link>http://blog.intersoftsolutions.com/2009/10/enhancements-in-webscheduler-2-sp1/</link>
		<comments>http://blog.intersoftsolutions.com/2009/10/enhancements-in-webscheduler-2-sp1/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 12:50:53 +0000</pubDate>
		<dc:creator><![CDATA[intersoftbram]]></dc:creator>
				<category><![CDATA[2009 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Client side API]]></category>
		<category><![CDATA[client-side event]]></category>
		<category><![CDATA[SP1]]></category>
		<category><![CDATA[WebScheduler]]></category>
		<category><![CDATA[WebScheduler 2]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=957</guid>
		<description><![CDATA[Striving to deliver the world&#8217;s best WebScheduler product, we continue to enhance and add more new features based on your feedback with the objectives to provide more advanced scheduling functionality &#8212; making your web development faster and easier than ever. In this post, I will [...]]]></description>
				<content:encoded><![CDATA[<p>Striving to deliver the world&#8217;s best WebScheduler product, we continue to enhance and add more new features based on your feedback with the objectives to provide more advanced scheduling functionality &#8212; making your web development faster and easier than ever. In this post, I will share some new features and enhancements that we&#8217;ve made in the latest service pack. These new enhancements and features are included  in <a href="http://www.intersoftpt.com/requestTrial.aspx" target="_blank">Intersoft WebUI Studio 2009 R1 SP1</a> or the latest build of WebScheduler released this month.</p>
<h2>New Client Side Events</h2>
<ol>
<li><strong>OnCalendarCellClicked</strong><br />
This client side event will be invoked when a calendar date is clicked.</li>
</ol>
<h2>New Client Side API</h2>
<ol>
<li><strong>SetCallOutWidth</strong>(<em>width</em>)<br />
This method is used to set the width of WebScheduler&#8217;s callout. Please note that the &#8220;width&#8221; parameter should be integer.</li>
<li><strong>SetCallOutHeight</strong>(<em>height</em>)<br />
This method is used to set the height of Webscheduler&#8217;s callout. Please note that the &#8220;height&#8221; parameter should be integer.</li>
</ol>
<h2>New Properties</h2>
<ol>
<li><strong>UseAgendaDetailsCollection</strong><br />
This property indicates whether WebScheduler should use the <em>AgendaDetailsCollection</em> property instead of the default/built-in details. For an instance, we can hide the default details completely by simply setting the <em>UseAgendaDetailsCollection</em> property to true and leave the <em>AgendaDetailsCollection</em> empty. This property exist in ViewSettings &gt;&gt; AgendaView. To learn more, please head to <a href="http://intersoftpt.wordpress.com/2009/09/04/customize-agenda-view-in-webscheduler/" target="_blank">Customize Agenda View in WebScheduler</a>.</li>
<li><strong>DisplayViewOnMyCalendarLink</strong><br />
This property indicates whether “View on my calendar” button should appear or not in Agenda view. This property exist in ViewSettings &gt;&gt; AgendaView. To learn more, please refer to <a href="http://intersoftpt.wordpress.com/2009/09/04/customize-agenda-view-in-webscheduler/" target="_blank">Customize Agenda View in WebScheduler</a>.</li>
<li><strong>DateHeaderMode</strong><br />
This property determines which date header mode that should be used in Timeline view. When displayed, this property introduces 5 options. Since WebScheduler build 220, there are <strong>2 new options </strong>(<em>DayNameAndDateNumber</em> and <em>ShortestDayNameAndDateNumber</em>) added to DateHeaderMode. This property can be found  in <em>ViewSettings</em> &gt;&gt; <em>TimelineView</em>. To learn more, please refer to <a href="http://intersoftpt.wordpress.com/2009/08/11/customize-date-header-in-webscheduler-timeline-view/" target="_blank">Customize date header in WebScheduler Timeline View</a>.</li>
</ol>
<p>That’s all for now — hopefully you find these new features and enhancements useful for your scheduling web application development. As usual, please feel free to post your questions, thoughts or feedback about WebScheduler in our <a href="http://www.intersoftpt.com/Community" target="_blank">forum</a>.</p>
<p>Best Regards,<br />
Budianto Muliawan</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/10/enhancements-in-webscheduler-2-sp1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Properties, Events, and Client-side API added in WebTextEditor</title>
		<link>http://blog.intersoftsolutions.com/2009/10/new-properties-events-and-client-side-api-added-in-webtexteditor/</link>
		<comments>http://blog.intersoftsolutions.com/2009/10/new-properties-events-and-client-side-api-added-in-webtexteditor/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 08:16:42 +0000</pubDate>
		<dc:creator><![CDATA[erikaa]]></dc:creator>
				<category><![CDATA[2009 R1]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Client side API]]></category>
		<category><![CDATA[client-side event]]></category>
		<category><![CDATA[Property]]></category>
		<category><![CDATA[WebTextEditor]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=977</guid>
		<description><![CDATA[As published previously, we have released WebUI Studio 2009 R1 SP1 which includes many enhancements, especially to WebTextEditor and WebScheduler 2. Specifically in WebTextEditor, some new properties, client-side events, and client-side API are included. New Properties ToolBarSettings &#62;&#62; SerializationMode, determines the serialization mode used for [...]]]></description>
				<content:encoded><![CDATA[<p>As <a title="published" href="http://intersoftpt.wordpress.com/2009/09/01/intersoft-webui-studio-2009-sp1-is-here/" target="_blank">published </a>previously, we have released WebUI Studio 2009 R1 SP1 which includes many enhancements, especially to WebTextEditor and WebScheduler 2. Specifically in WebTextEditor, some new properties, client-side events, and client-side API are included.</p>
<p><strong>New Properties</strong></p>
<ul>
<li><em>ToolBarSettings &gt;&gt; SerializationMode</em>, determines the serialization mode used for toolbars definition. When set to Client, the page output will be much reduced. Read the complete explanation <a href="http://intersoftpt.wordpress.com/2009/09/03/reduce-page-output-in-webtexteditor/">here</a>. </li>
<li><em>ToolBarSettings &gt;&gt; SynchronizeCommandLatency</em>, determines the latency used to synchronize the toolbar commands with the format of selected content. When users navigate through contents that has different format, the toolbar commands will be synchronized to the selected content. This property determines the latency used before the synchronization action is invoked.</li>
<li><em>PreventScriptInjection</em>, determines whether WebTextEditor should detect whether the content contains script injection. If this property is enabled, all script tags and its content will be removed when the content is saved.</li>
<li><em>ShowCallOutOnMediaInsert</em>, determines whether callout should be automatically displayed when a media is inserted as editor content.</li>
<li><em>ShowMediaActionOnMediaSelect</em>, determines whether media action should be displayed when a media is selected.</li>
</ul>
<p><strong>New client-side events</strong></p>
<ul>
<li><em>OnKeyDown</em>, will be invoked when there is a key down input in editor.<br />
<pre class="crayon-plain-tag">function WebTextEditor1_OnKeyDown(controlId, keyCode)
{
     var rte = ISGetObject(controlId);
     //implement your codes here
}</pre>
</li>
<li><em>OnMediaSelected</em>, will be invoked when a media is selected. Users can input media to editor content from Media Gallery. When the media is selected, this event will be invoked when specified.<br />
<pre class="crayon-plain-tag">function WebTextEditor1_OnMediaSelected(contolId, element)
{
     var rte = ISGetObject(controlId);
     //implement your codes here
}</pre>
</li>
<li><em>OnBeforeResize</em> and <em>OnAfterResize</em>, will be invoked before and after editor is resized using the footer resize element.<br />
<pre class="crayon-plain-tag">function WebTextEditor1_OnBeforeResize(controlId)
{
     var rte = ISGetObject(controlId);
     //implement your codes here
} 

function WebTextEditor1_OnAfterResize(controlId)
{
     var rte = ISGetObject(controlId);
     //implement your codes here
}</pre>
</li>
<li>Integrated file-uploader client side events, which are <em>OnBeforeUpload</em>, <em>OnUploaderValidate</em>, <em>OnUploading</em>, <em>OnAfterUpload</em>, <em>OnCancelUpload</em>, <em>OnUploaderInitialize</em>, <em>OnUploaderError</em>, <em>OnUploaderFileAdded</em>, and <em>OnUploaderFileRemoved</em>. When WebFileUploader is integrated to WebTextEditor and users perform specific action related to it, the above events will be invoked when specified.</li>
</ul>
<p>New client-side APIs</p>
<ul>
<li><em>SetValueToCurrentPosition</em>, used to set value on the last active cursor position. When users navigate through the content and lost focus from editor, a specific value can be added to editor. When this API is used, the value will be added to the last active cursor position before users lost focus from editor.<br />
<pre class="crayon-plain-tag">var rte = ISGetObject(“WebTextEditor1”);
rte.SetValueToCurrentPosition(“new value”);</pre>
</li>
<li><em>SetFocus</em>, used to set focus to WebTextEditor. When watermark is enabled, this function will remove the watermark and set focus to editor content.<br />
<pre class="crayon-plain-tag">var rte = ISGetObject(“WebTextEditor1”);
rte.SetFocus();</pre>
</li>
<li><em>ToggleToolBar</em>, used to toggle or un-toggle a specific toolbar.<br />
<pre class="crayon-plain-tag">var rte = ISGetObject(“WebTextEditor1”);
var toolbar = rte.ClientToolBar[1];
rte.ToggleToolBar(toolbar, false);</pre>
</li>
<li><em>ResetEditorState</em>, used to reset the editor state to default state. This API will set the content to empty, close the task pane, reset the state of commands in all toolbars, reset the undo and redo collections, and reset the integrated uploader status.<br />
<pre class="crayon-plain-tag">var rte = ISGetObject(“WebTextEditor1”);
rte.ResetEditorState();</pre>
</li>
<li><em>HideCallOut</em>, used to hide the callout. You can specify whether the hide action will be performed using animation.<br />
<pre class="crayon-plain-tag">var rte = ISGetObject(“WebTextEditor1”);
rte.HideCallOut(false); //hide callout without animation</pre>
</li>
<li><em>RegisterIFrameBehavior</em> and <em>UnregisterIFrameBehavior</em>, used to register and unregister the behavior attached to IFrame element of WebTextEditor. When WebTextEditor element is removed and placed in various elements in the page, the behavior attached to the IFrame element will be lost. These new APIs can be used to re-register or unregister the behavior when needed.</li>
</ul>
<p>If you have installed WebUI Studio 2009 R1 SP1, you can read the complete version history of the enhancements and fixes in Intersoft WebUI Studio 2009 R1 SP1 Release Notes.pdf.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/10/new-properties-events-and-client-side-api-added-in-webtexteditor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bind Value to WebTextEditor When Used As Template</title>
		<link>http://blog.intersoftsolutions.com/2009/10/bind-value-to-webtexteditor-when-used-as-template/</link>
		<comments>http://blog.intersoftsolutions.com/2009/10/bind-value-to-webtexteditor-when-used-as-template/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 07:59:59 +0000</pubDate>
		<dc:creator><![CDATA[erikaa]]></dc:creator>
				<category><![CDATA[2009 R1]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Bind data]]></category>
		<category><![CDATA[Edit template]]></category>
		<category><![CDATA[Item template]]></category>
		<category><![CDATA[WebTextEditor]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=965</guid>
		<description><![CDATA[WebTextEditor can be used as editing tool in many scenarios. If you have details view or other data list control, WebTextEditor can be used as the item or edit template and the related data can be displayed in WebTextEditor. DetailsView control is used to demonstrate [...]]]></description>
				<content:encoded><![CDATA[<p>WebTextEditor can be used as editing tool in many scenarios. If you have details view or other data list control, WebTextEditor can be used as the item or edit template and the related data can be displayed in WebTextEditor.</p>
<p>DetailsView control is used to demonstrate this capability. After it is bound properly to Employees table, users can navigate through employee data using the navigation links provided. Data can be bound to WebTextEditor when it is used as item or edit template. Simply set the Content property to the related data.</p><pre class="crayon-plain-tag">&lt;asp:TemplateField HeaderText="Notes" SortExpression="Notes"&gt;
   &lt;ItemTemplate&gt;
      &lt;ISWebTextEditor:WebTextEditor ID="WebTextEditor1" runat="server" Height="200px"
      	   Width="500px" <strong>Content='&lt;%# Bind("Notes") %&gt;'</strong>&gt;
         &lt;ViewSettings EnableHTMLView="false" EnableSplitView="false" /&gt;
         &lt;ToolBarSettings ToolBarMode="None" /&gt;
         &lt;RootTextEditor ReadOnly="true"&gt;
         &lt;/RootTextEditor&gt;
      &lt;/ISWebTextEditor:WebTextEditor&gt;
   &lt;/ItemTemplate&gt;
   &lt;EditItemTemplate&gt;
      &lt;ISWebTextEditor:WebTextEditor ID="WebTextEditor1" runat="server" Height="200px"
	    Width="500px" <strong>Content='&lt;%# Bind("Notes") %&gt;'</strong>&gt;
         &lt;ViewSettings EnableHTMLView="false" EnableSplitView="false" /&gt;
	 &lt;ToolBarSettings ToolBarMode="Minimal" /&gt;
         &lt;TaskPaneSettings&gt;
 	    &lt;MediaGallery Enabled="false" /&gt;
 	 &lt;/TaskPaneSettings&gt;
      &lt;/ISWebTextEditor:WebTextEditor&gt;
   &lt;/EditItemTemplate&gt;
&lt;/asp:TemplateField&gt;</pre><p>As item template, the related Notes data will be displayed in WebTextEditor. As item template, users are unable to edit the content. Read-only status can be set in WebTextEditor when it is used as item template.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/10/item-template.png"><img class="size-medium wp-image-966" title="WebTextEditor used as item template" src="http://intersoftpt.files.wordpress.com/2009/10/item-template.png?w=300" alt="WebTextEditor used as item template" width="300" height="266" /></a></p>
<p>When users click Edit, the related Notes data will be displayed in WebTextEditor. Users can easily modify the content and save the update.</p>
<div class="mceTemp">
<dl class="wp-caption alignleft">
<dt class="wp-caption-dt"><a href="http://intersoftpt.files.wordpress.com/2009/10/edit-template.png"><img class="size-medium wp-image-967" title="WebTextEditor used as edit template" src="http://intersoftpt.files.wordpress.com/2009/10/edit-template.png?w=282" alt="WebTextEditor used as edit template" width="282" height="300" /></a> </dt>
<dd class="wp-caption-dd">WebTextEditor used as edit template </dd>
</dl>
<p>When used as either template, WebTextEditor configuration can be customized based on your requirement. Please browse to <a title="this sample" href="http://live.intersoftpt.com/cs/WebTextEditor/WebTextEditor/DataBinding.aspx?noframe=1&amp;path=/WebTextEditor/Rich%20Text%20Editor/Data%20Binding" target="_blank">this sample</a> in Intersoft Live Demo to try it yourself.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/10/bind-value-to-webtexteditor-when-used-as-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create WebCallOut control in client-side</title>
		<link>http://blog.intersoftsolutions.com/2009/10/create-webcallout-control-in-client-side/</link>
		<comments>http://blog.intersoftsolutions.com/2009/10/create-webcallout-control-in-client-side/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 09:29:08 +0000</pubDate>
		<dc:creator><![CDATA[intersoftbram]]></dc:creator>
				<category><![CDATA[2009 R1]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Client-side]]></category>
		<category><![CDATA[KB]]></category>
		<category><![CDATA[WebCallOut]]></category>
		<category><![CDATA[WebDesktop]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=935</guid>
		<description><![CDATA[One of the most requested features for WebCallOut that we&#8217;ve received in the past months is the ability to create callout control in the client side programmatically. If you haven&#8217;t heard about WebCallOut, it is a nice replacement for standard tooltip, which allows you to [...]]]></description>
				<content:encoded><![CDATA[<p>One of the most requested features for WebCallOut that we&#8217;ve received in the past months is the ability to create callout control in the client side programmatically. If you haven&#8217;t heard about WebCallOut, it is a nice replacement for standard tooltip, which allows you to display contextual information in an eye-catching, stylish callout interface. To learn more, please head to <a href="http://intersoftpt.com/WebDesktop/Callout" target="_blank">WebCallOut product page</a>.</p>
<p>Several benefits of client-side instance creation include zero server-side footprint which means less page output and faster page load performance. It&#8217;s also very useful in dynamic, on-demand runtime scenarios where the callout needs to be displayed based on certain results. For instance, create a callout with flexible error message to notify the error in user&#8217;s input.</p>
<p>In this post, I&#8217;ll guide you how to create callout instance programmatically from the client-side. First, make sure the required callout script is registered in your page. If there is no WebDesktop&#8217;s control existed in your ASPX page, you should register callout script by calling <strong>EnsureWebCallOutScripts</strong> method in the <em>Page_Load</em> server-side event which is shown below.</p><pre class="crayon-plain-tag">protected void Page_Load(object sender, EventArgs e)
{
      WebCallOut.EnsureWebCallOutScripts(this);
}</pre><p>Note that the above code is not required if you already have one or more WebDesktop controls in your page, such as ToolBar, Menu, DialogBox or others.</p>
<p>The next step to create callout from the client-side is by invoking <em><strong>CreatAtClient </strong></em>client-side method. See the step-by-step guide below.</p>
<ol>
<li>Drop a ASP.NET TextBox to your page. This textbox will become the callout&#8217;s target control which means the callout will appear when your mouse is hover on the textbox.</li>
<li>Drop a HTML Button. Attach the onclick client side event and set it to Button1_onclick function such as shown below.<br />
<pre class="crayon-plain-tag">&lt;input id="Button1" onclick="return Button1_onclick()" type="button" 
value="Create WebCallOut client side" /&gt;</pre>
</li>
<li>Create Button1_onclick function to create the callout.<br />
<pre class="crayon-plain-tag">&lt;script language="javascript"&gt;
function Button1_onclick()
{
    var callout = new WebCallOut("WebCallOut1");
    callout.TargetControlIdResolved = "TextBox1";
    callout.Text = "Hello World";
    callout.CreateAtClient();
}
&lt;/script&gt;</pre>
</li>
</ol>
<p>That&#8217;s it. Now run your page and you will see something similar to the screenshot below.</p>
<p><img class="alignnone size-full wp-image-936" title="WebCallOut" src="http://intersoftpt.files.wordpress.com/2009/09/webcallout.png" alt="WebCallOut" width="544" height="149" /></p>
<p>In the first page load, notice that there will be no effect on the textbox since the callout is not yet created. Now, click on the button and then hover on the textbox to see the callout in action. See the screenshot below.</p>
<p><img class="alignnone size-full wp-image-937" title="WebCallOut2" src="http://intersoftpt.files.wordpress.com/2009/09/webcallout2.png" alt="WebCallOut2" width="544" height="199" /></p>
<p>That&#8217;s all &#8212; you should be now able to create callout instances programmatically whenever you need it in the client &#8212; without requiring server postback. Hopefully this little feature is handy and useful in your web development.</p>
<p>If you have questions or feedback on this feature or other callout-related stuff, please feel free to post your questions in our <a href="http://www.intersoftpt.com/Community" target="_blank">forum</a>.</p>
<p>Best Regards,<br />
Budianto Muliawam</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/10/create-webcallout-control-in-client-side/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrate WebSpellChecker to ASP.NET Controls</title>
		<link>http://blog.intersoftsolutions.com/2009/09/integrate-webspellchecker-to-asp-net-controls/</link>
		<comments>http://blog.intersoftsolutions.com/2009/09/integrate-webspellchecker-to-asp-net-controls/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 07:59:34 +0000</pubDate>
		<dc:creator><![CDATA[intersoftbram]]></dc:creator>
				<category><![CDATA[2009 R1]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[ASP.NET Controls Integration]]></category>
		<category><![CDATA[WebSpellChecker]]></category>
		<category><![CDATA[WebTextEditor]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=925</guid>
		<description><![CDATA[In addition to its easy integration with our own WebTextEditor, WebSpellChecker can also be used to target standard ASP.NET controls such as simple textbox, multiline textarea as well as IFRAME. Similar to the WebTextEditor integration, using WebSpellChecker with ASP.NET controls is very easy and requires [...]]]></description>
				<content:encoded><![CDATA[<p>In addition to its <a href="http://intersoftpt.wordpress.com/2009/08/12/easily-integrate-webspellchecker-to-webtexteditor/" target="_blank">easy integration with our own WebTextEditor</a>, WebSpellChecker can also be used to target standard ASP.NET controls such as simple textbox, multiline textarea as well as IFRAME. Similar to the WebTextEditor integration, using WebSpellChecker with ASP.NET controls is very easy and requires no coding at all.</p>
<p>To use WebSpellChecker in standard ASP.NET controls, simply pay attention on these two properties, <strong><em>TargetControlId</em> </strong>and <strong><em>TargetControlIdValue</em></strong>. The properties are explained in the following.</p>
<ul>
<li><strong>TargetControlId</strong><br />
This property is required to determine the target control for spell check.For instance, TargetControlId should be filled with “TextBox1” value if you would like to spell check on TextBox1 control.</li>
<li><strong>TargetControlIdValue</strong><br />
This property determines the client-side property of the element from which WebSpellChecker should obtain the value for spell check. It’s important to note that the value or content property should be accessible from client-side.For instance, if WebSpellChecker is targetting TextBox server side control, then the TargetControlIdValue property should be set to “value” instead of “Text”.</li>
</ul>
<p>When WebSpellChecker is not integrated to WebTextEditor or editable IFrame, it will use the built-in <strong>DialogBox</strong> interface instead of &#8220;red wave underline highlight&#8221; mode. For further information about WebSpellChecker interface mode, you can find read the detail explanation in <a href="http://intersoftpt.wordpress.com/2009/08/11/introducing-intersoft-webspellchecker-for-asp-net/" target="_blank">here</a>.</p>
<p>To integrate WebSpellChecker to a ASP.NET TextBox, please follow the step-by-step guide below.</p>
<ol>
<li>Drag and drop ASP.NET TextBox control and TextBox control with ID&#8217;s TextBox1 will appear.</li>
<li>Drag and drop HTML Button control and Button control with the ID&#8217;s Button1 will appear. This button is used to start the spell checking from TextBox&#8217;s value.</li>
<li>Drag and drop Intersoft WebSpellChecker control and WebSpellChecker control with ID&#8217;s WebSpellChecker1 will appear.</li>
<li>Set WebSpellChecker&#8217;s <em><strong>TargetControlId </strong></em>to <em><strong>TextBox1 </strong></em>and <em><strong>TargetControlIdValue </strong></em>to <em><strong>value</strong></em>.</li>
<li>Attach <strong>onclick </strong>client side event to Button1 and set it to <strong>CheckSpell function</strong>.<br />
&lt;input id=&#8221;Button1&#8243; type=&#8221;button&#8221; value=&#8221;button&#8221; onclick=&#8221;CheckSpell()&#8221; /&gt;&lt;script language=&#8221;javascript&#8221; type=&#8221;text/javascript&#8221;&gt;<br />
function CheckSpell()<br />
{<br />
var sp = ISGetObject(&#8220;WebSpellChecker1&#8243;);<br />
sp.CheckSpell();<br />
}<br />
&lt;/script&gt;</li>
<li>Integration is finished.</li>
</ol>
<p>The above sample can be found <a href="http://live.intersoftpt.com/cs/WebTextEditor/WebSpellChecker/WebSpellChecker_CommonControl.aspx?noframe=1&amp;path=/WebTextEditor/Spell%20Checker" target="_blank">here</a>. Other samples about WebSpellChecker and the explanation can be found in <a href="http://live.intersoftpt.com/" target="_blank">Intersoft&#8217;s live sample</a>.</p>
<p>If you have any questions or feedback, please don&#8217;t hesitate to post your questions in <a href="http://intersoftpt.com/community" target="_blank">Intersoft Forums</a>.</p>
<p>Best Regards,<br />
Budianto Muliawan</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/09/integrate-webspellchecker-to-asp-net-controls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rich Features in Low Client Footprint</title>
		<link>http://blog.intersoftsolutions.com/2009/09/rich-features-in-low-client-footprint/</link>
		<comments>http://blog.intersoftsolutions.com/2009/09/rich-features-in-low-client-footprint/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 11:33:54 +0000</pubDate>
		<dc:creator><![CDATA[jemmyh]]></dc:creator>
				<category><![CDATA[2009 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Client Footprint]]></category>
		<category><![CDATA[IIS 7]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[WebGrid]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=918</guid>
		<description><![CDATA[Continuing an existing discussion on client footprint optimization especially when a lot of features in WebGrid are enabled, I’ve decided to do a little research on the best way to compress these client resources with a balanced server load yet acceptable compression result. In this [...]]]></description>
				<content:encoded><![CDATA[<p>Continuing an existing <a href="http://www.intersoftpt.com/Community/WebGrid/JavaScript-Footprint/" target="_blank">discussion</a> on client footprint optimization especially when a lot of features in WebGrid are enabled, I’ve decided to do a little research on the best way to compress these client resources with a balanced server load yet acceptable compression result.</p>
<p>In this research, I’m running on Windows 7 Professional, IIS 7.5, Visual Studio 2008 SP1, and HttpWatch Professional installed with WebGrid Enterprise&#8217;s samples.</p>
<h2>The Challenges</h2>
<p>Using the Enterprise sample with all features enabled, the total size of client resources &#8212; including javascript and styles &#8212;  is around 1.2 mb with all compression disabled. This would be a potential issue for users in remote area with slower internet connection.</p>
<p align="center"><img class="aligncenter size-full wp-image-921" title="No_Compression" src="http://intersoftpt.files.wordpress.com/2009/09/no_compression.png" alt="No_Compression" width="544" height="325" /></p>
<p align="center"><em>Without compression, the client resources size is around 1.2 mb.</em></p>
<h2>The Solutions</h2>
<p><strong>SmartWebResources’ Compression Technology</strong></p>
<p>SmartWebResources™ technology not only introduces unique architecture for hassle-free deployment, it also comes with built-in compression feature with a reasonable result. Simply put the key below in your web.config to enable the compression:</p>
<p><code>&lt;add key="ISNet.WebUI.ISRes_Compressed" value="true" /&gt;</code></p>
<p style="text-align:left;">The result will look like the screenshot below.</p>
<p style="text-align:center;"><img class="aligncenter size-full wp-image-922" title="SWR_Compression" src="http://intersoftpt.files.wordpress.com/2009/09/swr_compression.png" alt="SWR_Compression" width="544" height="325" /></p>
<p align="center"><em>The SmartWebResources’ squeezes client resources to 680 kb, saves roughly 60%.</em></p>
<p><strong>IIS 7 Dynamic Compression</strong></p>
<p>The latest IIS now offers easy customizability in more user friendly format. Unlike its previous version, compression can be enabled without having to edit a certain .config file. You can enable/disable the compression directly in the IIS Manager.</p>
<p><img class="aligncenter size-full wp-image-920" title="IIS_Manager" src="http://intersoftpt.files.wordpress.com/2009/09/iis_manager.png" alt="IIS_Manager" width="544" height="314" /></p>
<p>If you wish to learn more about IIS 7&#8217;s compression, please<a href="http://www.iis.net/" target="_blank"> click here</a>.</p>
<p>The default compression level is 7. The compression level in IIS is, fortunately, customizable although you won&#8217;t find this setting anywhere else in the documentation.</p>
<p>To change the compression level in IIS 7, run the following syntax from command line:</p>
<p><code>[WinDir]System32inetsrvappcmd set config /section:httpCompression<br />
/[name='gzip'].staticCompressionLevel:[CompressionLevel]</code></p>
<p>The acceptable value for compression level is 1 &#8211; 10. Setting the compression level to 10 will instruct the IIS to use the best compression quality which produces the smallest output. While it’s great to be able to compact the client resources and deliver very small output to client, it requires a more powerful server for heavier processing and overhead.</p>
<p>In my opinion, the default level is the best option for web applications that run on moderate servers. It doesn’t compress as much as level 9 or 10, but offer less overhead on the server.</p>
<p><img class="aligncenter size-full wp-image-919" title="IIS_Compression" src="http://intersoftpt.files.wordpress.com/2009/09/iis_compression.png" alt="IIS_Compression" width="544" height="325" /></p>
<p align="center"><em>IIS 7 Compression (level 7)</em></p>
<h2>Conclusion</h2>
<p>If you have the direct access to the deployment server which used IIS 7, IIS compression is definitely the best solution to keep your applications speedy with low client resources footprint. However, if you’re hosting your web applications in a shared server, or if you don&#8217;t use IIS 7 yet, then SmartWebResources compression is your best choice. It may not compress as much as IIS, but it still offers reasonable compression result with much lower server overhead.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/09/rich-features-in-low-client-footprint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Built-in Mail Merge Support in WebTextEditor</title>
		<link>http://blog.intersoftsolutions.com/2009/09/built-in-mail-merge-support-in-webtexteditor/</link>
		<comments>http://blog.intersoftsolutions.com/2009/09/built-in-mail-merge-support-in-webtexteditor/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 03:47:21 +0000</pubDate>
		<dc:creator><![CDATA[erikaa]]></dc:creator>
				<category><![CDATA[2009 R1]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Mail merge]]></category>
		<category><![CDATA[Send mail]]></category>
		<category><![CDATA[WebTextEditor]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=908</guid>
		<description><![CDATA[Many people are familiar with Mail Merge feature in Microsoft Word. It is used when you want to send a set of documents that has the same kind of information, but personalized for each recipient. For example: you want to send a gathering invitation to [...]]]></description>
				<content:encoded><![CDATA[<p>Many people are familiar with Mail Merge feature in Microsoft Word. It is used when you want to send a set of documents that has the same kind of information, but personalized for each recipient. For example: you want to send a gathering invitation to all members of IT division. You can send the invitation to all members using the same template but personalized for each recipient. This feature is also supported in WebTextEditor.</p>
<p>You can enable this feature instantly by setting the<strong> EnableMailMerge</strong> property available in <strong>MailMergeSettings</strong>. The collection of recipients can be specified as data bound collection or custom collection. When data bound collection is used, the datasource control id can be specified as <strong>DataSourceID</strong> property.</p>
<p>  </p><pre class="crayon-plain-tag">&lt;ISWebTextEditor:WebTextEditor ID=&quot;WebTextEditor1&quot; runat=&quot;server&quot; Height=&quot;80%&quot; 
Width=&quot;100%&quot; DataMember=&quot;DefaultView&quot; DataSourceID=&quot;AccessDataSource1&quot;&gt;</pre><p></p>
<p>When custom collection is used, the collection can be added to <em>Recipients</em> collection.</p>
<p></p><pre class="crayon-plain-tag">private void BindCustomCollection() 
{ 
   List&lt;ISEmployee&gt; employees = new List&lt;ISEmployee&gt;(); 
   
   ISEmployee emp = new ISEmployee(); 
   emp.EmployeeID = 1; 
   emp.FirstName = &quot;Nancy&quot;; 
   emp.LastName = &quot;Davolio&quot;; 
   emp.Address = &quot;Bridge Street&quot;; 
   emp.City = &quot;London&quot;; 
   emp.Country = &quot;UK&quot;; 
   employees.Add(emp); 

   emp = new ISEmployee(); 
   emp.EmployeeID = 2; 
   emp.FirstName = &quot;Andrew&quot;; 
   emp.LastName = &quot;Fuller&quot;; 
   emp.Address = &quot;Wood Street&quot;; 
   emp.City = &quot;Washington&quot;; 
   emp.Country = &quot;USA&quot;; 
   employees.Add(emp); 

   WebTextEditor1.MailMergeSettings.Recipients = employees; 
}</pre><p></p>
<p>When the collection of recipients are ready, you need to specify the labels. Labels are used to indicate parts of the content that will be replaced with the related data in the data context. You can specify as many labels as needed in the template. Each label contain the following properties:</p>
<ul>
<li><em>Label</em> (mandatory): specifies the text used as label. </li>
<li><em>DataMember</em> (mandatory): specifies the field or property in data context that will be used to replace the label text. </li>
<li><em>FormatString</em> (optional): specifies the format string of the label. This property can be specified if you want to have a specific format on dates or numbers. </li>
</ul>
<p>The collection of labels can be added in <strong>MailMergeSettings &gt;&gt; Labels</strong> property.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/09/3-addlabels.png"><img class="size-medium wp-image-909" title="Insert Labels" alt="Insert Labels" src="http://intersoftpt.files.wordpress.com/2009/09/3-addlabels.png?w=300" width="300" height="214" /></a></p>
<div style="clear:both;"></div>
<p>The labels will be added to <em>Insert Merge Label</em> dropdown in main toolbar. Users can easily select an item from this command in main toolbar and it will be added to editor. Users will not be able to modify the labels manually in the editor window.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/09/1-labels.png"><img class="size-medium wp-image-910" title="Collections of labels added to toolbar" alt="Collections of labels added to toolbar" src="http://intersoftpt.files.wordpress.com/2009/09/1-labels.png?w=300" width="300" height="136" /></a></p>
<div style="clear:both;"></div>
<p>Users can preview the mail merge result in Preview tab. The labels will be automatically replaced with the related data in the data context and users can navigate through the data using the previous and next commands in toolbar.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/09/wte_previewmailmerge.png"><img class="size-medium wp-image-911" title="Preview Mail Merge content" alt="Preview Mail Merge content" src="http://intersoftpt.files.wordpress.com/2009/09/wte_previewmailmerge.png?w=300" width="300" height="218" /></a></p>
<div style="clear:both;"></div>
<p>Users can also send the mail using <em>Send Mail Merge</em> command. Some related properties that need to be configured are:</p>
<ul>
<li><em>EmailField</em>: specifies the field or property in data context that contains email data. </li>
<li><em>From</em>: specifies the email of sender. </li>
<li><em>IsHTML</em>: specifies whether or not the email should be sent as HTML format. </li>
<li><em>MailPriority</em>: specifies the priority status of the email. </li>
<li><em>SMTP</em>: specifies the SMTP server. </li>
<li><em>SubjectExpression</em>: specifies the subject of the email. Labels can be included as the value of this property and they will automatically be replaced with related data when the email is sent. </li>
</ul>
<p><a href="http://intersoftpt.files.wordpress.com/2009/09/2-properties.png"><img class="size-medium wp-image-912" title="Mail Merge configuration" alt="Mail Merge configuration" src="http://intersoftpt.files.wordpress.com/2009/09/2-properties.png?w=300" width="300" height="167" /></a></p>
<div style="clear:both;"></div>
<p>WebTextEditor provides various server-side events that will be invoked when the emails are about to be sent. If you have specific scenarios that need custom actions, these events can be used to implement those actions.</p>
<ul>
<li><em>OnBeforeSendMail</em> event is invoked the emails are sent. </li>
<li><em>OnMailMerge</em> event is invoked when each email is merged with the related data from data context. </li>
<li><em>OnMailMergeCompleted</em> event is invoked when all emails have been merged with the related data from the data context. </li>
<li><em>OnSendMail</em> event is invoked when each email is about to be sent. </li>
<li><em>OnSendMailCompleted</em> event is invoked after all emails are sent. </li>
</ul>
<p>If you set <strong>AutomaticSendMail</strong> property to False, you can specify your own configuration and send mail process in OnSendMail event.</p>
<p></p><pre class="crayon-plain-tag">protected void WebTextEditor1_SendMail(object sender, ISNet.WebUI.WebTextEditor.WebTextEditorSendMailArgs e) 
{ 
   //specify your own configuration 
   e.Cancel = true; // needed to cancel built-in send mail process 
}</pre><p></p>
<p>After all emails are sent, you might need to display specific custom status in WebTextEditor or perform other custom actions in client-side. In this case, you can use <em>OnSendMailCompleted</em> client-side event. In this event, the failed emails data will also be passed as parameters. So, in cases where emails are failed to be sent to recipients, you can perform custom actions to handle the scenario.</p>
<p></p><pre class="crayon-plain-tag">&lt;script type=&quot;text/javascript&quot;&gt; 
   function OnSendMailCompleted(controlId, failed, failedEmails) 
   { 
      var editor = ISGetObject(controlId); 

      if (failed &gt; 0) 
      { 
	 // you can implement custom action to handle this scenario 
      } 
      else 
 	 editor.SetStatus(&quot;All emails are successfully sent at &quot; + new Date() + &quot;.&quot;); 
} 
&lt;/script&gt;</pre><p></p>
<p>If you have feedback regarding this feature, feel free to drop a comment or create a new discussion in our new <a title="Forum" href="http://www.intersoftpt.com/Community" target="_blank">Forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/09/built-in-mail-merge-support-in-webtexteditor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Customize Agenda View in WebScheduler</title>
		<link>http://blog.intersoftsolutions.com/2009/09/customize-agenda-view-in-webscheduler/</link>
		<comments>http://blog.intersoftsolutions.com/2009/09/customize-agenda-view-in-webscheduler/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 15:44:12 +0000</pubDate>
		<dc:creator><![CDATA[intersoftbram]]></dc:creator>
				<category><![CDATA[2009 R1]]></category>
		<category><![CDATA[Agenda view]]></category>
		<category><![CDATA[WebScheduler]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=869</guid>
		<description><![CDATA[There are dozens of new enhancements that we&#8217;ve made in WebScheduler 2.0 SP1. In this post, I&#8217;m going to share a few of the newly added features related to the agenda view in WebScheduler. These new features enable you to customize the navigation and detail information [...]]]></description>
				<content:encoded><![CDATA[<p>There are dozens of new enhancements that we&#8217;ve made in WebScheduler 2.0 SP1. In this post, I&#8217;m going to share a few of the newly added features related to the agenda view in WebScheduler. These new features enable you to customize the navigation and detail information in agenda view.</p>
<p>In the screenshot below, you can notice 3 navigation buttons (Delete Event, Edit Event, and View on my calendar) as well as 2 details (Location and Description). These settings are the default view configuration in WebScheduler, and not customizable before the enhancements.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/08/defaultagendaview1.png"><img class="alignnone size-full wp-image-872" title="DefaultAgendaView" src="http://intersoftpt.files.wordpress.com/2009/08/defaultagendaview1.png" alt="DefaultAgendaView" width="563" height="153" /></a></p>
<p>In WebScheduler SP1, we have added 2 new properties in <strong>AgendaViewSettings</strong> which allows you to customize agenda view&#8217;s navigation and detail information.</p>
<p>These new properties are:</p>
<ol>
<li><strong>DisplayViewOnMyCalendarLink</strong><br />
This property determines whether &#8220;View on my calendar&#8221; button should appear in the view or not. By default this property is set to True.To hide the &#8220;View on my calendar&#8221;, simply set the property to False. The result should look like the below screenshot.<br />
<a href="http://intersoftpt.files.wordpress.com/2009/08/withoutviewonmycalendar.png"><img class="alignnone size-full wp-image-871" title="WithoutViewOnMyCalendar" src="http://intersoftpt.files.wordpress.com/2009/08/withoutviewonmycalendar.png" alt="WithoutViewOnMyCalendar" width="522" height="142" /></a></p>
<p>&#8220;Delete Event&#8221; and &#8220;Edit Event&#8221; button can be customized through <strong>DataEditing</strong> property. For instance, set <strong>AllowEdit </strong>property to False will hide the &#8220;Edit Event&#8221; button.</li>
<li><strong> UseAgendaDetailsCollection</strong><br />
You can customize the information details that will be displayed in agenda view through the new <strong>AgendaDetailsCollection</strong> property. For the collection to take affect,  you would need to set <strong>UseAgendaDetailsCollection</strong> property to true, which instructs WebScheduler to use the details collection instead of the default/built-in details.For an instance, we can hide the default details completely by simply setting the <strong>UseAgendaDetailsCollection</strong> property to true and leave the <strong>AgendaDetailsCollection</strong> empty. The result looks like the following.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/08/useagendacollectiondetails.png"><img class="alignnone size-full wp-image-873" title="UseAgendaCollectionDetails" src="http://intersoftpt.files.wordpress.com/2009/08/useagendacollectiondetails.png" alt="UseAgendaCollectionDetails" width="522" height="101" /></a></p>
<p>The next question would be how to specify custom detail information to be included in agenda view. It is easy as WebScheduler already provide the object model, which can be achieved from both server and client-side.</p>
<p>The following Javascript code shows how you can add custom detail information in the client-side during <strong>Initialization</strong> event. Note that the OnInitialize client-side event is only available in SP1 release.</p>
<p><code>function OnInitialize(controlId)<br />
{<br />
var WebScheduler1 = ISGetObject(controlId);<br />
var agendaDetailsCollection = WebScheduler1.AgendaDetailsCollection;</code></p>
<p><code>var obj = new WebSchedulerAgendaContentDetail();<br />
obj.Caption = "Place";<br />
obj.DataMember = "Location";<br />
agendaDetailsCollection.Add(obj);</code></p>
<p><code>var obj2 = new WebSchedulerAgendaContentDetail();<br />
obj2.Caption = "Information";<br />
obj2.DataMember = "Description";<br />
agendaDetailsCollection.Add(obj2);</code></p>
<p><code> </code><code>var obj3 = new WebSchedulerAgendaContentDetail();<br />
obj3.Caption = "Important";<br />
obj3.DataMember = "Mode";<br />
agendaDetailsCollection.Add(obj3);<br />
}</code></p>
<p>In the code snippet above,  I filled <strong>AgendaDetailsCollection</strong> with 3 details (Location, Description, and Mode) which I would like to show in agenda view. Here is the result.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/08/customizeagendadetailscollection1.png"><img class="alignnone size-full wp-image-875" title="CustomizeAgendaDetailsCollection" src="http://intersoftpt.files.wordpress.com/2009/08/customizeagendadetailscollection1.png" alt="CustomizeAgendaDetailsCollection" width="457" height="143" /></a></li>
</ol>
<p><strong>AgendaViewSettings</strong> can be found in <em><strong>WebScheduler &gt;&gt; ViewSettings</strong></em></p>
<p>That&#8217;s all about agenda view customization enhancement. I hope you enjoyed our new enhancements and get your works done faster!</p>
<p>If you have questions or feedback on  these enhancements, please don&#8217;t hesitate to comment on my post.</p>
<p>Warm Regards,<br />
Budianto Muliawan</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/09/customize-agenda-view-in-webscheduler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Reduce Page Output in WebTextEditor</title>
		<link>http://blog.intersoftsolutions.com/2009/09/reduce-page-output-in-webtexteditor/</link>
		<comments>http://blog.intersoftsolutions.com/2009/09/reduce-page-output-in-webtexteditor/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 14:18:27 +0000</pubDate>
		<dc:creator><![CDATA[erikaa]]></dc:creator>
				<category><![CDATA[2009 R1]]></category>
		<category><![CDATA[page output]]></category>
		<category><![CDATA[Reduce output]]></category>
		<category><![CDATA[toolbar]]></category>
		<category><![CDATA[WebTextEditor]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=882</guid>
		<description><![CDATA[In WebTextEditor, there are three kinds of views that have their own set of toolbars, such as Design view, HTML view, and Preview. Each toolbars are created in server-side and then serialized to client for UI rendering. This will result in a large page output, [...]]]></description>
				<content:encoded><![CDATA[<p>In WebTextEditor, there are three kinds of views that have their own set of toolbars, such as Design view, HTML view, and Preview. Each toolbars are created in server-side and then serialized to client for UI rendering. This will result in a large page output, especially if you have a large number of tool commands in each toolbar.</p>
<p>If you view source in the page, you will find the following toolbar definition in the xml output.</p>
<p>  </p><pre class="crayon-plain-tag">&lt;ToolBar&gt;
   &lt;WebTextEditorToolBar Text=&quot;Formatting&quot; Category=&quot;Formatting&quot;&gt;
      &lt;ToolCommands&gt;
	 &lt;WebTextEditorToolCommand Text=&quot;Bold&quot; DisplayMode=&quot;Image&quot; 
	    Image=&quot;/WebTextEditor/ISRes.axd?E/tb_bold.gif&quot; ToggleGroupName=&quot;Bold&quot; /&gt;
	 &lt;WebTextEditorToolCommand Text=&quot;Italic&quot; CommandType=&quot;Italic&quot; 
	    DisplayMode=&quot;Image&quot; Image=&quot;/WebTextEditor/ISRes.axd?E/tb_italic.gif&quot; 
	    ToggleGroupName=&quot;Italic&quot; /&gt;
	 &lt;WebTextEditorToolCommand Text=&quot;Underline&quot; CommandType=&quot;Underline&quot; 
  	    DisplayMode=&quot;Image&quot; Image=&quot;/WebTextEditor/ISRes.axd?E/tb_underline.gif&quot; 
	    ToggleGroupName=&quot;Underline&quot; /&gt;
	 ...
	 ...
      &lt;/ToolCommands&gt;
   &lt;/WebTextEditorToolBar&gt;
&lt;/ToolBar&gt;</pre><p></p>
<p>The page output will automatically increase if you have more toolbars and more tool commands. We have made many enhancements in the latest WebTextEditor included in Intersoft WebUI Studio 2009 R1 SP1 installer. One of the enhancements is to significantly reduce the page output size due to the huge toolbar definition.</p>
<p>In ToolBarSettings category, we introduced a new property, <strong>SerializationMode</strong>. To prevent breaking changes with the previous implementation, the default value is set to Server. In this case, toolbars and its tool commands will be specified in server-side and serialized to client-side for UI rendering.</p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/09/1-property.png"><img class="size-medium wp-image-883" title="SerializationMode property" alt="SerializationMode property" src="http://intersoftpt.files.wordpress.com/2009/09/1-property.png?w=267" width="267" height="300" /></a></p>
<p>The other value of SerializationMode property which is added in SP1 is <strong>Client</strong>. When Client is selected, the toolbars and its commands will be created in client-side, thus reducing the large toolbar definition that previously affects the page output. <span style="text-decoration:underline;">You can view the page source and see that the toolbar definition is no longer included in the xml output</span>. On the other hands, all toolbar functionalities and behaviors remain the same, thus maintaining the stability achieved in both modes.</p>
<p>In addition to this enhancement, <strong>OnInitializeToolBar</strong> client-side event is added to WebTextEditor. In this event, you can customize the tool command sequence, add new tool command, and remove existing tool command. The object parameter passed to this event includes all ToolBar collections in WebTextEditor, such as ToolBar, HTMLToolBar, PreviewToolBar, and FloatingToolBar. Note that these are toolbars collection, not the toolbar instance itself.</p>
<p></p><pre class="crayon-plain-tag">&lt;script type=&quot;text/javascript&quot;&gt; 
   function WebTextEditor1_OnInitializeToolBar(controlId, args) 
   { 
      var rte = ISGetObject(controlId); 
      //args parameter includes all toolbar collections 
   } 
&lt;/script&gt;</pre><p></p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/09/2-argument.png"><img class="size-medium wp-image-884" title="Argument passed in OnInitializeToolBar event" alt="Argument passed in OnInitializeToolBar event" src="http://intersoftpt.files.wordpress.com/2009/09/2-argument.png?w=300" width="300" height="161" /></a></p>
<p>The object parameter also has some built-in functions which can be easily used to customize the toolbars collection. Each collection can have more than one toolbar and you can add custom toolbars to the existing collection. Simply use AddToolBar function to add the new toolbar to the toolbar collection.</p>
<p>In the following code, two new toolbar are added to ToolBar collection. One toolbar contains Hyperlink and RemoveLink commands, the other toolbar contains Undo and Redo commands.</p>
<p></p><pre class="crayon-plain-tag">&lt;script type=&quot;text/javascript&quot;&gt; 
   function WebTextEditor1_OnInitializeToolBar(controlId, args) 
   { 
      var rte = ISGetObject(controlId);

      // add new toolbars 
      var toolbars = [ 
      { 
	 &quot;Name&quot;: rte.ID + &quot;_tbLink&quot;, &quot;Text&quot;: &quot;Link&quot;, 
	 &quot;Category&quot;: &quot;Custom&quot;, &quot;Commands&quot;: new Array(&quot;Hyperlink&quot;, &quot;RemoveLink&quot;)  
      },
      { 
	 &quot;Name&quot;: rte.ID + &quot;_tbOther&quot;, &quot;Text&quot;: &quot;Other&quot;, 
	 &quot;Category&quot;: &quot;Custom&quot;, &quot;Commands&quot;: new Array(&quot;Undo&quot;, &quot;Redo&quot;)
      }]; 

      args.AddToolBar(args.ToolBar, toolbars); 
   } 
&lt;/script&gt;</pre><p></p>
<p><a href="http://intersoftpt.files.wordpress.com/2009/09/3-add-toolbar.png"><img class="size-full wp-image-885" title="Add New ToolBars" alt="Add New ToolBars" src="http://intersoftpt.files.wordpress.com/2009/09/3-add-toolbar.png" width="544" height="89" /></a></p>
<p>Since each collection can have more than one toolbar, you can use GetToolBar function to get a specific toolbar object using its category and name. In the following code, category is used to get Custom category toolbar. If there are multiple toolbars in Custom category (such as mentioned above), the first toolbar will be returned. In this scenario, tb variable will contains tbLink toolbar instance.</p>
<p></p><pre class="crayon-plain-tag">var tb = args.GetToolBar(&quot;Custom&quot;);</pre><p></p>
<p>If you want to get tbOther toolbar instance, you can use category and name to get a specific toolbar as described in the following code. The tb2 variable will now contains tbOther toolbar instance.</p>
<p></p><pre class="crayon-plain-tag">var tb2 = args.GetToolBar(&quot;Custom&quot;, rte.Id + &quot;_tbOther&quot;);</pre><p></p>
<p>A new command can be added using AddCommand function. You need to specify the toolbar where the new command will be added, the new command, and the position index. If the position index is not specified, the command will be added to the last position in the toolbar. The following code will add a new command, Emoticon, to tbOther toolbar.</p>
<p></p><pre class="crayon-plain-tag">var command1 = { &quot;Name&quot;: &quot;cmdEmoticon&quot;, &quot;Text&quot;: &quot;Emoticon&quot;, 
	&quot;DisplayMode&quot;: &quot;Image&quot;, &quot;Image&quot;: &quot;./Images/smiley1.gif&quot;, 
	&quot;Type&quot;: &quot;ToggleButton&quot;, &quot;ToggleGroupName&quot;: &quot;TaskPane&quot;, 
	&quot;Items&quot; : new ISArray() };

args.AddCommand(tb2, command1);</pre><p></p>
<p>
  <br /><a href="http://intersoftpt.files.wordpress.com/2009/09/4-add-command.png"><img class="size-full wp-image-886" title="Add New Command" alt="Add New Command" src="http://intersoftpt.files.wordpress.com/2009/09/4-add-command.png" width="544" height="24" /></a></p>
<p>
  <br />RemoveCommand function can be used to remove a command. Simply specify the toolbar and the command that will be removed. The following command will remove RemoveLink command from tbLink toolbar. </p>
<p></p>
<p></p><pre class="crayon-plain-tag">var command2 = tb.ToolCommands.GetNamedItem(&quot;cmdRemoveLink&quot;); 
args.RemoveCommand(tb, command2);</pre><p></p>
<p>
  <br /><a href="http://intersoftpt.files.wordpress.com/2009/09/5-remove-command.png"><img class="size-full wp-image-887" title="Remove Command" alt="Remove Command" src="http://intersoftpt.files.wordpress.com/2009/09/5-remove-command.png" width="544" height="24" /></a></p>
<p>Another useful function is MoveCommand function, which can be used to move a command to another position within one toolbar. You need to specify the toolbar, the command name, and the destination index. The following code will move Emoticon command from the last position to the first position in tbOther toolbar.<br />
  </p>
<p></p><pre class="crayon-plain-tag">args.MoveCommand(tb2, &quot;cmdEmoticon&quot;, 0);</pre><p></p>
<p>
  <br /><a href="http://intersoftpt.files.wordpress.com/2009/09/6-move-command.png"><img class="size-full wp-image-888" title="Move Command" alt="Move Command" src="http://intersoftpt.files.wordpress.com/2009/09/6-move-command.png" width="544" height="24" /></a></p>
<p>There is other point to note when this enhancement is enabled. In ToolBarSettings, you can specify the ToolBarMode as Custom and specify your own toolbar definition in XML file. In this case, you are required to use Server serialization mode. Another alternative is to specify the toolbars and commands manually in OnInitializeToolBar client-side event.</p>
<p>Click <a title="here" href="http://www.intersoftpt.com/tdn/downloads/SerializationMode.zip" target="_blank">here </a>to download the sample.</p>
<p>We have other enhancements in WebTextEditor that includes new client-side event, new client-side API, new properties and other points as described in Intersoft WebUI Studio 2009 R1 SP1 Release Notes. Stay tune as we will write more about them in the coming blogs.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2009/09/reduce-page-output-in-webtexteditor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
