<?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>Maciej Grabek &#187; jQuery</title>
	<atom:link href="https://blog.maciejgrabek.com/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.maciejgrabek.com</link>
	<description>/* Make it See Sharp - Windows Phone, C#, .NET i nie tylko */</description>
	<lastBuildDate>Mon, 27 Oct 2014 11:18:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>ASP.NET Button i jQuery dialog</title>
		<link>https://blog.maciejgrabek.com/2010/12/07/asp-net-button-i-jquery-dialog/</link>
		<comments>https://blog.maciejgrabek.com/2010/12/07/asp-net-button-i-jquery-dialog/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 16:37:50 +0000</pubDate>
		<dc:creator><![CDATA[maciek]]></dc:creator>
				<category><![CDATA[HOW TO]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://maciejgrabek.com/?p=10395</guid>
		<description><![CDATA[jQuery jak zapewne każdy wie jest bardzo przydatnym i użytecznym narzędziem. jQuery UI to zestaw wtyczek (możemy je nazwać kontrolkami), które pozwalają na szybkie &#8220;upiększenie&#8221; naszej strony. Okazuje się jednak, że bywają pewne kolizje na drodze jQuery UI i ASP.NET. Przykładem może tu być wykorzystanie pluginu &#8220;dialog&#8221; dla kontenerów (np. div) zawierających przyciski ASP:Button. &#60;div id=&#34;dialogDiv&#34;&#62; Dialog content &#60;asp:Button id=&#34;btnDoSomething&#34; runat=&#34;server&#34; Text=&#34;Do something&#34; onclick=&#34;btnDoSomething_click&#34;/&#62; &#60;/div&#62; Okazuje się, że gdy chcemy wykonać $(&#8220;#dialogDiv&#8221;).dialog(&#8216;open&#8217;); to niestety przycisk, który się znajduje w wyskakującym okienku przestaje działać. Aby tego uniknąć musimy dodać wykorzystać poniższy kawałek kodu. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 function showjqdialog(){ jQuery(document).ready(function() { var dlg = $(&#34;#dialogDiv&#34;).dialog({ modal: true, overlay: { backgroundColor: '#000', opacity: 0.5 }, width:500 }); dlg.parent().appendTo(jQuery(&#34;form:first&#34;)); dlg.dialog('open'); }); } Najważniejszy fragment to ustawienie rodzica naszego okienka na formularz dokumentu tak, aby mógł on przejąć akcję przycisku. Chodzi tu oczywiście o fragment: 1 dlg.parent().appendTo(jQuery(&#34;form:first&#34;)); Dodatkowo pokazanie okna dialogowego najlepiej jest wykonać w momencie gdy dokument jest już w pełni załadowany. Chodzi tu oczywiście o fragment jQuery(document).ready(function() {&#8230;}); Dla dopełnienia informacji na temat jQuery UI dialog i działania z ASP.NET kilka słów na temat jak go uruchomić warunkowo z code behind. Otóż<a href="https://blog.maciejgrabek.com/2010/12/07/asp-net-button-i-jquery-dialog/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<p>jQuery jak zapewne każdy wie jest bardzo przydatnym i użytecznym narzędziem. jQuery UI to zestaw wtyczek (możemy je nazwać kontrolkami), które pozwalają na szybkie &#8220;upiększenie&#8221; naszej strony. Okazuje się jednak, że bywają pewne kolizje na drodze jQuery UI i ASP.NET. Przykładem może tu być wykorzystanie pluginu &#8220;dialog&#8221; dla kontenerów (np. div) zawierających przyciski ASP:Button.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">&lt;div id=&quot;dialogDiv&quot;&gt;
   Dialog content
   &lt;asp:Button id=&quot;btnDoSomething&quot; runat=&quot;server&quot; Text=&quot;Do something&quot; onclick=&quot;btnDoSomething_click&quot;/&gt;
&lt;/div&gt;</pre></td></tr></table></div>

<p>Okazuje się, że gdy chcemy wykonać $(&#8220;#dialogDiv&#8221;).dialog(&#8216;open&#8217;); to niestety przycisk, który się znajduje w wyskakującym okienku przestaje działać. Aby tego uniknąć musimy dodać wykorzystać poniższy kawałek kodu.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="js" style="font-family:monospace;">function showjqdialog(){
   jQuery(document).ready(function() {
      var dlg = $(&quot;#dialogDiv&quot;).dialog({
            modal: true,
            overlay: {
                backgroundColor: '#000',
                opacity: 0.5
             },
           width:500
      });
      dlg.parent().appendTo(jQuery(&quot;form:first&quot;));
      dlg.dialog('open');
   });
}</pre></td></tr></table></div>

<p>Najważniejszy fragment to ustawienie rodzica naszego okienka na formularz dokumentu tak, aby mógł on przejąć akcję przycisku. Chodzi tu oczywiście o fragment:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="js" style="font-family:monospace;">dlg.parent().appendTo(jQuery(&quot;form:first&quot;));</pre></td></tr></table></div>

<p>Dodatkowo pokazanie okna dialogowego najlepiej jest wykonać w momencie gdy dokument jest już w pełni załadowany. Chodzi tu oczywiście o fragment jQuery(document).ready(function() {&#8230;});</p>
<p>Dla dopełnienia informacji na temat jQuery UI dialog i działania z ASP.NET kilka słów na temat jak go uruchomić warunkowo z code behind. Otóż w metodzie obsługującej kliknięcie przycisku dodajemy:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">if</span><span style="color: #008000;">&#40;</span>showDialogCondition<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#123;</span>
   ClientScript<span style="color: #008000;">.</span><span style="color: #0000FF;">RegisterStartupScript</span><span style="color: #008000;">&#40;</span>Page<span style="color: #008000;">.</span><span style="color: #0000FF;">GetType</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, <span style="color: #666666;">&quot;dialogscript&quot;</span>, <span style="color: #666666;">&quot;&lt;script type=&quot;</span>\<span style="color: #666666;">&quot;text/javascript<span style="color: #008080; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #008000;">&gt;&lt;!--</span>mce<span style="color: #008000;">:</span><span style="color: #FF0000;">0</span><span style="color: #008000;">--&gt;&lt;/</span>script<span style="color: #008000;">&gt;</span><span style="color: #666666;">&quot;);
}</span></pre></td></tr></table></div>

<p>Dzięki temu podczas ładowania strony zostanie doładowany kawałek skryptu odpowiedzialny za pokazanie okna dialogowego. Pamiętając o tym, że czekamy w funkcji showjqdialog() na załadowanie dokumentu mamy pewność o poprawnym działaniu kodu.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.maciejgrabek.com/2010/12/07/asp-net-button-i-jquery-dialog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problem z HttpCookie.Expires i jQuery</title>
		<link>https://blog.maciejgrabek.com/2010/08/24/problem-z-httpcookie-expires-i-jquery/</link>
		<comments>https://blog.maciejgrabek.com/2010/08/24/problem-z-httpcookie-expires-i-jquery/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 22:53:00 +0000</pubDate>
		<dc:creator><![CDATA[maciek]]></dc:creator>
				<category><![CDATA[Ciekawostki]]></category>
		<category><![CDATA[HOW TO]]></category>
		<category><![CDATA[HttpCookie.Expires]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://maciejgrabek.com/maciek_blog/?p=9995</guid>
		<description><![CDATA[Dziś na temat korzystania z jQuery i ciasteczek. Jako scenariusz przyjmijmy proste zliczenie kliknięć, gdzie licznik przechowujemy jako wartość ciastka. W tym celu tworzymy aplikację ASP.NET MVC wraz z testowym kontrolerem i dwoma widokami – Indeks, który jest widokiem bazowym i Modify, który zwraca kawałek html’a z zawartością ciastka. Kotroler inicjujemy w następujący sposób:   1 using System;   2 using System.Collections.Generic;   3 using System.Linq;   4 using System.Web;   5 using System.Web.Mvc;   6   7 namespace CookieAndJQuery.Controllers   8 {   9     [HandleError] 10     public class TestsController : Controller 11     { 12         private static string CookieName = &#8220;TestCookie&#8221;; 13 14         public ActionResult Index() 15         { 16             return View(); 17         } 18 19         public ActionResult Modify() 20         { 21             HttpCookie cookie = Request.Cookies[CookieName]; 22             if (cookie == null) 23             { 24                 cookie = new HttpCookie(CookieName, &#8220;0&#8221;); 25                 cookie.Expires = DateTime.MaxValue; 26             } 27 28             int v = int.Parse(cookie.Value); 29             cookie.Value = (++v).ToString(); 30             Response.Cookies.Add(cookie); 31             ViewData[&#8220;itemValue&#8221;]= cookie.Value; 32             return View(); 33         } 34     } 35 } Indeks ma za zadanie po kliknięciu przycisku wywołać akcję Modify w kontrolerze TestsController a następnie wstrzyknąć jej wynik do diva o id=”resultContainer”   1 &#60;%@ Page Language=&#8220;C#&#8221; Inherits=&#8220;System.Web.Mvc.ViewPage&#8221; %&#62;   2 &#60;html&#62;   3 &#60;head<a href="https://blog.maciejgrabek.com/2010/08/24/problem-z-httpcookie-expires-i-jquery/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<p>Dziś na temat korzystania z jQuery i ciasteczek. Jako scenariusz przyjmijmy proste zliczenie kliknięć, gdzie licznik przechowujemy jako wartość ciastka.</p>
<p>W tym celu tworzymy aplikację ASP.NET MVC wraz z testowym kontrolerem i dwoma widokami – Indeks, który jest widokiem bazowym i Modify, który zwraca kawałek html’a z zawartością ciastka.</p>
<p><a rel="WLPP" href="https://mgh8dg.blu.livefilestore.com/y1mt7PtH1tRrIqF3XHreBbDtm7IhGxp-8SJRMB8zODTWsmpZyXyyxbQ2gDqBR1bfFtcQxqCtuoy1TkYE-w2cg_GAr31j-Yda9WoB7vrmqYmf_p66d8Umx5pEQZ80tukS42QvHI70r7L_Z3SkvgFoFaDLg/image[3] 21C939A5.png?download&amp;psid=1"></a></p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/08/jqproblemSolutionExplorer.png"><img class="alignnone size-full wp-image-10111" title="jqproblemSolutionExplorer" src="http://maciejgrabek.com/wp-content/uploads/2010/08/jqproblemSolutionExplorer.png" alt="" width="237" height="308" /></a></p>
<p>Kotroler inicjujemy w następujący sposób:</p>
<div style="font-family: courier new;"><span style="color: teal;">  1</span> <span style="color: blue;">using</span> System;<br />
<span style="color: teal;">  2</span> <span style="color: blue;">using</span> System.Collections.Generic;<br />
<span style="color: teal;">  3</span> <span style="color: blue;">using</span> System.Linq;<br />
<span style="color: teal;">  4</span> <span style="color: blue;">using</span> System.Web;<br />
<span style="color: teal;">  5</span> <span style="color: blue;">using</span> System.Web.Mvc;<br />
<span style="color: teal;">  6</span><br />
<span style="color: teal;">  7</span> <span style="color: blue;">namespace</span> CookieAndJQuery.Controllers<br />
<span style="color: teal;">  8</span> {<br />
<span style="color: teal;">  9</span>     [HandleError]<br />
<span style="color: teal;">10</span>     <span style="color: blue;">public</span> <span style="color: blue;">class</span> TestsController : Controller<br />
<span style="color: teal;">11</span>     {<br />
<span style="color: teal;">12</span>         <span style="color: blue;">private</span> <span style="color: blue;">static</span> <span style="color: blue;">string</span> CookieName = <span style="color: maroon;">&#8220;TestCookie&#8221;</span>;<br />
<span style="color: teal;">13</span><br />
<span style="color: teal;">14</span>         <span style="color: blue;">public</span> ActionResult Index()<br />
<span style="color: teal;">15</span>         {<br />
<span style="color: teal;">16</span>             <span style="color: blue;">return</span> View();<br />
<span style="color: teal;">17</span>         }<br />
<span style="color: teal;">18</span><br />
<span style="color: teal;">19</span>         <span style="color: blue;">public</span> ActionResult Modify()<br />
<span style="color: teal;">20</span>         {<br />
<span style="color: teal;">21</span>             HttpCookie cookie = Request.Cookies[CookieName];<br />
<span style="color: teal;">22</span>             <span style="color: blue;">if</span> (cookie == <span style="color: blue;">null</span>)<br />
<span style="color: teal;">23</span>             {<br />
<span style="color: teal;">24</span>                 cookie = <span style="color: blue;">new</span> HttpCookie(CookieName, <span style="color: maroon;">&#8220;0&#8221;</span>);<br />
<span style="color: teal;">25</span>                 cookie.Expires = DateTime.MaxValue;<br />
<span style="color: teal;">26</span>             }<br />
<span style="color: teal;">27</span><br />
<span style="color: teal;">28</span>             <span style="color: blue;">int</span> v = <span style="color: blue;">int</span>.Parse(cookie.Value);<br />
<span style="color: teal;">29</span>             cookie.Value = (++v).ToString();<br />
<span style="color: teal;">30</span>             Response.Cookies.Add(cookie);<br />
<span style="color: teal;">31</span>             ViewData[<span style="color: maroon;">&#8220;itemValue&#8221;</span>]= cookie.Value;<br />
<span style="color: teal;">32</span>             <span style="color: blue;">return</span> View();<br />
<span style="color: teal;">33</span>         }<br />
<span style="color: teal;">34</span>     }<br />
<span style="color: teal;">35</span> }</div>
<p>Indeks ma za zadanie po kliknięciu przycisku wywołać akcję <span style="font-family: Consolas;">Modify</span> w kontrolerze <span style="font-family: Consolas;">TestsController</span> a następnie wstrzyknąć jej wynik do diva o <span style="font-family: Consolas;">id=”resultContainer”</span></p>
<div style="font-family: courier new;"><span style="color: teal;">  1</span> &lt;%@ Page Language=<span style="color: maroon;">&#8220;C#&#8221;</span> Inherits=<span style="color: maroon;">&#8220;System.Web.Mvc.ViewPage&#8221;</span> %&gt;<br />
<span style="color: teal;">  2</span> &lt;html&gt;<br />
<span style="color: teal;">  3</span> &lt;head runat=<span style="color: maroon;">&#8220;server&#8221;</span>&gt;<br />
<span style="color: teal;">  4</span>     &lt;title&gt;Index&lt;/title&gt;<br />
<span style="color: teal;">  5</span>     &lt;script src=<span style="color: maroon;">&#8220;Scripts/jquery-1.4.1.min.js&#8221;</span> type=<span style="color: maroon;">&#8220;text/javascript&#8221;</span>&gt;&lt;/script&gt;<br />
<span style="color: teal;">  6</span> &lt;/head&gt;<br />
<span style="color: teal;">  7</span> &lt;body&gt;<br />
<span style="color: teal;">  8</span>     &lt;div&gt;<br />
<span style="color: teal;">  9</span>         &lt;input type=<span style="color: maroon;">&#8220;button&#8221;</span> id=<span style="color: maroon;">&#8220;btnTestCookies&#8221;</span> value=<span style="color: maroon;">&#8220;ClickMe&#8221;</span> /&gt;<br />
<span style="color: teal;">10</span>         &lt;div id=<span style="color: maroon;">&#8220;resultContainer&#8221;</span>&gt;&lt;/div&gt;<br />
<span style="color: teal;">11</span>     &lt;/div&gt;<br />
<span style="color: teal;">12</span>     &lt;script type=<span style="color: maroon;">&#8220;text/javascript&#8221;</span>&gt;<br />
<span style="color: teal;">13</span>         $(<span style="color: maroon;">&#8220;#btnTestCookies&#8221;</span>).click(function () {<br />
<span style="color: teal;">14</span>             $.ajax(<br />
<span style="color: teal;">15</span>                 {<br />
<span style="color: teal;">16</span>                     url: <span style="color: maroon;">&#8220;/Tests/Modify&#8221;</span>,<br />
<span style="color: teal;">17</span>                     success: function (data) {<br />
<span style="color: teal;">18</span>                         $(<span style="color: maroon;">&#8220;#resultContainer&#8221;</span>).html(data);<br />
<span style="color: teal;">19</span>                     },<br />
<span style="color: teal;">20</span>                     cache: <span style="color: maroon;">false</span>,<br />
<span style="color: teal;">21</span>                     dataType: <span style="color: maroon;">&#8220;html&#8221;</span><br />
<span style="color: teal;">22</span>                 }<br />
<span style="color: teal;">23</span>             );<br />
<span style="color: teal;">24</span>         });<br />
<span style="color: teal;">25</span>     &lt;/script&gt;<br />
<span style="color: teal;">26</span> &lt;/body&gt;<br />
<span style="color: teal;">27</span> &lt;/html&gt;</div>
<p><span style="font-family: Consolas;"> </span></p>
<p>Dla pełnego obrazu poniżej widnieje zawartość widoku Modify:</p>
<div style="font-family: courier new;"><span style="color: teal;">  1</span> &lt;%@ Page Language=<span style="color: maroon;">&#8220;C#&#8221;</span> Inherits=<span style="color: maroon;">&#8220;System.Web.Mvc.ViewPage&#8221;</span> Buffer=<span style="col: maroon;">&#8220;false&#8221;</span> %&gt;<br />
<span style="color: teal;">  2</span> &lt;div&gt;<br />
<span style="color: teal;">  3</span>     &lt;%= ViewData[<span style="color: maroon;">&#8220;itemValue&#8221;</span>] %&gt;<br />
<span style="color: teal;">  4</span> &lt;/div&gt;</div>
<p>Skoro mamy już bazę do doświadczeń pora przejść do sedna problemu, a mianowiscie do obsługi ciastek. Jak zapewne zauważyliście kontroler w linii 25 ustawia czas wygaśnięcia ciastka na DateTime.MaxValue, czyli ciastko nigdy nie wygaśnie. Na pierwszy rzut oka nie widać problemu: wywołujemy akcję, akcja zmienia wartość ciastka, ciastko wraca do przeglądarki, klikamy ponownie, wartość wzrasta – super! Jednakże spójżmy jak faktycznie wygląda ciastko, które otrzymujemy:</p>
<p>Pierwsze wywołanie strony – tworzymy ciastko</p>
<p><a rel="WLPP" href="https://mgh8dg.blu.livefilestore.com/y1mxqZVfy6tZdybrcIoW1enKLaHzU2h4LElj6ONG0_mYFUCKYRK-JtsrMA9P43hTAPvWIxgdd3enNBStRxoj05qe7LR8cvNsugsPhQKpAktcrLVgHGp2-i4WfpXsr8zhC2yNPyLGjTZ45pK4RwQf5wmeQ/image[7] 2C719587.png?download&amp;psid=1"></a></p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/08/expires1.png"><img class="alignnone size-full wp-image-10112" title="expires1" src="http://maciejgrabek.com/wp-content/uploads/2010/08/expires1.png" alt="" width="399" height="212" /></a></p>
<p>Kolejne wywołanie strony – niestety jak widać poniżej czas wygaśnięcia ciastka przypadnie na koniec sesji:</p>
<p><a rel="WLPP" href="https://mgh8dg.blu.livefilestore.com/y1mBfNEA0H53HMziANCWppUBUCAPgRaHygB989ANARPE7qHXy01UQlFfqlx1MjHXfrOdOD7Wm0Wq9wV_MVEc6_Cp83oV5Ie2JD3rNUkUKYNIQ49or7ie2KqbqBMa5Ke2pGJKMRhTabsnk2rG6owsOiq1g/image[11] 587A58AC.png?download&amp;psid=1"></a></p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/08/expires2.png"><img class="alignnone size-full wp-image-10113" title="expires2" src="http://maciejgrabek.com/wp-content/uploads/2010/08/expires2.png" alt="" width="485" height="198" /></a></p>
<p>Przez to po zamknięciu i ponownym uruchomieniu przeglądarki ciastko zostanie usuniete a tym samym licznik zostanie zresetowany&#8230;</p>
<p>Przyjrzyjmy się jak wygląda request i response. Korzystając z <a href="http://www.fiddler2.com/fiddler2">Fiddlera</a> można podejrzeć treść nagłówka Cookies, w którym widać wszystko jak na dłoni:</p>
<p>Odpowiedź po pierwszym wywołaniu (ustawiamy ciastko)</p>
<p><a rel="WLPP" href="https://mgh8dg.blu.livefilestore.com/y1mFXhXddv2qmKmF2f_YIEhoMD9hxiRVqGTaWKkF6Ezr_oKj7ahdoHWexhSZv5We3-d3VzopFneeeqNSkdPWb6dlswKIS_ZPW57ENR6s3sWOK7z78bLTohzG0QQY4VC6-gQKVtMhJIBdAY9Mnc06ptfJA/image[16].png?download&amp;psid=1"></a></p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/08/cookiePreview.png"><img class="alignnone size-full wp-image-10114" title="cookiePreview" src="http://maciejgrabek.com/wp-content/uploads/2010/08/cookiePreview.png" alt="" width="433" height="34" /></a></p>
<p>Request przy kojelnych kliknięciach przycisku – jak widać brak przy żądaniu informacji o ekspiracji ciastka, co skuktuje opisanym zachowaniem.</p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/08/requestHeaders.png"><img class="alignnone size-full wp-image-10115" title="requestHeaders" src="http://maciejgrabek.com/wp-content/uploads/2010/08/requestHeaders.png" alt="" width="442" height="156" /></a></p>
<p>Jak to ominąć? W przypadku, który miałem jako zadanie postanowiłem przy każdym takim wywołaniu ustawiać czas życia ciastka na DateTime.MaxValue, dzięki  czemu po ponownym uruchomieniu przeglądarki ciastko nadal tam jest&#8230;</p>
<div style="font-family: courier new;"><span style="color: teal;">  1</span> <span style="color: blue;">public</span> ActionResult Modify()<br />
<span style="color: teal;">  2</span> {<br />
<span style="color: teal;">  3</span>     HttpCookie cookie = Request.Cookies[CookieName];<br />
<span style="color: teal;">  4</span>     <span style="color: blue;">if</span> (cookie == <span style="color: blue;">null</span>)<br />
<span style="color: teal;">  5</span>     {<br />
<span style="color: teal;">  6</span>         cookie = <span style="color: blue;">new</span> HttpCookie(CookieName, <span style="color: maroon;">&#8220;0&#8221;</span>);<br />
<span style="color: teal;">  7</span>         cookie.Expires = DateTime.MaxValue;<br />
<span style="color: teal;">  8</span>     }<br />
<span style="color: teal;">  9</span><br />
<span style="color: teal;">10</span>     cookie.Expires = DateTime.MaxValue;<br />
<span style="color: teal;">11</span>     <span style="color: blue;">int</span> v = <span style="color: blue;">int</span>.Parse(cookie.Value);<br />
<span style="color: teal;">12</span>     cookie.Value = (++v).ToString();<br />
<span style="color: teal;">13</span>     Response.Cookies.Add(cookie);<br />
<span style="color: teal;">14</span>     ViewData[<span style="color: maroon;">&#8220;itemValue&#8221;</span>] = cookie.Value;<br />
<span style="color: teal;">15</span>     <span style="color: blue;">return</span> View();<br />
<span style="color: teal;">16</span> }</div>
<p>W wyniku tej modyfikacji informacja o ciastkach znajdująca się w odpowiedzi wygląda następująco</p>
<p><a rel="WLPP" href="https://mgh8dg.blu.livefilestore.com/y1m81SfofM5Qn0WRCUFDqJMeoyLxB-Cfvc5FHUDOj_hi4Dh06Jx5WtHohPjHLRg-NHbS2Bv7ebhFAYUMlSYMtgqwBGNJP26lqpKLYU4N_uafhWn31r_WpzSPXYP7hawWsQLdm9DUG07QZJvsvzdid4a-Q/image[36].png?download&amp;psid=1"></a></p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/08/requestHeaders2.png"><img class="alignnone size-full wp-image-10116" title="requestHeaders2" src="http://maciejgrabek.com/wp-content/uploads/2010/08/requestHeaders2.png" alt="" width="442" height="138" /></a></p>
<p>dzięki czemu przy kolejnym uruchomieniu przeglądarki ciastko nadal tam będzie gotowe do użycia <img src="https://blog.maciejgrabek.com/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
			<wfw:commentRss>https://blog.maciejgrabek.com/2010/08/24/problem-z-httpcookie-expires-i-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery &#8211; ciekawe pluginy</title>
		<link>https://blog.maciejgrabek.com/2010/04/28/jquery-ciekawe-pluginy/</link>
		<comments>https://blog.maciejgrabek.com/2010/04/28/jquery-ciekawe-pluginy/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 21:08:00 +0000</pubDate>
		<dc:creator><![CDATA[maciek]]></dc:creator>
				<category><![CDATA[Ciekawostki]]></category>
		<category><![CDATA[Testy]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[pluginy]]></category>

		<guid isPermaLink="false">http://maciejgrabek.com/maciek_blog/?p=9978</guid>
		<description><![CDATA[Na Smashing Magazine pojawił się artykuł na temat ciekawych pluginów oraz wtyczek dotyczących jQuery. Mi osobiście do gustu najbardziej przypadły cztery z nich: Contextual Slideout Tips, który pozwala na tworzenie animowanych warstw zawierających treści np tooltipów (jak wskazuje nazwa) ale również jest to ciekawy sposób na realizację menu&#8230;    Selectmenu jako alternatywa dla standardowego &#60;asp:DropDownList&#62; (lub jak kto woli &#60;select&#62;). Sami na pewno wiele razy spotkaliście się z koniecznością “upiększenia” tych elementów, lub też stworzenia kontrolek, które mają wyglądać jak użyty na stronie &#60;select&#62; ale działających w inny sposób. jQuery przychodzi tu z pomocą i wieloma gotowymi “podmieniaczami” (jeżeli takie słowo nie istnieje, to już istnieje :), a Selectmenu jest jedną z ciekawszych propozycji w tej materii. Captify – dzięki tej wtyczce możemy w prosty, a przede wszystkim efektowny sposób dodać opisy do naszych galerii.   Opis pojawia się, a właściwie “wjeżdża” na zdjęcie, dzięki czemu nie przesłania treści graficznej, a w odpowiednim momencie daje pełną informację dotyczącą konkretnego zdjęcia&#8230; Na koniec coś, co lubię, czyli gadżety – to też dodaje stylu i usability dla naszych stron: Quicksand – coś, co wywołało u mnie tzw. efekt WOW – uwielbiam gadżety i ta wtyczka zalicza się do jednego z nich. Animowane<a href="https://blog.maciejgrabek.com/2010/04/28/jquery-ciekawe-pluginy/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<p>Na <a href="http://www.smashingmagazine.com" target="_blank">Smashing Magazine</a> pojawił się <a href="http://www.smashingmagazine.com/2010/04/27/45-useful-jquery-techniques-and-plugins/" target="_blank">artykuł</a> na temat ciekawych pluginów oraz wtyczek dotyczących <a href="http://jquery.com/" target="_blank">jQuery</a>. Mi osobiście do gustu najbardziej przypadły cztery z nich:</p>
<p><strong><a href="http://demo.tutorialzine.com/2010/04/slideout-context-tips-jquery-css3/demo.html" target="_blank">Contextual Slideout Tips</a></strong>, który pozwala na tworzenie animowanych warstw zawierających treści np tooltipów (jak wskazuje nazwa) ale również jest to ciekawy sposób na realizację menu&#8230;</p>
<blockquote><p><a href="http://maciejgrabek.com/wp-content/uploads/2010/04/cst1.png"><img class="alignnone size-thumbnail wp-image-10170" title="cst1" src="http://maciejgrabek.com/wp-content/uploads/2010/04/cst1-150x150.png" alt="" width="150" height="150" /></a> <a href="http://maciejgrabek.com/wp-content/uploads/2010/04/cst2.png"><img class="alignnone size-thumbnail wp-image-10171" title="cst2" src="http://maciejgrabek.com/wp-content/uploads/2010/04/cst2-150x150.png" alt="" width="150" height="150" /></a> <a href="http://maciejgrabek.com/wp-content/uploads/2010/04/cst3.png"><img class="alignnone size-thumbnail wp-image-10172" title="cst3" src="http://maciejgrabek.com/wp-content/uploads/2010/04/cst3-150x150.png" alt="" width="150" height="150" /></a><a rel="WLPP" href="https://mgh8dg.blu.livefilestore.com/y1mjl1usnUGZPRVsOn5TTdqbnsjpVziVx-ycK1AYnVckVPn__6PSWGVBf7coNPxTmvQbZeWjTv-Rxpjnk43p6Uf9TYhNqlmmRz9yfpPDlCB04DJvOZun5Q2imrkBGL1YsWNWkz1yc871VR_xS4j4D-lMg/image[8].png"></a></p></blockquote>
<p><a href="http://www.filamentgroup.com/lab/jquery_ui_selectmenu_an_aria_accessible_plugin_for_styling_a_html_select" target="_blank"><strong>Selectmenu</strong></a> jako alternatywa dla standardowego &lt;asp:DropDownList&gt; (lub jak kto woli &lt;select&gt;). Sami na pewno wiele razy spotkaliście się z koniecznością “upiększenia” tych elementów, lub też stworzenia kontrolek, które mają wyglądać jak użyty na stronie &lt;select&gt; ale działających w inny sposób. jQuery przychodzi tu z pomocą i wieloma gotowymi “podmieniaczami” (jeżeli takie słowo nie istnieje, to już istnieje :), a Selectmenu jest jedną z ciekawszych propozycji w tej materii.</p>
<p><a rel="WLPP" href="https://mgh8dg.blu.livefilestore.com/y1mZrZOKbIFVD7bgXjC-wFrBhuEGGfv4cYUw0qlhct4jVTQ2GbQcdOzHDMNrkvfrh95DlY1Tix_V9jN_2MB2jQQyFZY4esKPKY24tv46sff56GnPdwsx4P-30FvmDjQ4O1AqfxX2yWx1QhBfahrTPQ3YA/image[11] 49E1CA36.png"></a></p>
<p><a href="http://maciejgrabek.com/wp-content/uploads/2010/04/s1.png"><img class="alignnone size-thumbnail wp-image-10177" title="s1" src="http://maciejgrabek.com/wp-content/uploads/2010/04/s1-150x150.png" alt="" width="150" height="150" /></a></p>
<p><a href="http://thirdroute.com/projects/captify/" target="_blank"><strong>Captify</strong></a> – dzięki tej wtyczce możemy w prosty, a przede wszystkim efektowny sposób dodać opisy do naszych galerii.</p>
<p><a rel="WLPP" href="https://mgh8dg.blu.livefilestore.com/y1mz6tZ7Gf1GJ8gWxiw4yzxZ58goIdf17ZIpW3EhLml2jytWef8vRNYSc3Dx5xc5vY-IIm2C7wPKI0zmFU0ruHg9wu-7C_jzY9CVlkzobOC09N0-JdBeeHr_ZEb9VbXMiWIRFOl57Kd7TY7vgYAt0p3mA/image[23].png"></a><a href="http://maciejgrabek.com/wp-content/uploads/2010/04/c1.png"><img class="alignnone size-thumbnail wp-image-10173" title="c1" src="http://maciejgrabek.com/wp-content/uploads/2010/04/c1-150x150.png" alt="" width="150" height="150" /></a>  <a href="http://maciejgrabek.com/wp-content/uploads/2010/04/c2.png"><img class="alignnone size-thumbnail wp-image-10174" title="c2" src="http://maciejgrabek.com/wp-content/uploads/2010/04/c2-150x150.png" alt="" width="150" height="150" /></a><a rel="WLPP" href="https://mgh8dg.blu.livefilestore.com/y1myb_lGH1-JC1U-HYYOlj3OE101Rfk3KnSUFod-bomYEtyog2khE9_dCWAt-5DWaQKL1Uzpg_MA-JHF2lA0Hd8b8CZQaAbX4EkufqZgTnzbzcgMcGlNKKNv17ZaPrulhv_phOHtwCekzGO20Fazm9eVA/image[20] 29FA5709.png"></a></p>
<p>Opis pojawia się, a właściwie “wjeżdża” na zdjęcie, dzięki czemu nie przesłania treści graficznej, a w odpowiednim momencie daje pełną informację dotyczącą konkretnego zdjęcia&#8230;</p>
<p>Na koniec coś, co lubię, czyli gadżety – to też dodaje stylu i usability dla naszych stron:</p>
<p><a href="http://razorjack.net/quicksand/" target="_blank"><strong>Quicksand</strong></a> – coś, co wywołało u mnie tzw. efekt WOW – uwielbiam gadżety i ta wtyczka zalicza się do jednego z nich. Animowane sortowanie i filtrowanie, dodatkowe przedstawione w sposób</p>
<p> <a href="http://maciejgrabek.com/wp-content/uploads/2010/04/q1.png"><img class="alignnone size-thumbnail wp-image-10175" title="q1" src="http://maciejgrabek.com/wp-content/uploads/2010/04/q1-150x150.png" alt="" width="150" height="150" /></a> <a href="http://maciejgrabek.com/wp-content/uploads/2010/04/q2.png"><img class="alignnone size-thumbnail wp-image-10176" title="q2" src="http://maciejgrabek.com/wp-content/uploads/2010/04/q2-150x150.png" alt="" width="150" height="150" /></a><a rel="WLPP" href="https://mgh8dg.blu.livefilestore.com/y1muyPkmTRO7UJUByXn4PLFv6mLH3JVRY4sCQr8F8SVL2Jp_kY9qBsrjnvg95rPROaXY7VKZWVThau-oj3U4hl3BP4-a98DfxmpVhHbI9IsFPH93EstZCcgajfntcSAGeMeuwtsoInwRMMvkJxzK3Ml5A/image[17] 2708DC26.png"></a></p>
<p>Tego nie można oddać na screenach – to trzeba <a href="http://razorjack.net/quicksand/" target="_blank">zobaczyć i “przeklikać”</a></p>
]]></content:encoded>
			<wfw:commentRss>https://blog.maciejgrabek.com/2010/04/28/jquery-ciekawe-pluginy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
