tag:blogger.com,1999:blog-120377172024-03-23T17:50:31.368+00:00Charith's BlogCharith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.comBlogger287125tag:blogger.com,1999:blog-12037717.post-51909549969375606292022-02-14T03:20:00.006+00:002022-02-14T04:02:21.942+00:00Azure Storage Account Types<p><b></b></p><div class="separator" style="clear: both; text-align: center;"><b><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhAtrAoFQb1stjaPYcBulRnktoQFucKIpX4O3zCKod0RlZYR08fymZP5CA0loeILVjnz4tAxmPQe3lwP9e_Pp8kwD4tB06xOudEdilnO_1yscAZaSaBR2osA_T34bZgeGd9AaG2-dIy7F_WG5ac5eQsRqpGSUL7jKdSyjZkvxK_nMgXzLDFcc0" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="237" data-original-width="1152" height="198" src="https://blogger.googleusercontent.com/img/a/AVvXsEhAtrAoFQb1stjaPYcBulRnktoQFucKIpX4O3zCKod0RlZYR08fymZP5CA0loeILVjnz4tAxmPQe3lwP9e_Pp8kwD4tB06xOudEdilnO_1yscAZaSaBR2osA_T34bZgeGd9AaG2-dIy7F_WG5ac5eQsRqpGSUL7jKdSyjZkvxK_nMgXzLDFcc0=w968-h198" width="968" /></a></b></div><b><br /></b><h3 style="text-align: left;"><b>Defferent Types of Blobs</b></h3><div><div><ol style="text-align: left;"><li><b>Block blobs</b> store text and binary data. Block blobs are made up of blocks of data that can be managed individually. Block blobs can store up to about 190.7 TiB.</li><li><b>Append blobs</b> are made up of blocks like block blobs, but are optimized for append operations. Append blobs are ideal for scenarios such as logging data from virtual machines.</li><li><b>Page blobs</b> store random access files up to 8 TiB in size. Page blobs store virtual hard drive (VHD) files and serve as disks for Azure virtual machines.</li></ol></div></div><h3 style="text-align: left;"><b>Different Storage Type in Azure</b></h3><h3 style="text-align: left;"><b>Storage V1 (Storage):</b></h3><p></p><p>General purpose storage prior to Azure virtual hard disks. Allows to store un-managed data</p><p>Replication: LRS, ZRS4, GRS, RA-GRS</p><p>If your applications require the Azure classic deployment model, then these accounts are best suited for you</p><p>These accounts deliver the lowest per-gigabyte capacity prices for Azure Storage</p><h3 style="text-align: left;"><b>Storage V2:</b></h3><p>Upgraded version of Storage, with tiering. </p><p>Replication: LRS, ZRS4, GRS, RA-GRS</p><p>These accounts deliver the lowest per-gigabyte capacity prices for Azure Storage</p><p>Tiering</p><p><b>Hot:</b> Lowest access rates, most expensive per GB capacity.</p><p><b>Cold:</b> <span style="background-color: white; color: #1a1a1a; font-family: Merriweather, Georgia, serif; font-size: 16px;">Still low latency, but cheap per GB capacity at higher access rate.</span></p><p><b>Archive:</b> <span style="background-color: white; color: #1a1a1a; font-family: Merriweather, Georgia, serif; font-size: 16px;">The cheapest per GB capacity (~$2.05 per TB per month!), but it</span></p><p>Tiering means that we can move a blob between 3 tiers within the same storage account (not automatic tiering today):</p><p><a href="https://aidanfinn.com/?p=20834" target="_blank">Reference:</a></p><h3 style="text-align: left;"><b>BlobStorage:</b></h3><p>Blob storage account is specialized storage account for <b>storing unstructed object data</b> as block and append appended blobs, but not page blobs.</p><p><a href="https://www.edureka.co/community/40011/different-storage-accounts-there-major-difference-between">Reference:</a></p><h4 style="text-align: left;">What is Azure Blob Storage used for?</h4><p>Azure Blob Storage was designed to serve specific needs. If your business use case needs to store unstructured data like audio, video, images, etc then you should probably go with this option. The objects which are being stored in Blob does not necessarily have an extension.</p><p>The following points describe the use case scenarios:</p><p></p><ol style="text-align: left;"><li>Serving images or documents directly to a browser</li><li>Storing Files for distributed access</li><li>Streaming video and audio</li><li>Writing to log Files</li><li>Storing data for backup, restore, disaster recovery and archiving</li><li>Storing data for analysis by an on-premises or Azure-hosted service</li></ol><div><a href="https://www.serverless360.com/blog/azure-blob-storage-vs-file-storage">Reference:</a></div><p></p><h3 style="text-align: left;"><b>FileStorage:</b></h3><p>Azure Files enables you to set up highly available network file shares that can be accessed by using the standard Server Message Block (SMB) protocol. That means that multiple VMs can share the same files with both read and write access. You can also read the files using the REST interface or the storage client libraries.</p><p>File Storage can be used if your business use case needs to deal mostly with standard File extensions like *.docx, *.png and *.bak then you should probably go with this storage option.</p><p>The following points describe the use case scenarios: </p><p>Replace or supplement on-premises File servers</p><p>“Lift and shift” applications</p><p>Simplify cloud development</p><p><a href="https://docs.microsoft.com/en-us/azure/storage/common/storage-introduction">Reference 1:</a></p><p><a href="https://www.serverless360.com/blog/azure-blob-storage-vs-file-storage">Reference 2:</a></p><h3 style="text-align: left;"><b>BlockBlobStorage:</b></h3><div>https://www.ais.com/how-to-choose-the-right-kind-of-azure-storage-account/</div><p></p><div class="separator" style="clear: both; text-align: center;"><br /><br /></div><br /><br /><p></p>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-44072750803699911032022-02-11T08:21:00.004+00:002022-02-11T08:33:15.613+00:00Metadata Generation Failed - Error - Azure Fuctions Today I encountered with the error, Metadata Generation Failed just after try to add .NET standard project to existing .NET 4.6.2 fleet of projects in solution. <div><br /></div><div>I was trying to add few features to my existing Azure Function V1, in .NET framework</div><div><br /></div><div>My function SDK is: </div><div><ul style="text-align: left;"><li>Microsoft.NET.Sdk.Functions version 1.0.24</li><li>Microsoft.Azure.WebJobs.ServiceBus 2.2.0</li></ul></div><div>Managed to resolve this by deleting the below folder</div><div><br /></div><div>C:\Users\CharithGunasekara\.nuget\packages\microsoft.net.sdk.functions\1.0.24\build\netstandard1.0</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhDV8UHStnfF9A5vT1YsVp8qCXknT-EAkLlp1OlF_Y4bvcl0mKa-h7Bg0Alyrq6EYiy6xfBrNQtJkmO0tvC57eYBzoj4l-EYrTdSwWQfQwvxpwWCju0Sk7Qn1QFczdeUtmoOXG73ddyUXZUyZ5sF2T_J9khZws26CgGFPccBVJnDQAs7YMzhrQ" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="274" data-original-width="1028" src="https://blogger.googleusercontent.com/img/a/AVvXsEhDV8UHStnfF9A5vT1YsVp8qCXknT-EAkLlp1OlF_Y4bvcl0mKa-h7Bg0Alyrq6EYiy6xfBrNQtJkmO0tvC57eYBzoj4l-EYrTdSwWQfQwvxpwWCju0Sk7Qn1QFczdeUtmoOXG73ddyUXZUyZ5sF2T_J9khZws26CgGFPccBVJnDQAs7YMzhrQ=s16000" /></a></div><br /></div><div><a href="https://stackoverflow.com/questions/59295465/getting-metadata-generation-failed-when-building-c-sharp-function-app-in-visua/59300045#59300045" target="_blank">Reference</a></div>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-84441857281131570832020-12-26T23:20:00.014+00:002023-04-22T10:45:25.414+01:00 Implicit Conversion of .NET Objects and Json Converstion from String to .NET Object<p>Implicit Conversion of .NET Objects and Json Converstion from String to .NET Object</p>
<p>Using this method you can assign object to a string value which is the default value depending on environment vairable, and you can converrt string to a object using JSON serialization.</p>
<p>This instrumention is ideal for JSON configuration where it automatically resolve the DEV/UAT/PROD values so that you do not have to worry about configuration changes over multiple files while deployment</p>
<p>Config Value Class</p><p><br /></p>
<pre><code class="language-csharp">using Newtonsoft.Json;using System;
using System.Collections.Generic;
namespace ImplicitConversion
{
[JsonConverter(typeof(ConfigValueConverter))]
class ConfigValue : Dictionary<string, string>
{
readonly string devKey = "DEV", uatKey = "UAT", prodKey = "PROD";
public string DEV
{
get
{
if (ContainsKey(devKey)) return this[devKey];
return default;
}
set
{
if (ContainsKey(devKey)) this[devKey] = value;
else Add(devKey, value);
}
}
public string UAT
{
get
{
if (ContainsKey(uatKey)) return this[uatKey];
return default;
}
set
{
if (ContainsKey(uatKey)) this[uatKey] = value;
else Add(uatKey, value);
}
}
public string PROD
{
get
{
if (ContainsKey(prodKey)) return this[prodKey];
return default;
}
set
{
if (ContainsKey(prodKey)) this[prodKey] = value;
else Add(prodKey, value);
}
}
public string Value
{
get
{
if (Environment.UserName.StartsWith("prod"))
return PROD;
if (Environment.UserName.StartsWith("uat"))
return UAT;
return DEV;
}
set
{
DEV = UAT = PROD = value;
}
}
public static implicit operator string(ConfigValue value)
{
return value.Value;
}
}
}
</code></pre>
<p>Config Value Converter Class</p>
<pre><code class="language-csharp">using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
namespace ImplicitConversion
{
class ConfigValueConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
throw new NotImplementedException();
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
ConfigValue value = new ConfigValue();
try
{
JObject jObject = JObject.Load(reader);
serializer.Populate(jObject.CreateReader(), value);
return value;
}
catch
{
value.Value = reader.Value?.ToString();
return value;
}
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
throw new NotImplementedException();
}
}
}
</code></pre>
<p>Simpile Refernece Class for JSON Serialization</p>
<pre><code class="language-csharp">namespace ImplicitConversion
{
class Configuration
{
public ConfigValue Email { get; set; }
}
}</code></pre>
<p>Program Class to Test</p>
<pre><code class="language-csharp">using Newtonsoft.Json;
using System;
namespace ImplicitConversion
{
class Program
{
static void Main(string[] args)
{
string json = @"{
""Email"": ""no-reply@company.com""
}";
Configuration configuration = JsonConvert.DeserializeObject<configuration>(json);
Console.WriteLine($"DEV value : { configuration.Email.DEV }");
Console.WriteLine($"UAT value : { configuration.Email.UAT }");
Console.WriteLine($"PROD value : { configuration.Email.PROD }");
json = @"{
""Email"": {
""DEV"":""no-reply-DEV@company.com"",
""UAT"":""no-reply-UAT@company.com"",
""PROD"":""no-reply-PROD@company.com""
}
}";
configuration = JsonConvert.DeserializeObject<configuration>(json);
Console.WriteLine($"DEV value : { configuration.Email.DEV }");
Console.WriteLine($"UAT value : { configuration.Email.UAT }");
Console.WriteLine($"PROD value : { configuration.Email.PROD }");
string email = configuration.Email;
Console.WriteLine($"DEV value : { email }");
Console.ReadLine();
}
}
}
</configuration></configuration></code></pre>
Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-9066617426338437282015-04-24T12:06:00.003+01:002015-04-24T12:06:22.573+01:00iPhone Launch Screen Sizes<div dir="ltr" style="text-align: left;" trbidi="on">
iPhone Portrait iOS 8<br />
<br />
Retina HT 5.5 = 1242 X 2208<br />
Retna HD 4.7 = 750 X 1134<br />
<br />
iPhone Landscape iOS 8<br />
<br />
Retina HD 5.5 2208 X 1242<br />
<br />
iPhone Portrait iOS 7,8<br />
<br />
2X 640 X 960<br />
Retina 4 640 x 1136<br />
<br />
iPad Portrate iOS 7,8<br />
<br />
1x 768 X 1024<br />
2x 1536 X 2048<br />
<br />
iPad Landscape iOS 7,8<br />
<br />
1x 1024 X 768<br />
2X 2048 X 1536<br />
<br />
iPhone Portrait iOS 5,6<br />
<br />
1x 320 X 480<br />
2x 640 X 960<br />
Retina 4 640 X 1136<br />
<br />
iPad POrtrait (Without Status Bar) iOS 5,6<br />
<br />
1x 768 X 1004<br />
2X 1536 X 2008<br />
<br />
iPad Portrait iOS 5,6<br />
<br />
1X 768 X 1024<br />
2x 1536 X 2048<br />
<br />
iPad Landscape (Without Status Bar) iOS 5,6<br />
<br />
1X 1024 X 748<br />
2X 2048 X 1496<br />
<br />
iPad Landscapd iOS 5,6<br />
<br />
1x 1024 X 768<br />
2X 2048 X 1536</div>
Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-28432576429650258992012-09-19T06:12:00.002+01:002020-12-26T03:58:24.317+00:00How to crop and compress an bitmap file and load it as a Meta File<div dir="ltr" style="text-align: left;" trbidi="on">
<pre style="background-color: white; background-position: initial initial; background-repeat: initial initial;"><span style="font-family: inherit;"> <span style="color: #2b91af;">Bitmap</span> croppedImage = bitmap.Clone(<span style="color: blue;">new</span> <span style="color: #2b91af;">Rectangle</span>(0, top, bitmap.Width, limit - top), bitmap.PixelFormat);
System.Drawing.<span style="color: #2b91af;">Image</span> cha = image;
<span style="color: #2b91af;">Graphics</span> g = <span style="color: blue;">null</span>;
<span style="color: #2b91af;">ImageCodecInfo</span> imageCodecInfo = <span style="color: blue;">null</span>;
System.Drawing.Imaging.<span style="color: #2b91af;">Encoder</span> encoder;
<span style="color: #2b91af;">EncoderParameter</span> encoderParameter;
<span style="color: #2b91af;">EncoderParameters</span> encoderParameters;
<span style="color: #2b91af;">ImageCodecInfo</span>[] encoders;
encoders = <span style="color: #2b91af;">ImageCodecInfo</span>.GetImageEncoders();
<span style="color: blue;">for</span> (<span style="color: blue;">int</span> j = 0; j < encoders.Length; ++j)
<span style="color: blue;">if</span> (encoders[j].MimeType == <span style="color: #a31515;">"image/tiff"</span>)
imageCodecInfo = encoders[j];
encoder = System.Drawing.Imaging.<span style="color: #2b91af;">Encoder</span>.Compression;
encoderParameters = <span style="color: blue;">new</span> <span style="color: #2b91af;">EncoderParameters</span>(1);
encoderParameter = <span style="color: blue;">new</span> <span style="color: #2b91af;">EncoderParameter</span>(encoder, (<span style="color: blue;">long</span>)<span style="color: #2b91af;">EncoderValue</span>.CompressionLZW);
encoderParameters.Param[0] = encoderParameter;
<span style="color: blue;">string</span> path = <span style="color: blue;">this</span>.TempFileName(<span style="color: #a31515;">"tif"</span>);
croppedImage.Save(path, imageCodecInfo, encoderParameters);
System.Drawing.<span style="color: #2b91af;">Image</span> m = <span style="color: #2b91af;">Metafile</span>.FromFile(path);</span></pre>
<br /></div>
Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-49701105872285050792011-12-17T17:06:00.002+00:002011-12-17T17:06:52.219+00:00How to validate a number between 0-24 with Java Scripts<div dir="ltr" style="text-align: left;" trbidi="on"><pre style="background: white; color: black; font-family: Consolas; font-size: 13;"><span style="background: yellow;"><%</span><span style="color: blue;">@</span> <span style="color: maroon;">Page</span> <span style="color: red;">Language</span><span style="color: blue;">=</span><span style="color: blue;">"C#"</span><span style="color: red;"></span> <span style="background: yellow;">%></span>
<span style="color: blue;"><</span><span style="color: maroon;">html</span> <span style="color: red;">xmlns</span><span style="color: blue;">=</span><span style="color: blue;">"http://www.w3.org/1999/xhtml"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">head</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"Head1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">language</span><span style="color: blue;">=</span><span style="color: blue;">"javascript"</span> <span style="color: red;">type</span><span style="color: blue;">=</span><span style="color: blue;">"text/javascript"</span><span style="color: blue;">></span>
<span style="color: blue;">function</span> checkIt(obj, evt) {
evt = (evt) ? evt : window.event
<span style="color: blue;">var</span> charCode = (evt.which) ? evt.which : evt.keyCode
<span style="color: blue;">if</span> ((charCode < 45 || charCode > 57) && charCode != 8 && charCode != 37 && charCode != 39) {
alert(<span style="color: maroon;">"This field accepts numbers only"</span>)
<span style="color: blue;">return</span> <span style="color: blue;">false</span>
}
<span style="color: blue;">var</span> t = (charCode / 1) - 48;
<span style="color: blue;">var</span> v = obj.value + t;
<span style="color: blue;">var</span> value = v / 1;
<span style="color: blue;">if</span>(value > 24){
alert(<span style="color: maroon;">"Number should be less than 24"</span>);
<span style="color: blue;">return</span> <span style="color: blue;">false</span>;
}
<span style="color: blue;">return</span> <span style="color: blue;">true</span>
}
<span style="color: blue;"></</span><span style="color: maroon;">script</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">head</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">form</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"form1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">div</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">TextBox</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"txtNumber"</span> <span style="color: red;">onKeyPress</span><span style="color: blue;">=</span><span style="color: blue;">'javascript:return checkIt(this, event)'</span> <span style="color: blue;">/></span>
<span style="color: blue;"></</span><span style="color: maroon;">div</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">form</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">html</span><span style="color: blue;">></span>
</pre></div>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-29599006157193052992011-12-14T13:11:00.004+00:002020-12-26T03:55:15.083+00:00How to retain the password in a postback<div dir="ltr" style="text-align: left;" trbidi="on"><pre style="background: white; color: black; font-size: 13;"><span style="font-family: inherit;"><span style="background: none 0% 0% repeat scroll yellow;"><%</span><span style="color: blue;">@</span> <span style="color: maroon;">Page</span> <span style="color: red;">Language</span><span style="color: blue;">=</span><span style="color: blue;">"C#"</span> <span style="background: none 0% 0% repeat scroll yellow;">%></span>
<span style="color: blue;"><</span><span style="color: maroon;">html</span> <span style="color: red;">xmlns</span><span style="color: blue;">=</span><span style="color: blue;">"http://www.w3.org/1999/xhtml"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">head</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">title</span><span style="color: blue;">></span>Test Page<span style="color: blue;"></</span><span style="color: maroon;">title</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;">public</span> <span style="color: blue;">string</span> Password
{
<span style="color: blue;">get</span> { <span style="color: blue;">return</span> ViewState[<span style="color: #a31515;">"Password"</span>] <span style="color: blue;">as</span> <span style="color: blue;">string</span>; }
<span style="color: blue;">set</span> { <span style="color: blue;">this</span>.ViewState[<span style="color: #a31515;">"Password"</span>] = <span style="color: blue;">value</span>; }
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> OnLoad(<span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: blue;">base</span>.OnLoad(e);
<span style="color: blue;">if</span> (<span style="color: blue;">this</span>.IsPostBack)
{
<span style="color: blue;">if</span> (!<span style="color: blue;">string</span>.IsNullOrEmpty(<span style="color: blue;">this</span>.txtPassword.Text))
<span style="color: blue;">this</span>.Password = <span style="color: blue;">this</span>.txtPassword.Text;
<span style="color: blue;">this</span>.txtPassword.Attributes.Add(<span style="color: #a31515;">"value"</span>, <span style="color: blue;">this</span>.Password ?? <span style="color: blue;">string</span>.Empty);
}
}
<span style="color: blue;"></</span><span style="color: maroon;">script</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">head</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">form</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"aspNetForm"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
UserName: <span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">TextBox</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"txtName"</span> <span style="color: blue;">/></span>
Password: <span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">TextBox</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"txtPassword"</span> <span style="color: red;">TextMode</span><span style="color: blue;">=</span><span style="color: blue;">"Password"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">hr</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnSave"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Save"</span> <span style="color: blue;">/></span>
<span style="color: blue;"></</span><span style="color: maroon;">form</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">html</span><span style="color: blue;">></span></span><span style="font-family: Consolas;">
</span></pre></div>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com1tag:blogger.com,1999:blog-12037717.post-33132911251505520822011-12-13T08:38:00.000+00:002011-12-13T08:38:44.509+00:00Html Header Tag Sizes<div dir="ltr" style="text-align: left;" trbidi="on"><ul style="text-align: left;"><li>H1 - 24pt / 32px</li>
<li>H2 - 18pt / 24px</li>
<li>H3 - 14pt / 18px</li>
<li>H4 - 12pt / 15px</li>
<li>H5 - 10pt / 13px</li>
<li>H6 - 8pt / 11px</li>
</ul>Above are the default font sizes in points and their approximate sizes in pixels </div>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-70779138865862849342011-08-19T05:09:00.003+01:002011-08-19T05:11:40.676+01:00How to upload a external image link url and save on the disk<div dir="ltr" style="text-align: left;" trbidi="on"> We can get the use of HttpWebRequest and HttpWebResponse to send the request and get the response. Then response.GetResponseStream() will give us a stream of the image where we can use that stream to create a Image object like Image image = Image.FromStream(stream)<br />
<br />
<b>Markup:</b><br />
<pre style="background: white; color: black; font-family: Consolas; font-size: 13;"><span style="background: yellow;"><%</span><span style="color: blue;">@</span> <span style="color: maroon;">Page</span> <span style="color: red;">Language</span><span style="color: blue;">=</span><span style="color: blue;">"C#"</span> <span style="color: red;">CodeBehind</span><span style="color: blue;">=</span><span style="color: blue;">"Test.aspx.cs"</span> <span style="color: red;">Inherits</span><span style="color: blue;">=</span><span style="color: blue;">"ActiveTest.Test"</span> <span style="background: yellow;">%></span>
<span style="color: blue;"><</span><span style="color: maroon;">html</span> <span style="color: red;">xmlns</span><span style="color: blue;">=</span><span style="color: blue;">"http://www.w3.org/1999/xhtml"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">head</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"Head1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">title</span><span style="color: blue;">></</span><span style="color: maroon;">title</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">head</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">form</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"form1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">div</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">TextBox</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"txtUpload"</span>
<span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"http://www.web-sphere.co.uk/web/websphere/blog/bloggerheader.jpg"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnUpload"</span> <span style="color: red;">OnClick</span><span style="color: blue;">=</span><span style="color: blue;">"Upload"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Upload"</span> <span style="color: blue;">/></span>
<span style="color: blue;"></</span><span style="color: maroon;">div</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">form</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">html</span><span style="color: blue;">></span>
</pre><span style="color: blue;"></span><b>Code: </b><br />
<pre style="background: white; color: black; font-family: Consolas; font-size: 13;"><span style="color: blue;">namespace</span> ActiveTest
{
<span style="color: blue;">public</span> <span style="color: blue;">partial</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Test</span> : <span style="color: #2b91af;">Page</span>
{
<span style="color: blue;">protected</span> <span style="color: blue;">void</span> Upload(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: #2b91af;">HttpWebRequest</span> request = (<span style="color: #2b91af;">HttpWebRequest</span>)<span style="color: #2b91af;">WebRequest</span>.Create(<span style="color: blue;">this</span>.txtUpload.Text);
<span style="color: #2b91af;">HttpWebResponse</span> response = request.GetResponse() <span style="color: blue;">as</span> <span style="color: #2b91af;">HttpWebResponse</span>;
<span style="color: #2b91af;">Stream</span> stream = response.GetResponseStream();
<span style="color: grey;">///</span>
<span style="color: grey;">///</span><span style="color: green;"> use response content type to findout the image type, </span>
<span style="color: grey;">///</span><span style="color: green;"> here I just use jpg to simplify the story.</span>
<span style="color: grey;">///</span><span style="color: green;"> </span>
System.Drawing.<span style="color: #2b91af;">Image</span> image = System.Drawing.<span style="color: #2b91af;">Image</span>.FromStream(stream);
image.Save(<span style="color: blue;">this</span>.Server.MapPath(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"~/Uploads/{0}.jpg"</span>,<span style="color: #2b91af;">Guid</span>.NewGuid())));
}
}
}</pre></div>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-64775750517079252762010-11-16T11:17:00.002+00:002010-11-16T11:17:48.601+00:00How to output web page as MS word document<pre style="font-family: consolas;"><span style="color: blue;">public</span> <span style="color: blue;">partial</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Test</span> : <span style="color: #2b91af;">Page</span>
{
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> Render(<span style="color: #2b91af;">HtmlTextWriter</span> writer)
{
Response.Clear();
Response.Buffer = <span style="color: blue;">true</span>;
Response.ContentType = <span style="color: #a31515;">"application/msword"</span>;
<span style="color: #2b91af;">StringBuilder</span> sb = <span style="color: blue;">new</span> <span style="color: #2b91af;">StringBuilder</span>();
<span style="color: #2b91af;">StringWriter</span> stringWriter = <span style="color: blue;">new</span> <span style="color: #2b91af;">StringWriter</span>(sb);
<span style="color: #2b91af;">HtmlTextWriter</span> htmlTextWriter = <span style="color: blue;">new</span> <span style="color: #2b91af;">HtmlTextWriter</span>(stringWriter);
<span style="color: blue;">base</span>.Render(htmlTextWriter);
Response.Write(sb.ToString());
Response.End();
}
}</pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-45099276039497001552010-11-12T11:41:00.004+00:002020-12-26T04:03:30.075+00:00How to keep track of selected file during a postback.When you select a file and then do a postback, you will lose your selected file. This is because there is no ViewState for posted file in asp.net FileUpload control. This example is to demonstrate an idea of how to save the file in any-postback and if there is a selected file, then we save the file and show the fileName in a hyperlink to download or view,<br />
<b>Example:</b><br />
<pre style="font-family: consolas;"><span style="background: none 0% 0% repeat scroll yellow;"><%</span><span style="color: blue;">@</span> <span style="color: maroon;">Page</span> <span style="color: red;">Language</span><span style="color: blue;">=</span><span style="color: blue;">"C#"</span> <span style="background: none 0% 0% repeat scroll yellow;">%></span>
<span style="color: blue;"><</span><span style="color: maroon;">html</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">head</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"Head1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> OnLoad(<span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: blue;">base</span>.OnLoad(e);
<span style="color: blue;">if</span> (<span style="color: blue;">this</span>.fuFile.HasFile)
{
<span style="color: blue;">string</span> filePath = Server.MapPath(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"~/Uploads/{0}"</span>, <span style="color: blue;">this</span>.fuFile.FileName));
<span style="color: blue;">if</span> (!System.IO.<span style="color: #2b91af;">File</span>.Exists(filePath))
{
<span style="color: blue;">this</span>.fuFile.SaveAs(filePath);
<span style="color: blue;">this</span>.linkSelectedFile.NavigateUrl </pre><pre style="font-family: consolas;"><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span>= <span style="color: blue;">this</span>.ResolveUrl(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"~/Uploads/{0}"</span>, <span style="color: blue;">this</span>.fuFile.FileName));</pre><pre style="font-family: consolas;"> <span style="color: blue;">this</span>.linkSelectedFile.Text = <span style="color: blue;">this</span>.fuFile.FileName;
}
}
}
<span style="color: blue;"></</span><span style="color: maroon;">script</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">head</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">form</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"form1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
Select a File: <span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">FileUpload</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"fuFile"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">HyperLink</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"linkSelectedFile"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">hr</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">DropDownList</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"ddlItems"</span> <span style="color: red;">AutoPostBack</span><span style="color: blue;">=</span><span style="color: blue;">"true"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ListItem</span><span style="color: blue;">></span>Item One<span style="color: blue;"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ListItem</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ListItem</span><span style="color: blue;">></span>Item Two<span style="color: blue;"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ListItem</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">DropDownList</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">form</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">html</span><span style="color: blue;">></span></pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-3814921133365758472010-11-02T17:54:00.001+00:002010-11-02T17:54:32.163+00:00How to disable past days in asp.net calender control<pre style="font-family: consolas;"><span style="background: none repeat scroll 0% 0% yellow;"><%</span><span style="color: blue;">@</span> <span style="color: maroon;">Page</span> <span style="color: red;">Language</span><span style="color: blue;">=</span><span style="color: blue;">"C#"</span><span style="color: red;"></span> <span style="background: none repeat scroll 0% 0% yellow;">%></span>
<span style="color: blue;"><</span><span style="color: maroon;">html</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">head</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"Head1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;">protected</span> <span style="color: blue;">void</span> DisablePastDays(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">DayRenderEventArgs</span> e)
{
<span style="color: blue;">if</span> (e.Day.Date < <span style="color: #2b91af;">DateTime</span>.Now)
{
e.Cell.Enabled = <span style="color: blue;">false</span>;
e.Day.IsSelectable = <span style="color: blue;">false</span>;
e.Cell.BackColor = System.Drawing.<span style="color: #2b91af;">Color</span>.Gray;
}
}
<span style="color: blue;"></</span><span style="color: maroon;">script</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">head</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">form</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"form1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Calendar</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"calDate"</span> <span style="color: red;">OnDayRender</span><span style="color: blue;">=</span><span style="color: blue;">"DisablePastDays"</span> <span style="color: blue;">/></span>
<span style="color: blue;"></</span><span style="color: maroon;">form</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">html</span><span style="color: blue;">></span></pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-53287464928342985082010-11-02T15:26:00.000+00:002010-11-02T15:26:40.556+00:00How to add detail textbox opon the check of a check box<a href="http://www.web-sphere.co.uk/web/websphere/examples/FreeCheckBoxDemo.aspx"><b>Demo:</b></a><br />
<b>Example:</b><br />
<b>Markup:</b><br />
<pre style="font-family: consolas;"><span style="background: none repeat scroll 0% 0% yellow;"><%</span><span style="color: blue;">@</span> <span style="color: maroon;">Page</span> <span style="color: red;">Language</span><span style="color: blue;">=</span><span style="color: blue;">"C#"</span> <span style="background: none repeat scroll 0% 0% yellow;">%></span>
<span style="color: blue;"><</span><span style="color: maroon;">html</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">head</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"Head1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">head</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">form</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"form1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">FreeCheckBox</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span>
<span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"freeCheckBox"</span>
<span style="color: red;">DetailPlaceHolderId</span><span style="color: blue;">=</span><span style="color: blue;">"phDetails"</span>
<span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Are you disabled?"</span>
<span style="color: red;">DetailLabel</span><span style="color: blue;">=</span><span style="color: blue;">"Please please provide details"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">PlaceHolder</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"phDetails"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">hr</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnSave"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Save"</span> <span style="color: blue;">/></span>
<span style="color: blue;"></</span><span style="color: maroon;">form</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">html</span><span style="color: blue;">></span></pre><b>Control:</b><br />
<pre style="font-family: consolas;"><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">FreeCheckBox</span> : <span style="color: #2b91af;">CheckBox</span>
{
<span style="color: blue;">private</span> <span style="color: #2b91af;">TextBox</span> txtDetail;
<span style="color: blue;">private</span> <span style="color: #2b91af;">Panel</span> pnlDetail;
<span style="color: blue;">private</span> <span style="color: blue;">string</span> script = <span style="color: #a31515;">@"</span>
<span style="color: #a31515;"> function ShowHideDetailPanel(detailPanel, source) { </span>
<span style="color: #a31515;"> var panel = document.getElementById(detailPanel);</span>
<span style="color: #a31515;"> if (panel == undefined) return;</span>
<span style="color: #a31515;"> if (source.checked == true)</span>
<span style="color: #a31515;"> panel.style.display = ""block"";</span>
<span style="color: #a31515;"> else</span>
<span style="color: #a31515;"> panel.style.display = ""none"";</span>
<span style="color: #a31515;"> }</span>
<span style="color: #a31515;">"</span>;
<span style="color: blue;">public</span> <span style="color: blue;">string</span> DetailLabel { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }
<span style="color: blue;">public</span> <span style="color: blue;">string</span> Details { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }
<span style="color: blue;">public</span> <span style="color: blue;">string</span> DetailPlaceHolderId { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }
<span style="color: blue;">public</span> <span style="color: blue;">bool</span> IsMultiline { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>; }
<span style="color: blue;">public</span> FreeCheckBox()
{
<span style="color: blue;">this</span>.DetailPlaceHolderId = <span style="color: blue;">string</span>.Empty;
<span style="color: blue;">this</span>.IsMultiline = <span style="color: blue;">false</span>;
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> OnInit(<span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: blue;">base</span>.OnInit(e);
<span style="color: blue;">this</span>.CreateControlHeirarchy();
}
<span style="color: blue;">public</span> <span style="color: blue;">void</span> CreateControlHeirarchy()
{
<span style="color: blue;">this</span>.pnlDetail = <span style="color: blue;">new</span> <span style="color: #2b91af;">Panel</span>() { ID = <span style="color: blue;">string</span>.Concat(<span style="color: blue;">this</span>.ID, <span style="color: #a31515;">"_DetailPanel"</span>), CssClass = <span style="color: #a31515;">"DetailPanel"</span> };
<span style="color: blue;">this</span>.txtDetail = <span style="color: blue;">new</span> <span style="color: #2b91af;">TextBox</span>() { ID = <span style="color: blue;">string</span>.Concat(<span style="color: blue;">this</span>.ID, <span style="color: #a31515;">"_TextBox"</span>),
CssClass = <span style="color: #a31515;">"DetailTextBox"</span>, TextMode = <span style="color: #2b91af;">TextBoxMode</span>.MultiLine };
<span style="color: blue;">if</span> (<span style="color: blue;">this</span>.IsMultiline) <span style="color: blue;">this</span>.txtDetail.TextMode = <span style="color: #2b91af;">TextBoxMode</span>.MultiLine;
<span style="color: blue;">this</span>.pnlDetail.Controls.Add(<span style="color: blue;">new</span> <span style="color: #2b91af;">Label</span>() { Text = <span style="color: blue;">this</span>.DetailLabel, CssClass = <span style="color: #a31515;">"DetailLabel"</span> });
<span style="color: blue;">this</span>.pnlDetail.Controls.Add(<span style="color: blue;">this</span>.txtDetail);
<span style="color: #2b91af;">PlaceHolder</span> phDetail = <span style="color: blue;">this</span>.Page.FindControl(<span style="color: blue;">this</span>.DetailPlaceHolderId) <span style="color: blue;">as</span> <span style="color: #2b91af;">PlaceHolder</span>;
<span style="color: #2b91af;">Control</span> parent = <span style="color: blue;">this</span>.Parent;
<span style="color: blue;">while</span> (phDetail == <span style="color: blue;">null</span>)
{
phDetail = parent.FindControl(<span style="color: blue;">this</span>.DetailPlaceHolderId) <span style="color: blue;">as</span> <span style="color: #2b91af;">PlaceHolder</span>;
<span style="color: blue;">if</span> (phDetail == <span style="color: blue;">null</span>) parent = parent.Parent;
<span style="color: blue;">if</span> (parent == <span style="color: blue;">null</span>) <span style="color: blue;">break</span>;
}
<span style="color: blue;">if</span> (phDetail != <span style="color: blue;">null</span>) phDetail.Controls.Add(pnlDetail);
<span style="color: blue;">this</span>.Attributes.Add(<span style="color: #a31515;">"onclick"</span>,
<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"javascript:ShowHideDetailPanel('{0}', this)"</span>, pnlDetail.ClientID));
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> OnLoad(<span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: blue;">base</span>.OnLoad(e);
<span style="color: blue;">if</span> (<span style="color: blue;">this</span>.Checked)
<span style="color: blue;">this</span>.pnlDetail.Attributes.Add(<span style="color: #a31515;">"style"</span>, <span style="color: #a31515;">"display:block;"</span>);
<span style="color: blue;">else</span>
<span style="color: blue;">this</span>.pnlDetail.Attributes.Add(<span style="color: #a31515;">"style"</span>, <span style="color: #a31515;">"display:none;"</span>);
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">bool</span> LoadPostData(<span style="color: blue;">string</span> postDataKey, <span style="color: #2b91af;">NameValueCollection</span> postCollection)
{
<span style="color: blue;">bool</span> value = <span style="color: blue;">base</span>.LoadPostData(postDataKey, postCollection);
<span style="color: blue;">if</span> (<span style="color: blue;">this</span>.Checked)
<span style="color: blue;">this</span>.Details = <span style="color: blue;">this</span>.txtDetail.Text;
<span style="color: blue;">return</span> value;
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> OnPreRender(<span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: blue;">base</span>.OnPreRender(e);
<span style="color: blue;">this</span>.Page.ClientScript.RegisterClientScriptBlock(
<span style="color: blue;">this</span>.GetType(), <span style="color: blue;">this</span>.GetType().Name, <span style="color: blue;">this</span>.script, <span style="color: blue;">true</span>);
}
}</pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com2tag:blogger.com,1999:blog-12037717.post-8699831246376204172010-11-02T15:09:00.003+00:002010-11-02T15:10:32.244+00:00How to download images<a href="http://www.web-sphere.co.uk/web/websphere/examples/DownloadImagesDemo.aspx"><b>Demo:</b></a><br />
<b>Code:</b><br />
<pre style="font-family: consolas;"><span style="background: none repeat scroll 0% 0% yellow;"><%</span><span style="color: blue;">@</span> <span style="color: maroon;">Page</span> <span style="color: red;">Language</span><span style="color: blue;">=</span><span style="color: blue;">"C#"</span> <span style="background: none repeat scroll 0% 0% yellow;">%></span>
<span style="color: blue;"><</span><span style="color: maroon;">html</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">head</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"Head1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;">public</span> <span style="color: blue;">void</span> DownloadPicture(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: #2b91af;">ImageButton</span> button = sender <span style="color: blue;">as</span> <span style="color: #2b91af;">ImageButton</span>;
<span style="color: blue;">if</span> (button != <span style="color: blue;">null</span>)
{
<span style="color: blue;">string</span> fileName = button.CommandArgument;
<span style="color: blue;">this</span>.Response.AddHeader(<span style="color: #a31515;">"content-disposition"</span>,
<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"attachment;filename={0}"</span>, Path.GetFileName(fileName)));
<span style="color: blue;">this</span>.Response.ContentType = <span style="color: #a31515;">"image/jpg"</span>;
<span style="color: blue;">this</span>.Response.WriteFile(<span style="color: blue;">this</span>.Server.MapPath(<span style="color: #a31515;">"~/Images/"</span> + fileName));
}
}
<span style="color: blue;"></</span><span style="color: maroon;">script</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">head</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">form</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"form1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ImageButton</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnPic1"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Pic 1"</span> <span style="color: red;">CommandArgument</span><span style="color: blue;">=</span><span style="color: blue;">"Image1.jpg"</span>
<span style="color: red;">OnClick</span><span style="color: blue;">=</span><span style="color: blue;">"DownloadPicture"</span> <span style="color: red;">Width</span><span style="color: blue;">=</span><span style="color: blue;">"100"</span> <span style="color: red;">Height</span><span style="color: blue;">=</span><span style="color: blue;">"75"</span> <span style="color: red;">ImageUrl</span><span style="color: blue;">=</span><span style="color: blue;">"~/Images/Image1.jpg"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ImageButton</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnPic2"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Pic 2"</span> <span style="color: red;">CommandArgument</span><span style="color: blue;">=</span><span style="color: blue;">"Image2.jpg"</span>
<span style="color: red;">OnClick</span><span style="color: blue;">=</span><span style="color: blue;">"DownloadPicture"</span> <span style="color: red;">Width</span><span style="color: blue;">=</span><span style="color: blue;">"100"</span> <span style="color: red;">Height</span><span style="color: blue;">=</span><span style="color: blue;">"75"</span> <span style="color: red;">ImageUrl</span><span style="color: blue;">=</span><span style="color: blue;">"~/Images/Image2.jpg"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ImageButton</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnPic3"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Pic 3"</span> <span style="color: red;">CommandArgument</span><span style="color: blue;">=</span><span style="color: blue;">"Image3.jpg"</span>
<span style="color: red;">OnClick</span><span style="color: blue;">=</span><span style="color: blue;">"DownloadPicture"</span> <span style="color: red;">Width</span><span style="color: blue;">=</span><span style="color: blue;">"100"</span> <span style="color: red;">Height</span><span style="color: blue;">=</span><span style="color: blue;">"75"</span> <span style="color: red;">ImageUrl</span><span style="color: blue;">=</span><span style="color: blue;">"~/Images/Image3.jpg"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ImageButton</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnPic4"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Pic 4"</span> <span style="color: red;">CommandArgument</span><span style="color: blue;">=</span><span style="color: blue;">"Image4.jpg"</span>
<span style="color: red;">OnClick</span><span style="color: blue;">=</span><span style="color: blue;">"DownloadPicture"</span> <span style="color: red;">Width</span><span style="color: blue;">=</span><span style="color: blue;">"100"</span> <span style="color: red;">Height</span><span style="color: blue;">=</span><span style="color: blue;">"75"</span> <span style="color: red;">ImageUrl</span><span style="color: blue;">=</span><span style="color: blue;">"~/Images/Image4.jpg"</span><span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ImageButton</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnPic5"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Pic 5"</span> <span style="color: red;">CommandArgument</span><span style="color: blue;">=</span><span style="color: blue;">"Image5.jpg"</span>
<span style="color: red;">OnClick</span><span style="color: blue;">=</span><span style="color: blue;">"DownloadPicture"</span> <span style="color: red;">Width</span><span style="color: blue;">=</span><span style="color: blue;">"100"</span> <span style="color: red;">Height</span><span style="color: blue;">=</span><span style="color: blue;">"75"</span> <span style="color: red;">ImageUrl</span><span style="color: blue;">=</span><span style="color: blue;">"~/Images/Image5.jpg"</span><span style="color: blue;">/></span>
<span style="color: blue;"></</span><span style="color: maroon;">form</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">html</span><span style="color: blue;">></span></pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-58427529718662865172010-11-01T17:02:00.001+00:002010-11-01T17:02:00.150+00:00How to implement a custom default button for a page<pre style="font-family: consolas;"><span style="background: none repeat scroll 0% 0% yellow;"><%</span><span style="color: blue;">@</span> <span style="color: maroon;">Page</span> <span style="color: red;">Language</span><span style="color: blue;">=</span><span style="color: blue;">"C#"</span> <span style="background: none repeat scroll 0% 0% yellow;">%></span>
<span style="color: blue;"><</span><span style="color: maroon;">html</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">head</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"Head1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">type</span><span style="color: blue;">=</span><span style="color: blue;">"text/javascript"</span> <span style="color: red;">src</span><span style="color: blue;">=</span><span style="color: blue;">"http://code.jquery.com/jquery-latest.js"</span><span style="color: blue;">></</span><span style="color: maroon;">script</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">language</span><span style="color: blue;">=</span><span style="color: blue;">"javascript"</span><span style="color: blue;">></span>
$(document).ready(<span style="color: blue;">function</span> () {
$(<span style="color: maroon;">".TextBox"</span>).bind(<span style="color: maroon;">"keyup"</span>, <span style="color: blue;">function</span> (evt) {
evt = (evt) ? evt : window.event
<span style="color: blue;">var</span> charCode = (evt.which) ? evt.which : evt.keyCode
<span style="color: blue;">if</span> (charCode == 13)
__doPostBack(<span style="color: maroon;">'</span><span style="background: none repeat scroll 0% 0% yellow;"><%</span><span style="color: blue;">=</span><span style="color: maroon;"> btnDefault.UniqueID </span><span style="background: none repeat scroll 0% 0% yellow;">%></span><span style="color: maroon;">'</span>, <span style="color: maroon;">''</span>);
<span style="color: blue;">return</span> <span style="color: blue;">true</span>;
});
$(<span style="color: maroon;">".TextBox"</span>).bind(<span style="color: maroon;">"keypress"</span>, <span style="color: blue;">function</span> (evt) {
evt = (evt) ? evt : window.event
<span style="color: blue;">var</span> charCode = (evt.which) ? evt.which : evt.keyCode
<span style="color: blue;">if</span> (charCode == 13)
<span style="color: blue;">return</span> <span style="color: blue;">false</span>;
<span style="color: blue;">return</span> <span style="color: blue;">true</span>;
});
});
<span style="color: blue;"></</span><span style="color: maroon;">script</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;">protected</span> <span style="color: blue;">void</span> Default(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e)
{
Response.Write(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"Default button clicked at {0}"</span>,<span style="color: #2b91af;">DateTime</span>.Now.ToString(<span style="color: #a31515;">"hh:mm:ss"</span>)));
}
<span style="color: blue;"></</span><span style="color: maroon;">script</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">head</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">form</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"form1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">TextBox</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"TextBox1"</span> <span style="color: red;">CssClass</span><span style="color: blue;">=</span><span style="color: blue;">"TextBox"</span> <span style="color: red;">onkeypress</span><span style="color: blue;">=</span><span style="color: blue;">"return false"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">TextBox</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"TextBox2"</span> <span style="color: red;">CssClass</span><span style="color: blue;">=</span><span style="color: blue;">"TextBox"</span> <span style="color: red;">onkeypress</span><span style="color: blue;">=</span><span style="color: blue;">"return false"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">TextBox</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"TextBox3"</span> <span style="color: red;">CssClass</span><span style="color: blue;">=</span><span style="color: blue;">"TextBox"</span> <span style="color: red;">onkeypress</span><span style="color: blue;">=</span><span style="color: blue;">"return false"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">TextBox</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"TextBox4"</span> <span style="color: red;">CssClass</span><span style="color: blue;">=</span><span style="color: blue;">"TextBox"</span> <span style="color: red;">onkeypress</span><span style="color: blue;">=</span><span style="color: blue;">"return false"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">TextBox</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"TextBox5"</span> <span style="color: red;">CssClass</span><span style="color: blue;">=</span><span style="color: blue;">"TextBox"</span> <span style="color: red;">onkeypress</span><span style="color: blue;">=</span><span style="color: blue;">"return false"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">hr</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnDefault"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Default"</span> <span style="color: red;">OnClick</span><span style="color: blue;">=</span><span style="color: blue;">"Default"</span> <span style="color: red;">UseSubmitBehavior</span><span style="color: blue;">=</span><span style="color: blue;">"false"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"Button1"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Other"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"Button2"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Other"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"Button3"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Other"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"Button4"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Other"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"Button5"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Other"</span> <span style="color: blue;">/></span>
<span style="color: blue;"></</span><span style="color: maroon;">form</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">html</span><span style="color: blue;">></span></pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-41474491599606479272010-11-01T15:28:00.001+00:002010-11-02T15:29:36.614+00:00How to add select other/details textbox next to selection<ol><li><a href="http://www.charith.gunasekara.web-sphere.co.uk/2010/09/how-to-handle-out-or-range-values-with.html">How to add select other textbox next to DropDownList?</a> </li>
<li><a href="http://www.charith.gunasekara.web-sphere.co.uk/2010/11/how-to-add-detail-textbox-opon-check-of.html">How to add detials textbox next to checkbox when check of a checkbox?</a></li>
</ol>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-50819699659764473252010-11-01T10:02:00.001+00:002010-11-01T10:03:02.291+00:00How to remember the TreeView selection during postbacksMarkup:<br />
<pre style="font-family: consolas;"><span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">TreeView</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"trvItems"</span> <span style="color: red;">EnableClientScript</span><span style="color: blue;">=</span><span style="color: blue;">"false"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnSave"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Save"</span> <span style="color: blue;">/></span></pre> Code:<br />
<pre style="font-family: consolas;"><span style="color: blue;">public</span> <span style="color: blue;">partial</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Test</span> : <span style="color: #2b91af;">Page</span>
{
<span style="color: blue;">protected</span> <span style="color: #2b91af;">List</span><<span style="color: blue;">string</span>> SelectedNodes
{
<span style="color: blue;">get</span> { <span style="color: blue;">return</span> (<span style="color: #2b91af;">List</span><<span style="color: blue;">string</span>>)(ViewState[<span style="color: #a31515;">"TREENODECOLLECTION"</span>] ?? (ViewState[<span style="color: #a31515;">"TREENODECOLLECTION"</span>] = <span style="color: blue;">new</span> <span style="color: #2b91af;">List</span><<span style="color: blue;">string</span>>())); }
<span style="color: blue;">set</span> { ViewState[<span style="color: #a31515;">"TREENODECOLLECTION"</span>] = <span style="color: blue;">value</span>; }
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> OnLoad(<span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: blue;">base</span>.OnLoad(e);
<span style="color: blue;">this</span>.trvItems.TreeNodeExpanded += <span style="color: blue;">new</span> <span style="color: #2b91af;">TreeNodeEventHandler</span>(TreeNodeExpanded);
<span style="color: blue;">this</span>.trvItems.TreeNodeCollapsed += <span style="color: blue;">new</span> <span style="color: #2b91af;">TreeNodeEventHandler</span>(TreeNodeCollapsed);
<span style="color: blue;">this</span>.trvItems.SelectedNodeChanged += <span style="color: blue;">new</span> <span style="color: #2b91af;">EventHandler</span>(SelectedNodeChanged);
<span style="color: blue;">if</span> (!<span style="color: blue;">this</span>.IsPostBack)
{
<span style="color: blue;">this</span>.InitalizeTreeView();
<span style="color: blue;">this</span>.trvItems.DataBind();
<span style="color: blue;">this</span>.trvItems.CollapseAll();
<span style="color: blue;">this</span>.SelectedNodes = <span style="color: blue;">new</span> <span style="color: #2b91af;">List</span><<span style="color: blue;">string</span>>();
}
<span style="color: blue;">else</span>
<span style="color: blue;">this</span>.SetExapandNodes(<span style="color: blue;">this</span>.trvItems.Nodes);
}
<span style="color: blue;">protected</span> <span style="color: blue;">void</span> InitalizeTreeView()
{
}
<span style="color: blue;">protected</span> <span style="color: blue;">void</span> SelectedNodeChanged(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e)
{
}
<span style="color: blue;">protected</span> <span style="color: blue;">void</span> TreeNodeCollapsed(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">TreeNodeEventArgs</span> e)
{
<span style="color: blue;">this</span>.SelectedNodes.Remove(e.Node.Value);
<span style="color: blue;">this</span>.SetExapandNodes(<span style="color: blue;">this</span>.trvItems.Nodes);
}
<span style="color: blue;">protected</span> <span style="color: blue;">void</span> TreeNodeExpanded(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">TreeNodeEventArgs</span> e)
{
<span style="color: blue;">this</span>.SelectedNodes.Add(e.Node.Value);
<span style="color: blue;">this</span>.SetExapandNodes(<span style="color: blue;">this</span>.trvItems.Nodes);
}
<span style="color: blue;">protected</span> <span style="color: blue;">void</span> SetExapandNodes(<span style="color: #2b91af;">TreeNodeCollection</span> nodes)
{
<span style="color: blue;">foreach</span>(<span style="color: #2b91af;">TreeNode</span> n <span style="color: blue;">in</span> nodes)
{
<span style="color: blue;">if</span>(<span style="color: blue;">this</span>.SelectedNodes.Exists(x=>x.Equals(n.Value)))
n.Expand();
<span style="color: blue;">if</span>(n.ChildNodes.Count>0)
<span style="color: blue;">this</span>.SetExapandNodes(n.ChildNodes);
}
}
}</pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-35959451146390172312010-10-28T12:04:00.001+01:002010-10-28T12:04:48.934+01:00How to change a theme dynamicallyWe need to assign a theme in the page preInit event to legimately change the theme dynamically.<br />
<pre mce_style="font-family: consolas;" style="font-family: consolas;"><span mce_style="color: blue;" style="color: blue;">protected</span> <span mce_style="color: blue;" style="color: blue;">override</span> <span mce_style="color: blue;" style="color: blue;">void</span> OnInit(<span mce_style="color: #2b91af;" style="color: #2b91af;">EventArgs</span> e)
{
<span mce_style="color: blue;" style="color: blue;">this</span>.Theme = <span mce_style="color: #a31515;" style="color: #a31515;">"Blue"</span>;
<span mce_style="color: blue;" style="color: blue;">base</span>.OnInit(e);
}</pre>However there are couple of challanges if you let users to chose the theme. First one is by the pre-init phase, there are not values loaded for page controls has LoadViewState has not yet been executed. <br />
<b>Solution 1:</b> You can use Request.Form[...] collection.<br />
<pre mce_style="font-family: consolas;" style="font-family: consolas;"><span mce_style="color: blue;" style="color: blue;">protected</span> <span mce_style="color: blue;" style="color: blue;">override</span> <span mce_style="color: blue;" style="color: blue;">void</span> OnInit(<span mce_style="color: #2b91af;" style="color: #2b91af;">EventArgs</span> e)
{
<span mce_style="color: blue;" style="color: blue;">string</span> theme = <span mce_style="color: blue;" style="color: blue;">this</span>.Request.Form[ddlTheme.UniqueID];
<span mce_style="color: blue;" style="color: blue;">if</span> (!<span mce_style="color: blue;" style="color: blue;">string</span>.IsNullOrEmpty(theme))
<span mce_style="color: blue;" style="color: blue;">this</span>.Theme = theme;
<span mce_style="color: blue;" style="color: blue;">else</span>
<span mce_style="color: blue;" style="color: blue;">this</span>.Theme = <span mce_style="color: #a31515;" style="color: #a31515;">"Default"</span>;
<span mce_style="color: blue;" style="color: blue;">base</span>.OnInit(e);
}</pre><b>Solution 2: </b>You can use a Session variable but we have to re-execute the page to see the session variable.<br />
<pre mce_style="font-family: consolas;" style="font-family: consolas;"><span mce_style="color: blue;" style="color: blue;">protected</span> <span mce_style="color: blue;" style="color: blue;">override</span> <span mce_style="color: blue;" style="color: blue;">void</span> OnInit(<span mce_style="color: #2b91af;" style="color: #2b91af;">EventArgs</span> e)
{
<span mce_style="color: blue;" style="color: blue;">string</span> theme = Session[<span mce_style="color: #a31515;" style="color: #a31515;">"theme"</span>] <span mce_style="color: blue;" style="color: blue;">as</span> <span mce_style="color: blue;" style="color: blue;">string</span>;
<span mce_style="color: blue;" style="color: blue;">if</span> (!<span mce_style="color: blue;" style="color: blue;">string</span>.IsNullOrEmpty(theme))
<span mce_style="color: blue;" style="color: blue;">this</span>.Theme = theme;
<span mce_style="color: blue;" style="color: blue;">else</span>
<span mce_style="color: blue;" style="color: blue;">this</span>.Theme = <span mce_style="color: #a31515;" style="color: #a31515;">"Default"</span>;
<span mce_style="color: blue;" style="color: blue;">base</span>.OnInit(e);
}
<span mce_style="color: blue;" style="color: blue;">protected</span> <span mce_style="color: blue;" style="color: blue;">void</span> ddlTheme_SelectedIndexChanged(<span mce_style="color: blue;" style="color: blue;">object</span> sender, <span mce_style="color: #2b91af;" style="color: #2b91af;">EventArgs</span> e)
{
Session[<span mce_style="color: #a31515;" style="color: #a31515;">"Theme"</span>] = <span mce_style="color: blue;" style="color: blue;">this</span>.ddlTheme.SelectedValue;
Server.Transfer(<span mce_style="color: #a31515;" style="color: #a31515;">"Page.aspx"</span>);
}</pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-86027449254287541652010-10-28T11:35:00.005+01:002010-10-28T11:42:13.118+01:00First request takes long time in a Asp.net web application<b>Application Pool recycle time interval.</b><br />
When you deploy an Asp.net web application to IIS, as you already know each application get assigned to an Application Pool. Each application pool has a recycle interval.<br />
<u>InetMgr-> Application Pools -> [your application pool ] -> Advanced Settings</u><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_dcFq8SEJta4/TMlR6eAaQAI/AAAAAAAAANA/9VQ7mr5sIM4/s1600/CropperCapture%5B42%5D.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/_dcFq8SEJta4/TMlR6eAaQAI/AAAAAAAAANA/9VQ7mr5sIM4/s320/CropperCapture%5B42%5D.png" width="265" /></a></div><br />
When the application pool execution time exceeds its configured recycle time interval application pools get recycled. When a application pool get recycled all the temporary classes which represents aspx pages need to be recreated and also all the application need re-initialize. This process may cause your uses experience long time delays for the first request to the server. <br />
<b>Application Pool ideal timeout.</b><br />
Application Pool has ideal timeout, which means if there are no requests to the application pool for a time greater than ideal timeout IIS shutdown the Application Pool to free up resources. Zero means no timeout. So if you experience delays due to ideal timeout, you can disable ideal timeout by setting value to zero. But most of the shared hosts have this value configured to maximize the efficiency of resource utilization.<br />
<u>netMgr-> Application Pools -> [your application pool ] -> Advanced Settings</u> <br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_dcFq8SEJta4/TMlR_-K-tqI/AAAAAAAAANE/h8YhEt6IT6M/s1600/CropperCapture%5B46%5D.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/_dcFq8SEJta4/TMlR_-K-tqI/AAAAAAAAANE/h8YhEt6IT6M/s320/CropperCapture%5B46%5D.png" width="263" /></a></div><br />
<b>With asp.net 4.0</b><br />
When you redeploy the site, it is inevitable for the first request it takes time as application need to re-initialize. Fortunately in Asp.net 4.0 there is a option to wake up an application immediately after you deploy the application.<br />
<pre style="font-family: consolas;"><span style="color: blue;"><</span><span style="color: #a31515;">applicationpools</span><span style="color: blue;">></span>
<span style="color: blue;"> <</span><span style="color: #a31515;">add</span><span style="color: blue;"> </span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">MyApplicationPool</span>"<span style="color: blue;"> </span><span style="color: red;">startMode</span><span style="color: blue;">=</span>"<span style="color: blue;">AlwaysRunning</span>"<span style="color: blue;"> /></span>
<span style="color: blue;"></</span><span style="color: #a31515;">applicationpools</span><span style="color: blue;">></span></pre><a href="http://www.asp.net/learn/whitepapers/aspnet4#0.2__Toc253429241">Please see this section for more information.</a>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com1tag:blogger.com,1999:blog-12037717.post-9063122377029423952010-10-21T15:07:00.000+01:002010-10-21T15:07:05.717+01:00Useful regular expressionsMatch style tag in VS: style=(("(([:b]*[^"]*[\n]*[:b]*)*)")|('(([:b]*[^']*[\n]*[:b]*)*)'))Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-70447757788529973562010-10-17T15:13:00.005+01:002010-10-17T16:08:13.125+01:00How to show budy cursor while processing a request<hr />Please note this example deos not work in Mozilla Firefox. <br />
<br />
<a target="_blank" href="http://www.web-sphere.co.uk/web/websphere/examples/ShowBudyCursorWhileProcessing.aspx"><span style="font-size: large;">Demo:</span></a><br />
<br />
<pre style="font-family: consolas;"><span style="background: none repeat scroll 0% 0% yellow;"><%</span><span style="color: blue;">@</span> <span style="color: maroon;">Page</span> <span style="color: red;">Language</span><span style="color: blue;">=</span><span style="color: blue;">"C#"</span> <span style="background: none repeat scroll 0% 0% yellow;">%></span>
<span style="color: blue;"><</span><span style="color: maroon;">html</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">head</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"Head1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;">public</span> <span style="color: blue;">void</span> Save(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e)
{
System.Threading.<span style="color: #2b91af;">Thread</span>.Sleep(5000);
<span style="color: blue;">this</span>.lblLastUpdate.Text = <span style="color: #2b91af;">DateTime</span>.Now.ToString(<span style="color: #a31515;">"hh:mm:ss"</span>);
}
<span style="color: blue;"></</span><span style="color: maroon;">script</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">head</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">form</span> <span style="color: red;">id</span><span style="color: blue;">=</span><span style="color: blue;">"form1"</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ScriptManager</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"pageScriptManager"</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">ScriptManager</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">language</span><span style="color: blue;">=</span><span style="color: blue;">"javascript"</span> <span style="color: red;">type</span><span style="color: blue;">=</span><span style="color: blue;">"text/jscript"</span><span style="color: blue;">></span>
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(<span style="color: blue;">function</span> () {
document.body.style.cursor = <span style="color: maroon;">"auto"</span>;
});
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(<span style="color: blue;">function</span> () {
document.body.style.cursor = <span style="color: maroon;">"wait"</span>;
});
<span style="color: blue;"></</span><span style="color: maroon;">script</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">UpdatePanel</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"upnlInsertContent"</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">ContentTemplate</span><span style="color: blue;">></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Button</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"btnSave"</span> <span style="color: red;">OnClick</span><span style="color: blue;">=</span><span style="color: blue;">"Save"</span> <span style="color: red;">Text</span><span style="color: blue;">=</span><span style="color: blue;">"Save"</span> <span style="color: blue;">/></span>
<span style="color: blue;"><</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">Label</span> <span style="color: red;">runat</span><span style="color: blue;">=</span><span style="color: blue;">"server"</span> <span style="color: red;">ID</span><span style="color: blue;">=</span><span style="color: blue;">"lblLastUpdate"</span> <span style="color: blue;">/></span>
<span style="color: blue;"></</span><span style="color: maroon;">ContentTemplate</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">asp</span><span style="color: blue;">:</span><span style="color: maroon;">UpdatePanel</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">form</span><span style="color: blue;">></span>
<span style="color: blue;"></</span><span style="color: maroon;">body</span><span style="color: blue;">></span>
<span style="color: blu e;"></</span><span style="color: maroon;">html</span><span style="color: blue;">></span></pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com1tag:blogger.com,1999:blog-12037717.post-15626055151034362072010-10-17T13:21:00.005+01:002010-10-17T14:10:30.039+01:00Page.RegisterRequiresRaiseEventWhen you implement IPostBackEventHanlder RaisePostBackEvent method get automatically get called only if you postback the form with _EVENTTARGET equal to UniqueID of the web control [__doPostBack(‘ctrl001$mybutton1’,’’)]. But if you need to develop complex postback enable control which will invoke the RaisePostBackEvent as a response to custom __EVENTTRAGETs [__doPostBack(‘custom_target’)] not the UniqueID of the control, then you can register the complex postback enable control with Page.RegisterRequiresRaiseEvent<br />
<br />
<b>Example 1: </b>This control postback with the __EVENTTARGET, which is equal UniqueID of the control. This picks up the RaisePostBackEvent method automatically.<b> </b><br />
<pre style="font-family: consolas;"><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">CustomButton</span> : <span style="color: #2b91af;">WebControl</span>, <span style="color: #2b91af;">IPostBackEventHandler</span>
{
<span style="color: blue;">public</span> <span style="color: blue;">event</span> <span style="color: #2b91af;">EventHandler</span> Click;
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> RenderContents(<span style="color: #2b91af;">HtmlTextWriter</span> writer)
{
writer.Write(<span style="color: blue;">string</span>.Format(
<span style="color: #a31515;">@"<input type=""button"" name=""{0}"" id=""{1}"" </span>
<span style="color: #a31515;"> value=""Click"" onclick=""javascript:__doPostBack('{0}','')"" />"</span>,
<span style="color: blue;">this</span>.UniqueID, <span style="color: blue;">this</span>.ClientID));
}
<span style="color: blue;">public</span> <span style="color: blue;">void</span> RaisePostBackEvent(<span style="color: blue;">string</span> eventArgument)
{
<span style="color: blue;">if</span> (<span style="color: blue;">this</span>.Click != <span style="color: blue;">null</span>)
<span style="color: blue;">this</span>.Click(<span style="color: blue;">this</span>, <span style="color: blue;">new</span> <span style="color: #2b91af;">EventArgs</span>());
}
}</pre><b>Example 2:</b> This control postback with the __EVENTTARGET which is NOT equal to UniqueID of the control. So RaisePostBackEvent will NOT get raised automatically. Thus we need to call Page.RegisterRequiresRaiseEvent explicitly. However this approach does not pick up the eventArgument from the postback call.<br />
<pre style="font-family: consolas;"><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">ComplexButton</span> : <span style="color: #2b91af;">WebControl</span>, <span style="color: #2b91af;">IPostBackEventHandler</span>
{
<span style="color: blue;">public</span> <span style="color: blue;">event</span> <span style="color: #2b91af;">EventHandler</span> Click;
<span style="color: blue;">public</span> <span style="color: blue;">void</span> RaisePostBackEvent(<span style="color: blue;">string</span> eventArgument)
{
<span style="color: blue;">if</span> (<span style="color: blue;">this</span>.Click != <span style="color: blue;">null</span>)
<span style="color: blue;">this</span>.Click(<span style="color: blue;">this</span>, <span style="color: blue;">new</span> <span style="color: #2b91af;">EventArgs</span>());
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> OnLoad(<span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: blue;">base</span>.OnLoad(e);
<span style="color: blue;">this</span>.Page.RegisterRequiresRaiseEvent(<span style="color: blue;">this</span>);
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> RenderContents(<span style="color: #2b91af;">HtmlTextWriter</span> writer)
{
writer.Write(<span style="color: #a31515;">"<div>"</span>);
writer.Write(<span style="color: blue;">string</span>.Format(
<span style="color: #a31515;">@"<input type=""button"" name=""{0}"" id=""{1}"" </span>
<span style="color: #a31515;"> value=""Save"" onclick=""javascript:__doPostBack('{0}','')"" />"</span>,
<span style="color: blue;">this</span>.UniqueID + <span style="color: #a31515;">"$Name"</span>, <span style="color: blue;">this</span>.ClientID + <span style="color: #a31515;">"_Name"</span>));
writer.Write(<span style="color: blue;">string</span>.Format(
<span style="color: #a31515;">@"<input type=""button"" name=""{0}"" id=""{1}"" </span>
<span style="color: #a31515;"> value=""Edit"" onclick=""javascript:__doPostBack('{0}','')"" />"</span>,
<span style="color: blue;">this</span>.UniqueID + <span style="color: #a31515;">"$Age"</span>, <span style="color: blue;">this</span>.ClientID + <span style="color: #a31515;">"_Age"</span>));
writer.Write(<span style="color: #a31515;">"</div>"</span>);
}
}</pre><br />
<b>Example 3:</b> If you need to map different buttons inside the same web control to different event, it is better to use same name as the custom controls UniqueID for the __EVENTTARGET and use eventArgument to distinguish which button get clicked.<br />
<pre style="font-family: consolas;"><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">ComplexButton</span> : <span style="color: #2b91af;">WebControl</span>, <span style="color: #2b91af;">IPostBackEventHandler</span>
{
<span style="color: blue;">public</span> <span style="color: blue;">event</span> <span style="color: #2b91af;">EventHandler</span> Save;
<span style="color: blue;">public</span> <span style="color: blue;">event</span> <span style="color: #2b91af;">EventHandler</span> Edit;
<span style="color: blue;">public</span> <span style="color: blue;">void</span> RaisePostBackEvent(<span style="color: blue;">string</span> eventArgument)
{
<span style="color: blue;">if</span> (<span style="color: blue;">string</span>.IsNullOrEmpty(eventArgument)) <span style="color: blue;">return</span>;
<span style="color: blue;">if</span> (eventArgument.Equals(<span style="color: #a31515;">"Save"</span>))
{
<span style="color: blue;">if</span> (<span style="color: blue;">this</span>.Save != <span style="color: blue;">null</span>)
<span style="color: blue;">this</span>.Save(<span style="color: blue;">this</span>, <span style="color: blue;">new</span> <span style="color: #2b91af;">EventArgs</span>());
}
<span style="color: blue;">else</span> <span style="color: blue;">if</span> (eventArgument.Equals(<span style="color: #a31515;">"Edit"</span>))
{
<span style="color: blue;">if</span> (<span style="color: blue;">this</span>.Edit != <span style="color: blue;">null</span>)
<span style="color: blue;">this</span>.Edit(<span style="color: blue;">this</span>, <span style="color: blue;">new</span> <span style="color: #2b91af;">EventArgs</span>());
}
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> RenderContents(<span style="color: #2b91af;">HtmlTextWriter</span> writer)
{
writer.Write(<span style="color: #a31515;">"<div>"</span>);
writer.Write(<span style="color: blue;">string</span>.Format(
<span style="color: #a31515;">@"<input type=""button"" name=""{0}"" id=""{1}"" </span>
<span style="color: #a31515;"> value=""Save"" onclick=""javascript:__doPostBack('{0}','Save')"" />"</span>,
<span style="color: blue;">this</span>.UniqueID, <span style="color: blue;">this</span>.ClientID + <span style="color: #a31515;">"_Name"</span>));
writer.Write(<span style="color: blue;">string</span>.Format(
<span style="color: #a31515;">@"<input type=""button"" name=""{0}"" id=""{1}"" </span>
<span style="color: #a31515;"> value=""Edit"" onclick=""javascript:__doPostBack('{0}','Edit')"" />"</span>,
<span style="color: blue;">this</span>.UniqueID, <span style="color: blue;">this</span>.ClientID + <span style="color: #a31515;">"_Age"</span>));
writer.Write(<span style="color: #a31515;">"</div>"</span>);
}
}</pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com2tag:blogger.com,1999:blog-12037717.post-34790626481303576422010-10-17T11:57:00.002+01:002010-10-17T12:43:22.085+01:00Page RegisterRequiresPostBack method.When you implement a custom control, only if you are implementing IPostBackDataHandler, the LoadPostData method get automatically get called only if you add an input control with the same name as the custom control’s UniqueID.<b> If you don’t want to add a input control with a name equal to custom controls UniqueID property, then you can explicitly register custom control to invoke LoadPostData method by registering with RegisterRequiresPostBack(...) method</b>.<br />
<b>Example 1:</b> <u>This control renders an input control with a name equal to custom controls UniqueID</u> property.<br />
<pre style="font-family: consolas;"><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">CustomTextBox</span> : <span style="color: #2b91af;">WebControl</span>, <span style="color: #2b91af;">IPostBackDataHandler</span>
{
<span style="color: blue;">public</span> <span style="color: blue;">bool</span> LoadPostData(<span style="color: blue;">string</span> postDataKey, <span style="color: #2b91af;">NameValueCollection</span> postCollection)
{
<span style="color: grey;">///</span>
<span style="color: grey;">///</span><span style="color: green;"> automatically invoked as we have a </span>
<span style="color: grey;">///</span><span style="color: green;"> html input control with a name equal to</span>
<span style="color: grey;">///</span><span style="color: green;"> web controls UniqueID</span>
<span style="color: grey;">///</span>
<span style="color: blue;">string</span> text = postCollection[postDataKey];
<span style="color: blue;">return</span> <span style="color: blue;">true</span>;
}
<span style="color: blue;">public</span> <span style="color: blue;">void</span> RaisePostDataChangedEvent()
{
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> RenderContents(<span style="color: #2b91af;">HtmlTextWriter</span> writer)
{
writer.Write(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"<input type=\"input\" name=\"{0}\" id=\"{1}\" />"</span>, <span style="color: blue;">this</span>.UniqueID, <span style="color: blue;">this</span>.ClientID));
}
}</pre><b>Example 2: </b><u>This control <b>does not</b> render an input control with a name equal to custom controls UniqueID</u> property. Thus we need RegisterRequiresPostBack call in the load method with the parameter of self.<br />
<pre style="font-family: consolas;"><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">ComplexControl</span> : <span style="color: #2b91af;">WebControl</span>, <span style="color: #2b91af;">IPostBackDataHandler</span>
{
<span style="color: blue;">public</span> <span style="color: blue;">bool</span> LoadPostData(<span style="color: blue;">string</span> postDataKey, <span style="color: #2b91af;">NameValueCollection</span> postCollection)
{
<span style="color: grey;">///</span>
<span style="color: grey;">///</span><span style="color: green;"> will NOT get automatically invoked </span>
<span style="color: grey;">///</span><span style="color: green;"> because we dont have input control with name</span>
<span style="color: grey;">///</span><span style="color: green;"> equal to web controls UniqueID</span>
<span style="color: grey;">///</span><span style="color: green;"> THUS we need to RegisterRequiresPostBack call</span>
<span style="color: grey;">///</span><span style="color: green;"> </span>
<span style="color: blue;">string</span> name = postCollection[<span style="color: blue;">this</span>.UniqueID + <span style="color: #a31515;">"$Name"</span>];
<span style="color: blue;">string</span> age = postCollection[<span style="color: blue;">this</span>.UniqueID + <span style="color: #a31515;">"$Age"</span>];
<span style="color: blue;">return</span> <span style="color: blue;">true</span>;
}
<span style="color: blue;">public</span> <span style="color: blue;">void</span> RaisePostDataChangedEvent()
{
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> OnLoad(<span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: blue;">base</span>.OnLoad(e);
<span style="color: blue;">this</span>.Page.RegisterRequiresPostBack(<span style="color: blue;">this</span>);
}
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> RenderContents(<span style="color: #2b91af;">HtmlTextWriter</span> writer)
{
writer.Write(<span style="color: #a31515;">"<div>"</span>);
writer.Write(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"Name: <input type=\"input\" name=\"{0}\" id=\"{1}\" />"</span>,
<span style="color: blue;">this</span>.UniqueID + <span style="color: #a31515;">"$Name"</span>, <span style="color: blue;">this</span>.ClientID + <span style="color: #a31515;">"_Name"</span>));
writer.Write(<span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"Age: <input type=\"input\" name=\"{0}\" id=\"{1}\" />"</span>,
<span style="color: blue;">this</span>.UniqueID + <span style="color: #a31515;">"$Age"</span>, <span style="color: blue;">this</span>.ClientID + <span style="color: #a31515;">"_Age"</span>));
writer.Write(<span style="color: #a31515;">"</div>"</span>);
}
}</pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-50064610215541161982010-10-16T13:51:00.000+01:002010-10-17T13:51:56.285+01:00How to work with custom post back data and events<ol><li><a href="http://www.charith.gunasekara.web-sphere.co.uk/2010/10/page-registerrequirespostback-method.html">What is Page.RegisterRequiresPostBackEvent</a></li>
<li><a href="http://www.charith.gunasekara.web-sphere.co.uk/2010/10/pageregisterrequireraiseevent.html">What is Page.RegisterRequiresRaiseEvent </a></li>
</ol>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0tag:blogger.com,1999:blog-12037717.post-4708943202736732512010-10-16T11:22:00.001+01:002010-10-16T11:25:34.235+01:00How to find outer html content of a specified html tag in html document<pre style="font-family: consolas;"><span style="color: blue;">string</span> html = <span style="color: #a31515;">@"</span>
<span style="color: #a31515;"> <html xmlns=""http://www.w3.org/1999/xhtml"" ></span>
<span style="color: #a31515;"> <head></span>
<span style="color: #a31515;"> <title></title> </span>
<span style="color: #a31515;"> <script language=""javascript""></span>
<span style="color: #a31515;"> </script></span>
<span style="color: #a31515;"> <style type=""text/css""></span>
<span style="color: #a31515;"> </style></span>
<span style="color: #a31515;"> </head></span>
<span style="color: #a31515;"> <body></span>
<span style="color: #a31515;"> <form target=""_blank"" id=""searchForm""></span>
<span style="color: #a31515;"> <a href=""Test.aspx"">Back</a></span>
<span style="color: #a31515;"> <table></span>
<span style="color: #a31515;"> <tr></span>
<span style="color: #a31515;"> <td>Hello</td></span>
<span style="color: #a31515;"> </tr></span>
<span style="color: #a31515;"> </table></span>
<span style="color: #a31515;"> <p>some paragraph</p></span>
<span style="color: #a31515;"> <table></span>
<span style="color: #a31515;"> <tr></span>
<span style="color: #a31515;"> <td>Hello</td></span>
<span style="color: #a31515;"> </tr></span>
<span style="color: #a31515;"> </table></span>
<span style="color: #a31515;"> </form></span>
<span style="color: #a31515;"> </body></span>
<span style="color: #a31515;"> </html></span>
<span style="color: #a31515;">"</span>;
<span style="color: blue;">protected</span> <span style="color: blue;">override</span> <span style="color: blue;">void</span> OnLoad(<span style="color: #2b91af;">EventArgs</span> e)
{
<span style="color: blue;">base</span>.OnLoad(e);
<span style="color: #2b91af;">List</span><<span style="color: blue;">string</span>> tables = <span style="color: blue;">this</span>.GetTags(html, <span style="color: #a31515;">"table"</span>, <span style="color: blue;">true</span>);
}
<span style="color: blue;">protected</span> <span style="color: #2b91af;">List</span><<span style="color: blue;">string</span>> GetTags(<span style="color: blue;">string</span> html, <span style="color: blue;">string</span> tag, <span style="color: blue;">bool</span> outerHtml)
{
<span style="color: #2b91af;">List</span><<span style="color: blue;">string</span>> tables = <span style="color: blue;">new</span> <span style="color: #2b91af;">List</span><<span style="color: blue;">string</span>>();
<span style="color: blue;">int</span> limit = 0, lb = 0, ub = 0, length = 0;
length = html.Length;
<span style="color: blue;">string</span> startTag = <span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"<{0}"</span>, tag);
<span style="color: blue;">string</span> endTag = <span style="color: blue;">string</span>.Format(<span style="color: #a31515;">"</{0}"</span>, tag);
<span style="color: blue;">string</span> lHtml = html.ToLower();
<span style="color: blue;">do</span>
{
<span style="color: blue;">int</span> s = html.ToLower().IndexOf(startTag, limit);
<span style="color: blue;">if</span> (s > 0)
{
lb = outerHtml ? s : lHtml.IndexOf(<span style="color: #a31515;">">"</span>, s) + 1;
limit = ub = outerHtml
? lHtml.IndexOf(endTag, lb) + endTag.Length + 1
: lHtml.IndexOf(endTag, lb) - 1;
tables.Add(html.Substring(lb, ub - lb));
}
<span style="color: blue;">else</span> limit = s;
}
<span style="color: blue;">while</span> (limit > 0);
<span style="color: blue;">return</span> tables;
}</pre>Charith Shyam Gunasekarahttp://www.blogger.com/profile/06041248771142104487noreply@blogger.com0