<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>ASP.NET</title>
        <link>http://geekswithblogs.net/jawad/category/1638.aspx</link>
        <description>This section will contain Tips and Tricks, Talks and News about ASp.Net related Posts.</description>
        <language>en-CA</language>
        <copyright>Jawad Khan</copyright>
        <managingEditor>jawadak@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>How to make sure that the file is downloaded completely by the Users of Web Application ...</title>
            <link>http://geekswithblogs.net/jawad/archive/2005/11/01/FileDownload.aspx</link>
            <description>&lt;P&gt;While developing a Website you might want to limit the users to download the file only once or would like to hide the link if they successfully downloaded a particular file. In traditional way of downloading the file its hard to know on the server side that file is downloaded successfully by the client. Solution is to stream the file in small chunk and make sure that is connected before streaming the next chunk. If you sucessfully transmitted the whiole file then this would mean that client has successfully downloaded the file.&lt;/P&gt;
&lt;P&gt;Here is the Code ....&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&amp;nbsp;&lt;FONT color=#008000&gt;public class DownloadFile : System.Web.UI.Page&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;private void Page_Load(object sender, System.EventArgs e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.IO.Stream iStream = null;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Buffer to read 10K bytes in chunk:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte[] buffer = new Byte[10000];&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Length of the file:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;int length;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Total bytes to read:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;long dataToRead;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Identify the file to download including its path.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;string filepath&amp;nbsp; = Request.MapPath("TSDCJan21.sdo");&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Identify the file name.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;string&amp;nbsp; filename&amp;nbsp; = System.IO.Path.GetFileName(filepath);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Open the file.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iStream = new System.IO.FileStream(filepath, System.IO.FileMode.Open,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.IO.FileAccess.Read,System.IO.FileShare.Read);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Total bytes to read:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataToRead = iStream.Length;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.ContentType = "application/octet-stream";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Read the bytes.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (dataToRead &amp;gt; 0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Verify that the client is connected.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Response.IsClientConnected)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Read the data in buffer.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;length = iStream.Read(buffer, 0, 10000);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Write the data to the current output stream.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.OutputStream.Write(buffer, 0, length);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Flush the data to the HTML output.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Flush();&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer= new Byte[10000];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataToRead = dataToRead - length;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//prevent infinite loop if user disconnects&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataToRead = -1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;catch (Exception ex)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Trap the error, if any.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Response.Write("Error : " + ex.Message);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;finally&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (iStream != null)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Close the file.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iStream.Close();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=58829"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=58829" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jawad/aggbug/58829.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jawad Khan</dc:creator>
            <guid>http://geekswithblogs.net/jawad/archive/2005/11/01/FileDownload.aspx</guid>
            <pubDate>Tue, 01 Nov 2005 16:00:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jawad/comments/58829.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jawad/archive/2005/11/01/FileDownload.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jawad/comments/commentRss/58829.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jawad/services/trackbacks/58829.aspx</trackback:ping>
        </item>
        <item>
            <title>Troubleshooting ASP.Net Validation Controls ....</title>
            <link>http://geekswithblogs.net/jawad/archive/2005/09/30/Validation.aspx</link>
            <description>&lt;P&gt;VIA article from Peter Blum on ASPaaliance&lt;/P&gt;
