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

<channel>
	<title>Mersoft Corporation Blog &#187; mersoft</title>
	<atom:link href="http://blog.mersoft.com/tag/mersoft/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mersoft.com</link>
	<description>Achieve, Compete, and Evolve</description>
	<lastBuildDate>Wed, 07 Sep 2011 15:13:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>.net Clickable Table Header Cell</title>
		<link>http://blog.mersoft.com/2008/11/12/net-clickable-table-header-cell/</link>
		<comments>http://blog.mersoft.com/2008/11/12/net-clickable-table-header-cell/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 22:47:25 +0000</pubDate>
		<dc:creator>Mandi Zinn</dc:creator>
				<category><![CDATA[.NET/.NET Frameworks]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[mersoft]]></category>
		<category><![CDATA[table header cell]]></category>
		<category><![CDATA[ui control]]></category>

		<guid isPermaLink="false">http://blog.mersoft.com/?p=136</guid>
		<description><![CDATA[One of my tasks at Mersoft was to update a .net web site. In the website, there was a data table that needed to be sortable. However, the .net&#8217;s TableHeaderCell did not have a clickable feature, and I couldn&#8217;t find any equivalent that was clickable. So, I created my own.  Here&#8217;s how I did it&#8230;
Code [...]]]></description>
			<content:encoded><![CDATA[<p>One of my tasks at <a href="http://www.mersoft.com" target="_blank">Mersoft</a> was to update a .net web site. In the website, there was a data table that needed to be sortable. However, the .net&#8217;s TableHeaderCell did not have a clickable feature, and I couldn&#8217;t find any equivalent that was clickable. So, I created my own.  Here&#8217;s how I did it&#8230;</p>
<p>Code for the Clickable Table Header Cell control:</p>
<div style="text-align:left;color:#000000; background-color:#ffffff; border:solid black 1px; padding:0.5em 1em 0.5em 1em; overflow:auto;font-size:small; font-family:monospace; "><span style="color:#0000cc;">using</span> System;<br />
<span style="color:#0000cc;">using</span> System.Data;<br />
<span style="color:#0000cc;">using</span> System.Configuration;<br />
<span style="color:#0000cc;">using</span> System.Web;<br />
<span style="color:#0000cc;">using</span> System.Web.Security;<br />
<span style="color:#0000cc;">using</span> System.Web.UI;<br />
<span style="color:#0000cc;">using</span> System.Web.UI.HtmlControls;<br />
<span style="color:#0000cc;">using</span> System.Web.UI.WebControls;<br />
<span style="color:#0000cc;">using</span> System.Web.UI.WebControls.WebParts;</p>
<p><span style="color:#0000cc;">namespace</span> ClickableWebControl<br />
{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// &lt;summary&gt;<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// Summary description for ClickableTableHeaderCell<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// &lt;/summary&gt;<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000cc;">public</span> <span style="color:#0000cc;">class</span> ClickableTableHeaderCell : TableHeaderCell, IPostBackEventHandler<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000cc;">public</span> ClickableTableHeaderCell()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">//<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">// TODO: Add constructor logic here<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">//<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000cc;">protected</span> <span style="color:#0000cc;">override</span> <span style="color:#0000cc;">void</span> Render(HtmlTextWriter writer)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000cc;">this</span>.Attributes.Add(<span style="color:#88134f;">&quot;onclick&quot;</span>, Page.ClientScript.GetPostBackEventReference(<span style="color:#0000cc;">this</span>, <span style="color:#88134f;">&quot;&quot;</span>, <span style="color:#0000cc;">true</span>));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000cc;">base</span>.Render(writer);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// &lt;summary&gt;<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// Event raised when a text box click event takes place<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// &lt;/summary&gt;<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000cc;">public</span> <span style="color:#0000cc;">event</span> EventHandler TableHeaderCellClicked;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// &lt;summary&gt;<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// Handler for the text box event<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// &lt;/summary&gt;<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// &lt;param name=&quot;sender&quot;&gt;&lt;/param&gt;<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">/// &lt;param name=&quot;e&quot;&gt;&lt;/param&gt;<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000cc;">protected</span> <span style="color:#0000cc;">void</span> TableHeaderCell_Click(<span style="color:#0000cc;">object</span> sender, EventArgs e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000cc;">if</span> (TableHeaderCellClicked != <span style="color:#0000cc;">null</span>) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableHeaderCellClicked(sender, e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#a0a014;">#region IPostBackEventHandler Members<br />
</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000cc;">void</span> IPostBackEventHandler.RaisePostBackEvent(<span style="color:#0000cc;">string</span> eventArgument)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000cc;">if</span> (TableHeaderCellClicked != <span style="color:#0000cc;">null</span>)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableHeaderCellClicked(<span style="color:#0000cc;">this</span>, <span style="color:#0000cc;">new</span> EventArgs());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#a0a014;">#endregion<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</div>
<p>Code on the .aspx page:</p>
<div style="text-align:left;color:#000000; background-color:#ffffff; border:solid black 1px; padding:0.5em 1em 0.5em 1em; overflow:auto;font-size:small; font-family:monospace; ">&lt;%@ Register <span style="color:#994500;">Namespace</span>=<span style="color:#1a1aa6;">&quot;ClickableWebControl&quot;</span> <span style="color:#994500;">TagPrefix</span>=<span style="color:#1a1aa6;">&quot;clkweb&quot;</span> %&gt;</p>
<p><span style="color:#881280;">&lt;asp:Table </span><span style="color:#994500;">ID</span><span style="color:#881280;">=</span><span style="color:#1a1aa6;">&quot;myTable&quot;</span><span style="color:#881280;"> </span><span style="color:#994500;">runat</span><span style="color:#881280;">=</span><span style="color:#1a1aa6;">&quot;server&quot;</span><span style="color:#881280;"> </span><span style="color:#994500;">Width</span><span style="color:#881280;">=</span><span style="color:#1a1aa6;">&quot;930px&quot;</span><span style="color:#881280;">&gt;</span><br />
<span style="color:#881280;">&lt;asp:TableHeaderRow </span><span style="color:#994500;">ID</span><span style="color:#881280;">=</span><span style="color:#1a1aa6;">&quot;headerRow&quot;</span><span style="color:#881280;">&gt;</span><br />
<span style="color:#881280;">&lt;clkweb:ClickableTableHeaderCell </span><span style="color:#994500;">Text</span><span style="color:#881280;">=</span><span style="color:#1a1aa6;">&quot;Name&quot;</span><span style="color:#881280;"> </span><span style="color:#994500;">OnTableHeaderCellClicked</span><span style="color:#881280;">=</span><span style="color:#1a1aa6;">&quot;SortName&quot;</span><span style="color:#881280;"> </span><span style="color:#994500;">id</span><span style="color:#881280;">=</span><span style="color:#1a1aa6;">&quot;sortName&quot;</span><span style="color:#881280;">/&gt;</span><br />
<span style="color:#881280;">&lt;/asp:TableHeaderRow&gt;</span><br />
<span style="color:#881280;">&lt;/asp:Table&gt;</span></div>
<p>In the .cs file, add the function to be performed when the header is clicked:</p>
<div style="text-align:left;color:#000000; background-color:#ffffff; border:solid black 1px; padding:0.5em 1em 0.5em 1em; overflow:auto;font-size:small; font-family:monospace; "><span style="color:#0000cc;">public</span> <span style="color:#0000cc;">void</span> SortName(Object sender, EventArgs e)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#216d23;">//Code goes here to handle event when it&#8217;s clicked<br />
</span>}</div>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.mersoft.com%2F2008%2F11%2F12%2Fnet-clickable-table-header-cell%2F&amp;linkname=.net%20Clickable%20Table%20Header%20Cell"><img src="http://blog.mersoft.com/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.mersoft.com/2008/11/12/net-clickable-table-header-cell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