&lt;P&gt;&lt;SPAN id=abstract&gt;Validating user input is an important requirement of most web applications. However, many ASP.NET developers find the standard ASP.NET validation controls to be either hard to use or lacking in features. Peter Blum answers the most frequently asked questions concerning ASP.NET validation.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Some of the topics he discussed are:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;(1) Client-side validation does not work at all&lt;BR&gt;(2) Buttons do not submit&lt;BR&gt;(3) When to Validate&lt;BR&gt;(4) Preventing a button from validating&lt;BR&gt;(5) Several buttons associated with their own validators&lt;BR&gt;(6) AutoPostBack and validation&lt;BR&gt;(7) How to display MessageBoxes on Validation errors.&lt;BR&gt;(8) Validators support for globalization&lt;BR&gt;(9) Using validators with DropDownLists and ListBoxes&lt;BR&gt;(10) Making the CustomValidator support blank textboxes&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Here is the article &lt;STRONG&gt;&lt;FONT color=#006400 size=4&gt;&lt;A href="http://aspalliance.com/699"&gt;Solving the Challenges of ASP.NET Validation&lt;/A&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=55634"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=55634" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jawad/aggbug/55634.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jawad Khan</dc:creator>
            <guid>http://geekswithblogs.net/jawad/archive/2005/09/30/Validation.aspx</guid>
            <pubDate>Fri, 30 Sep 2005 13:22:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jawad/comments/55634.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jawad/archive/2005/09/30/Validation.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jawad/comments/commentRss/55634.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jawad/services/trackbacks/55634.aspx</trackback:ping>
        </item>
        <item>
            <title>ASp.Net: Search for a Particular User in Active Directory</title>
            <link>http://geekswithblogs.net/jawad/archive/2005/08/26/ADUserSearch.aspx</link>
            <description>&lt;P&gt;If you are using FomrsAuthentication against ActiveDirectory you might want to search if a User Id exist in Active Directory or not before taking certain action like creating new profile.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Here is a Code Snippet used to Check for existance of a User in Active Directory. Some of the setting are stored in web.config.&lt;/P&gt;
&lt;P&gt;Note: IT is highly recommended that you do not store usernames or passwords in web.config unencrypted here for demonstration I have put them in clear text to connect to AD.&lt;/P&gt;
&lt;P&gt;ConfigurationSettings.AppSettings are read from web.config and you can add your own app settings for those variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;public bool IsUserExistInActiveDirectory(string UserId)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bool IsValidLoginName = false;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;string domain = "LDAP://" + ConfigurationSettings.AppSettings["Domain"];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.DirectoryServices.DirectoryEntry entry = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new DirectoryEntry(domain, ConfigurationSettings.AppSettings["ADServiceAccount"], ConfigurationSettings.AppSettings["ADServiceAccountPassword"],&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AuthenticationTypes.Secure);&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;DirectorySearcher adSearcher = new DirectorySearcher(entry);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;adSearcher.SearchScope = SearchScope.Subtree;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;adSearcher.Filter = "(&amp;amp;(objectClass=user)(samaccountname=" + UserId + "))"; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SearchResult oResult = adSearcher.FindOne();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ( oResult != null)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IsValidLoginName = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return IsValidLoginName;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=51148"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=51148" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jawad/aggbug/51148.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jawad Khan</dc:creator>
            <guid>http://geekswithblogs.net/jawad/archive/2005/08/26/ADUserSearch.aspx</guid>
            <pubDate>Fri, 26 Aug 2005 16:07:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jawad/comments/51148.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jawad/archive/2005/08/26/ADUserSearch.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jawad/comments/commentRss/51148.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jawad/services/trackbacks/51148.aspx</trackback:ping>
        </item>
        <item>
            <title>How to Bind Enum Types to the Dropdown or any other bindable Control in ASP.Net .....</title>
            <link>http://geekswithblogs.net/jawad/archive/2005/06/24/EnumDropDown.aspx</link>
            <description>&lt;P&gt;While working on a Data Form in an ASP.Net application you might want to get a value from the user that corresponds to the Enum you created in your Business Layer. Since Enum types are not strings or .ToString() function doesn't work directly with Enums you need to do it in slightly different way ...&lt;/P&gt;
&lt;P&gt;Solution:&lt;/P&gt;
&lt;P&gt;Lets take an example ...&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;public enum Color&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RED,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GREEN,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLUE&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp; Every Enum type derives from System.Enum. There are two static methods that help bind data to a drop-down list control (and retrieve the value). These are Enum.GetNames and Enum.Parse. Using GetNames, you are able to bind to your drop-down list control as follows:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;protected System.Web.UI.WebControls.DropDownList ddColor;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;private void Page_Load(object sender, System.EventArgs e)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!IsPostBack)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddColor.DataSource = Enum.GetNames(typeof(Color));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddColor.DataBind();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Now if you want the Enum value Back on Selection ....&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;private void ddColor_SelectedIndexChanged(object sender, System.EventArgs e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Color selectedColor = (Color)Enum.Parse(ddColor.SelectedValue);&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=44643"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=44643" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jawad/aggbug/44643.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jawad Khan</dc:creator>
            <guid>http://geekswithblogs.net/jawad/archive/2005/06/24/EnumDropDown.aspx</guid>
            <pubDate>Fri, 24 Jun 2005 16:05:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jawad/comments/44643.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jawad/archive/2005/06/24/EnumDropDown.aspx#feedback</comments>
            <slash:comments>14</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jawad/comments/commentRss/44643.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jawad/services/trackbacks/44643.aspx</trackback:ping>
        </item>
        <item>
            <title>Free Internet Explorer (IE) Spell Checker ...that spell checks text Imput Boxes on WebPages ...</title>
            <link>http://geekswithblogs.net/jawad/archive/2005/06/23/IESpellCheck.aspx</link>
            <description>&lt;P&gt;ieSpell is a free Internet Explorer browser extension that spell checks text input boxes on a webpage. It should come in particularly handy for users who do a lot of web-based text entry (e.g. web mails, forums, blogs, diaries). Even if your web application already includes spell checking functionality, you might still want to install this utility because it is definitely &lt;I&gt;much&lt;/I&gt; faster than a server-side solution. Plus you get to store and use your personal word list across all your applications, instead of maintaining separate ones on each application.&lt;/P&gt;
&lt;DIV align=center&gt;&lt;FONT size=5&gt;&lt;A href="http://www.iespell.com/"&gt;ieSpell - A Spell Checker for Internet Explorer&lt;/A&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV align=center&gt;&lt;FONT size=5&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left&gt;ieSpell&amp;nbsp; is free for personal use only. All other use requires a commercial license&lt;/DIV&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=44555"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=44555" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jawad/aggbug/44555.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jawad Khan</dc:creator>
            <guid>http://geekswithblogs.net/jawad/archive/2005/06/23/IESpellCheck.aspx</guid>
            <pubDate>Thu, 23 Jun 2005 17:48:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jawad/comments/44555.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jawad/archive/2005/06/23/IESpellCheck.aspx#feedback</comments>
            <slash:comments>9</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jawad/comments/commentRss/44555.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jawad/services/trackbacks/44555.aspx</trackback:ping>
        </item>
        <item>
            <title>Storing an extra field in an ASP.Net Dropdown List perhaps Primary key with key and value fields .....</title>
            <link>http://geekswithblogs.net/jawad/archive/2005/06/21/DropdownWithPK.aspx</link>
            <description>&lt;P&gt;In numerous occasions you want to display a drop down box that contains for example a Cit and City No but you also want to have it linked with let's say Employee number since the city list is in a Form where you filling the employee data. the out of box drop down doesn't allow you to store more then 2 fields at a time. &lt;/P&gt;
&lt;P&gt;Following solution allows you to store an extra field with the given 2 fields in ASP.Net drop down list.&lt;/P&gt;
&lt;P&gt;Usage in .aspx file :&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&lt;%@ Register TagPrefix="jawad" Namespace="jawad.Web.WebControls" Assembly="jawad.Web" %&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;FONT color=#008000&gt;&amp;lt;%@ Register TagPrefix="jawad" Namespace="jawad.Web.WebControls" Assembly="jawad.Web" %&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; the control class is in a class library jawad.web.dll you can put it any where you want and put the above registration tag accordingly&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;&amp;lt;jawad:dropdownstorespk id="ddCity" runat="server"&amp;gt;&amp;lt;/jawad:dropdownstorespk&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Now in the Code behind file to populate the Dropdown list ....&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-- Bind SortedList to Cities Dropdown&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SortedList extraFields = new SortedList();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ddClassStatus.DataSource = GetCities(extraFields); &lt;FONT color=#000000&gt;//&amp;nbsp; getCities is a function declared as Sortedlist GetCities(out SortedList extraFields) so this function loads both Key, value pair and extra field using DataReader ...See Data Access implementation at bottom&amp;nbsp;of the post ...&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ddClassStatus.DataTextField = "Value";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ddClassStatus.DataValueField = "Key";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ddClassStatus.ExtraField = extraFields;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Now the actual implementation of the Drop Down Control in the Class library ...&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;using System;&lt;BR&gt;using System.Web.UI;&lt;BR&gt;using System.Web.UI.WebControls;&lt;BR&gt;using System.ComponentModel;&lt;BR&gt;using System.Collections ;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;namespace Jawad.Web.WebControls&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;/// Represents a Control that allows the users to select a Single Value from the dropdown.&lt;BR&gt;&amp;nbsp;/// This control also stores an extra field (may be primary Key) for each item besides Key value pair.&lt;BR&gt;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;[DefaultProperty("Text"), &lt;BR&gt;&amp;nbsp;&amp;nbsp;ToolboxData("&amp;lt;{0}:DropDownStoresPK runat=server&amp;gt;")]&lt;BR&gt;&amp;nbsp;public class DropDownStoresPK : System.Web.UI.WebControls.DropDownList&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;private SortedList _extraField;&lt;BR&gt;&amp;nbsp;&amp;nbsp;private string text;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Stores the Extra Field&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;[Bindable(true), &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Category("Misc"),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Browsable(true),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;DefaultValue(""),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description("Stores the extra field as SortedList to DataKeyField")] &lt;BR&gt;&amp;nbsp;&amp;nbsp;public SortedList ExtraField &lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return (base.EnableViewState) ? (SortedList)ViewState["ExtraField"]:_extraField;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;set&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_extraField = value;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (base.EnableViewState)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewState["ExtraField"] = _extraField;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;public object GetExtraField(string selectedValue)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return (_extraField.ContainsKey(selectedValue)) ? _extraField[selectedValue]:null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Gets the Key for the Value passed that is stored in Extra Fields Sorted List&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="Value"&gt;The Value for which the key is required&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;RETURNS&gt;The Key that corresponds with the value passed&lt;/RETURNS&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;public object GetExtraKey(string Value)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return _extraField.GetKey(_extraField.IndexOfValue(Value)); &lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr&gt;&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Render this control to the output parameter specified.&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="output"&gt;The HTML writer to write out to &lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;protected override void Render(HtmlTextWriter output)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;base.Render (output);&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#000000&gt;Here is the Sample implementation of ReadData that can be called from GetCities Function that also read extra field from the database for the Dropdown list ... This is only sample code that used custom Data Access layer but can simply be implemented with outofbox ADo.Net ...&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;public SortedList ReadData(string procedureName, SortedList ExtraField, SqlParameter[] parms ) &lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SortedList lookupCollection = null;&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;using (SqlDataReader reader = SqlHelper.ExecuteReader(_connectionString, CommandType.StoredProcedure, procedureName, parms))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Always call Read before accessing data.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lookupCollection = new SortedList ();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (reader.Read())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Assummimg the first field in the select statement is Key and the next one is value&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lookupCollection.Add (reader.GetString(0),reader.GetString (1));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((ExtraField != null) &amp;amp;&amp;amp; (reader.FieldCount &amp;gt; 2))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ExtraField.Add (reader.GetString(0), reader.GetString (2));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader.Close ();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return lookupCollection;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/BLOCKQUOTE&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=44300"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=44300" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jawad/aggbug/44300.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jawad Khan</dc:creator>
            <guid>http://geekswithblogs.net/jawad/archive/2005/06/21/DropdownWithPK.aspx</guid>
            <pubDate>Tue, 21 Jun 2005 14:09:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jawad/comments/44300.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jawad/archive/2005/06/21/DropdownWithPK.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jawad/comments/commentRss/44300.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jawad/services/trackbacks/44300.aspx</trackback:ping>
        </item>
        <item>
            <title>How to add PostBack to any HTML Web Control that supports JavaScript onClick event ...</title>
            <link>http://geekswithblogs.net/jawad/archive/2005/06/15/PostBackHandler.aspx</link>
            <description>&lt;P&gt;I was recently working on one of my project and needed to add postback of a button to one of the images on my Page. After doing some research I found out that it is real easy to add Postbacks to your HTML elements that support Javascript onClick event ...&lt;/P&gt;
&lt;P&gt;Here is How ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; imgArrow.Attributes.Add("onclick", Page.GetPostBackEventReference(targetButton))&lt;/P&gt;
&lt;P&gt;&amp;nbsp; This will fire the postback event &lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp; Also sometimes you are generating anchor hyperlinks in your code behind and want the page to be posted back to the sever when someone clicks on those links rather then going to another page. Here is how to accomplish this ...&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;// Uses the GetPostBackEventReference method to pass the command you want to execute for e.g&lt;BR&gt;&amp;nbsp;// 'command1' to the RaisePostBackEvent method when the link this code creates is clicked.&lt;BR&gt;&amp;nbsp; &lt;BR&gt;lt.Text = "&amp;lt;a href=\"javascript:" + Page.GetPostBackEventReference(this,"Login") + "\"&amp;gt;LogIn&amp;lt;/a&amp;gt;";&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Assuming lt is the Literal on the page where we want to place the link ...then in the codebehind file ..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if (Page.Request.Form["__EVENTTARGET"] == this.UniqueID)&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (Page.Request.Form["__EVENTARGUMENT"]) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case "DisplayRegUI":&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case "Login":&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write ("Inside the Login Postback functionality.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case "Register":&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=43796"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=43796" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jawad/aggbug/43796.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jawad Khan</dc:creator>
            <guid>http://geekswithblogs.net/jawad/archive/2005/06/15/PostBackHandler.aspx</guid>
            <pubDate>Wed, 15 Jun 2005 14:24:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jawad/comments/43796.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jawad/archive/2005/06/15/PostBackHandler.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jawad/comments/commentRss/43796.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jawad/services/trackbacks/43796.aspx</trackback:ping>
        </item>
        <item>
            <title>How to Position the ASP.NET page to a particular vertical position on PostBack ...</title>
            <link>http://geekswithblogs.net/jawad/archive/2005/05/25/BookMarkJump.aspx</link>
            <description>&lt;P&gt;In ASP.Net projects I have come across numerous time that you need to position the the page at certain vertical location on PostBack. For example you might have multiple long Panels or grids that when clicked need to post back the data to the server and return to certain other panel or Grid on the Page. SmartNavigation feature of ASP.Net allows you to keep the last click position on post back but does not allow the positioning of the page to any other desired location.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;The solution is to put the bookmarks on the .aspx page and then using the Javascript jump to the desired bookmark on PostBack ... i.e.&lt;/P&gt;
&lt;P&gt;&amp;lt;A HREF="#MyPanelInMiddle"&amp;gt;&amp;lt;/A&amp;gt;&lt;/P&gt;
&lt;P&gt;Now on Post Back I can inject a simple Javascript code to the page .....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;//Script for Bookmark Positioning&lt;BR&gt;&amp;nbsp; StringBuilder Script = new StringBuilder();&lt;BR&gt;&amp;nbsp; Script.Append("\n&amp;lt;script language=JavaScript id='BookMarkScript'&amp;gt;\n";");&lt;BR&gt;&amp;nbsp; Script.Append("var hashValue="#MyPanelInMiddle";");&lt;BR&gt;&amp;nbsp; Script.Append("if(location.hash!=hashValue) ");&lt;BR&gt;&amp;nbsp; Script.Append("location.hash=hashValue;");&lt;BR&gt;&amp;nbsp; Script.Append("&amp;lt;/script&amp;gt;");&lt;BR&gt;RegisterClientScriptBlock ("BookMarkScript", Script.ToString());&lt;/P&gt;
&lt;P&gt;This will result in the page being position where the bookmark tag is placed on he page.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=40593"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=40593" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jawad/aggbug/40593.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jawad Khan</dc:creator>
            <guid>http://geekswithblogs.net/jawad/archive/2005/05/25/BookMarkJump.aspx</guid>
            <pubDate>Thu, 26 May 2005 03:21:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jawad/comments/40593.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jawad/archive/2005/05/25/BookMarkJump.aspx#feedback</comments>
            <slash:comments>23</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jawad/comments/commentRss/40593.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jawad/services/trackbacks/40593.aspx</trackback:ping>
        </item>
        <item>
            <title>Free Rich text Editor very useful for Community based ASp.Net Websites or Any ASP.Net website ...</title>
            <link>http://geekswithblogs.net/jawad/archive/2005/05/25/CommunityEditor.aspx</link>
            <description>&lt;P&gt;Community Editor is web based WYSIWYG HTML editor. It enables ASP.Net Web developers to replace the Textarea in your existing/new Web Sites with a powerful, but easy to use WYSIWYG Editor. &lt;BR&gt;&amp;nbsp;&lt;BR&gt;This rich editing tool empowers end users with an intuitive, easy-to-use interface for creating and publishing Posts/Forms&amp;nbsp; without relying on any client-side components or controls.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT style="BACKGROUND-COLOR: yellow"&gt;Community&amp;nbsp;Editor&lt;/FONT&gt;&lt;/STRONG&gt; is a desktop editor for the CommunityServer.org&amp;nbsp;Forums that allows you to format your text easily and quickly with real time results.&lt;/P&gt;
&lt;P&gt;Community&amp;nbsp;Editor is a free desktop application and can be downloaded at &lt;A href="http://www.bigbytetech.ca/CommunityEditor.aspx"&gt;Community Editor&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;It includes &lt;EM&gt;Smiley faces&lt;/EM&gt;&amp;nbsp;&lt;IMG height=19 alt=emotion-1.gif src="http://www.bigbytetech.ca/Portals/0/DnnBB/Emoticons/emotion-1.gif" width=19 border=0&gt;,&lt;FONT color=red&gt;Foreground color&lt;/FONT&gt;, &lt;FONT style="BACKGROUND-COLOR: #ff8000"&gt;Background coloring&lt;/FONT&gt;, Text Formating, &lt;STRONG&gt;Spell Check &lt;/STRONG&gt;and many more options.&lt;/P&gt;
&lt;P&gt;Code Block insertion is also supported for various languages&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Supported Languages inclued &lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Vb.net 
&lt;LI&gt;Sql 
&lt;LI&gt;C# 
&lt;LI&gt;Java 
&lt;LI&gt;Html 
&lt;LI&gt;XML&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#006400&gt;Also check out the Free Text Box that has tons of features and would allow the users to use MS Word like features while editing a TextArea.The link is posted at my Blog Post below:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#006400&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;A href="http://www.geekswithblogs.com/jawad/archive/2005/05/14/39670.aspx"&gt;Link to another FreeTextBox&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=40532"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=40532" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jawad/aggbug/40532.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jawad Khan</dc:creator>
            <guid>http://geekswithblogs.net/jawad/archive/2005/05/25/CommunityEditor.aspx</guid>
            <pubDate>Wed, 25 May 2005 15:57:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jawad/comments/40532.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jawad/archive/2005/05/25/CommunityEditor.aspx#feedback</comments>
            <slash:comments>40</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jawad/comments/commentRss/40532.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jawad/services/trackbacks/40532.aspx</trackback:ping>
        </item>
        <item>
            <title>Adding, Updating, Invalidating , Setting Callback and Removing Data Cache in ASP.Net ....</title>
            <link>http://geekswithblogs.net/jawad/archive/2005/05/23/CacheManager.aspx</link>
            <description>&lt;P&gt;ASP.Net has a very powerful Cache Management component. Cache is part of the most enterprise level .Net project. ASP.Net Data Cache is very flexible and is also available to Windows application by making use of HttpRuntime.Cache object. Microsoft provides a Cache Management Application Block but it can be overkill for lot of applications .....&lt;/P&gt;
&lt;P&gt;Since during my consulting assignments I came across all the time to implement this functionality; I have created a Cache Manager class that can provide all the Cache manipulation through simple function calls.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Here is How to use Cache Manager Class to add Items in Cache ... where myObject is a Hashtable of Customers ... Duration is optional and is specified as 180 minutes here ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;FONT size=2&gt;HttpCache.httpCache.SetItemForDuration(&amp;#8220;Customers&amp;#8220;&lt;/FONT&gt;&lt;FONT size=2&gt;,&amp;nbsp; myObject, 180);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp; If you want to have a default Cache duration for the whole application you should specify it in the web.config file where the&amp;nbsp; Cache Manager is being used &amp;nbsp;....in the Application configuration section of web.config&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT color=#800000 size=2&gt;&lt;ADD&lt; FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;add&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;key&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="CacheDurationInMinutes"&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;value&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="30"/&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp; Here is the Cache Manager Class that can be called from any other Class/WebForm ....&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;using System;&lt;BR&gt;using System.Web ;&lt;BR&gt;using System.Web.Caching;&lt;BR&gt;using System.Configuration ;&lt;BR&gt;using System.Collections ;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;namespace Jawad.Utils.CacheManagement&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;/// Summary description for DataCache.&lt;BR&gt;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;sealed public class HttpCache&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Singleton instance of Data Cache Class&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;public static readonly HttpCache httpCache = new HttpCache();&lt;BR&gt;&amp;nbsp;&amp;nbsp;private Cache _cache;&lt;BR&gt;&amp;nbsp;&amp;nbsp;private int _cacheDuration = 30 ;&amp;nbsp;&amp;nbsp; // Default value is 30 minutes ....&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;private HttpCache()&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;_cache = System.Web.HttpContext.Current.Cache;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;string duration = ConfigurationSettings.AppSettings["CacheDurationInMinutes"];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ( duration != null)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_cacheDuration = int.Parse (duration);&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Get the Item from the Cache ...&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="key"&gt;This is the key to look for when accessing Cache Item&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="item"&gt;Data to be stored in the Cache&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;RETURNS&gt;True if Key is found in the Cache ...&lt;/RETURNS&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;public bool GetItem(string key, out object item)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bool result = false;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;item = _cache[key];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ( item != null )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return result;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Set the Item in the Cache ....&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="key"&gt;The is the Key to be used to access the data Later ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="item"&gt;This is the actual data to be stored in Cache ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;public void SetItem(string key, object item)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;_cache.Insert(key, item, null,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DateTime.Now.AddMinutes(_cacheDuration), TimeSpan.Zero);&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Set the Item in the Cache that expires after the specified duration in Minutes ....&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="key"&gt;The is the Key to be used to access the data Later ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="item"&gt;This is the actual data to be stored in Cache ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="MinutesDuration"&gt;Minutes to keep the data in Cache ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;public void SetItemForDuration(string key, object item, double MinutesDuration)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;_cache.Insert(key, item, null, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DateTime.Now.AddMinutes(MinutesDuration), TimeSpan.Zero);&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Set the Item in the Cache that expires if not accessed for certain duration ....&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="key"&gt;The is the Key to be used to access the data Later ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="item"&gt;This is the actual data to be stored in Cache ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="MinutesDuration"&gt;Minutes till last accessed to clear the Cache ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;public void SetItemClearIfNotAccessed(string key, object item, double MinutesDuration)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;_cache.Insert(key, item, null,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(MinutesDuration));&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Set the Item in the Cache that will never expire ....&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="key"&gt;This is the Key to be used to access the data Later ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="item"&gt;This is the actual data to be stored in Cache ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;public void SetItemNeverExpire(string key, object item)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;_cache.Insert(key, item, null,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration);&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Set the Item in the Cache that will Refresh it self by calling provided function .... &lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="key"&gt;This is the Key to be used to access the data Later ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="item"&gt;This is the actual data to be stored in Cache ...&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="durationMinutes"&gt;Duration in Minutes to keep the item in Cache before refresh is called. Default Duration can Be acquired from Web.Config AppSettings&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="CdiCacheItemRemovedCallback"&gt;A Function with the following Signature&lt;BR&gt;&amp;nbsp;&amp;nbsp;///&amp;nbsp; public void CdiCacheItemRemovedCallback(string key, object val, CacheItemRemovedReason reason)&lt;BR&gt;&amp;nbsp;&amp;nbsp;///&amp;nbsp; inside this fuction you should get the data again and then call "SetItemRefreshItSelf" function passing it&lt;BR&gt;&amp;nbsp;&amp;nbsp;///&amp;nbsp; same function name you are in i.e. CdiCacheItemRemovedCallBack&amp;nbsp; as CdiCacheItemRemovedCallback parameter&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;public void SetItemRefreshItSelf(string key, object item,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int durationMinutes, CacheItemRemovedCallback CdiCacheItemRemovedCallback)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//create an instance of the callback delegate&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CacheItemRemovedCallback callBack =&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new CacheItemRemovedCallback(CdiCacheItemRemovedCallback);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//insert the item in cache that expires in 10 seconds.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//assign the callback instance to it&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;_cache.Insert(key, item, null,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DateTime.Now.AddMinutes(durationMinutes), Cache.NoSlidingExpiration,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CacheItemPriority.Default, callBack);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp; SAMPLE DELEGATE FOR CACHE REFRESH&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;public void CdiCacheItemRemovedCallback(string key,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;&amp;nbsp;object val, CacheItemRemovedReason reason)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;&amp;nbsp;//set cache status, so that we can view what&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;&amp;nbsp;//happened the next time we request a status update&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;&amp;nbsp;Cache.Insert("CacheStatus","KEY: " + key + "&lt;BR&gt;VALUE: "&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ val + "&lt;BR&gt;REASON: " + reason.ToString());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Remove all the Cache Items from the Current Cache ...&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;public string RemoveAllCache()&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;string cacheItemsCleared = "&lt;B&gt;Cache cleared for :&lt;/B&gt; &lt;BR&gt;";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;IDictionaryEnumerator CacheEnum = HttpRuntime.Cache.GetEnumerator();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (CacheEnum.MoveNext())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string key = CacheEnum.Key.ToString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpRuntime.Cache.Remove(key); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cacheItemsCleared += key + "&lt;BR&gt;";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (cacheItemsCleared.Length &amp;lt; 32)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cacheItemsCleared = "&lt;B&gt;No items in Cache to clear.&lt;/B&gt;";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return cacheItemsCleared;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;/// &lt;SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// Removes the desired object from the Cache&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;/SUMMARY&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;/// &lt;PARAM name="key"&gt;The key for the Cache object to be removed&lt;/PARAM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;public void RemoveParticularObject(string key)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;object garbage = _cache.Remove (key);&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=40340"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=40340" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jawad/aggbug/40340.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jawad Khan</dc:creator>
            <guid>http://geekswithblogs.net/jawad/archive/2005/05/23/CacheManager.aspx</guid>
            <pubDate>Tue, 24 May 2005 02:08:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jawad/comments/40340.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jawad/archive/2005/05/23/CacheManager.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jawad/comments/commentRss/40340.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jawad/services/trackbacks/40340.aspx</trackback:ping>
        </item>
    </channel>
</rss>