<?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>Nathan Bridgewater &#187; jQuery</title>
	<atom:link href="http://www.integratedwebsystems.com/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.integratedwebsystems.com</link>
	<description>My Little .NET Sandbox</description>
	<lastBuildDate>Thu, 19 Jan 2012 20:37:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>July 2011 &#8211; My Application Tool Belt for .NET Web Applications</title>
		<link>http://www.integratedwebsystems.com/2011/07/july-2011-my-application-tool-belt-for-net-web-applications/</link>
		<comments>http://www.integratedwebsystems.com/2011/07/july-2011-my-application-tool-belt-for-net-web-applications/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 22:00:00 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.integratedwebsystems.com/?p=1196</guid>
		<description><![CDATA[I really like to talk about tools I use to the people...]]></description>
			<content:encoded><![CDATA[<p>I really like to talk about tools I use to the people I work with. I especially like to push tools into environments where I think could be an improvement to their work flow.&#160; So here it is, my current tool belt. I primarily focus on web applications, so there’s a bias toward those tools. </p>
<p><span id="more-1196"></span><br />
<h3>Web</h3>
<h4><a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBUQFjAA&amp;url=http%3A%2F%2Fwww.microsoft.com%2Fdownload%2Fen%2Fdetails.aspx%3Fid%3D4211&amp;ei=5A8zTvmBNMWEtgeL29mJDQ&amp;usg=AFQjCNGA4tUslvfwMhPKVsgNG7y4BYJSBw">Asp.NET MVC 3 Razor</a></h4>
<p>This one should be obvious by now, but I’m completely in love with Asp.NET MVC 3 Razor. Web forms to me now is a huge turn off, and after using MVC for so long, Web forms seems counter-productive. That’s not to say I push MVC everywhere I go; there are some applications that are, in their current form, working great and in no need of replacement. Nonetheless, if you really want to feel like a web developer again, checkout MVC. </p>
<h4><a href="http://jquery.com/">jQuery</a></h4>
<p>This very cool framework brings to me the power to manipulate the DOM with ease as if it were functional CSS. With built-in helper functions for AJAX &amp; JSON handling, it’s a no brainer when I want to do some real quick javascript work on a website.&#160; Coupled with KnockoutJS, this can be a very powerful set of Web 2.0 tools</p>
<h4><a href="http://api.jquery.com/jquery.tmpl/">jQuery Tmpl</a> &amp; <a href="http://knockoutjs.com/">KnockoutJS</a></h4>
<p>Templating client-side is a breeze with these two tools. If you want to learn how to render content client-side, definitely give these a try first. knockout even has a real-time tutorial website where you can learn to use it. Great stuff!</p>
<h4><a href="http://getfirebug.com/">FireBug</a>/<a href="http://www.google.com/chrome">Chrome</a></h4>
<p>FireBug plugin for Firefox is ultimately my favorite web debug tool for both CSS and javascript. It’s clean, easy to read, and very nicely shows net traffic for ajax calls. I’m not saying the Chrome tools are bad, they’re very pretty and useful. I use Chrome almost full time now for browsing. But definitely while designing/debugging, firefox is my favorite. </p>
<p>&#160;</p>
<h3>Databases</h3>
<h4>At work</h4>
<p>Sql Server (pick an edition) 2008 R2. In the enterprise, this system is awesome in combo with .NET applications. All .NET ORM tools across the board work with it, and it’s very easy to use.&#160; Using the latest Sql Management Studio w/ any other version of sql server is also a breeze. </p>
<h4>At home</h4>
<p>I’m really digging <a href="http://www.mongodb.org/">MongoDB</a>. It’s a complete departure of what I’m used to growing up in the Microsoft world. At the same time it’s redundant, very, very fast, and cuts a ton of work out of my data management in projects since you’re storing documents. Serialize your aggregate root, done!&#160; Very cool. </p>
<p>&#160;</p>
<h3>.NET Data Access</h3>
<p>Pick your flavor, but the two I have most experience recently are: <a href="http://subsonicproject.com">SubSonic</a> &amp; <a href="http://fluentnhibernate.org/">Fluent Nhibernate</a>.&#160; I really dig the new <a href="http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-code-first-walkthrough.aspx">EF 4.1 Code First</a>. But my favorites tend to be the ones that are the simplest to setup and use. (I suppose EF 4.1 could fit that category; Nhib, not so much). Recently with my <a href="http://www.mongodb.org/display/DOCS/CSharp+Language+Center">MongoDB</a> work at home, these layers all went by the wayside. Using a repository, it’s very easy to layer in an abstract CRUD base and let your repository become more business oriented as it should. All these layers work pretty well with that.</p>
<h2>&#160;</h2>
<h3>BDD,Testing</h3>
<h4><a href="https://github.com/machine/machine.specifications">Machine.Specifications</a></h4>
<p>This is the coolest thing ever. I know there are a ton of testing frameworks out there, but this one really makes things simple. I even like the primitive report they generate, which is great for listing out specifications for a project. Together with <a href="http://mvccontrib.codeplex.com/">MvcContrib</a> &amp; <a href="https://github.com/ayende/rhino-mocks">Rhino Mocks</a>, it’s a very powerful testing framework.</p>
<h4><a href="http://mvccontrib.codeplex.com/">MvcContrib</a></h4>
<p>This contains a great set of testing helpers to assist in your test driven development. It has cool methods like AssertViewRendered().ForView(“nameyourview”).ViewData.Model.Shouldxxx&#160; You can use it to assert end-to-end the behavior of your MVC Application. It also contains a nice HTTP Context builder for testing against fake HttpContext.</p>
<h4><a href="https://github.com/ayende/rhino-mocks">Rhino.Mocks</a></h4>
<p>This is a great mocking framework. It’s very easy to use. This is one of those “pick your flavor” type things. There’s a TON of mocking frameworks out there or you could just roll your own. </p>
<h4><a href="http://testdriven.net/">TestDriven.Net</a></h4>
<p>This is a very cool (free for FOSS individual projects) test runner tool for Visual Studio. You can debug, and run with any configured testing framework like Nunit, Xunit, Mspec, etc. This can save you a lot of time; and is a great alternative if you don’t have <a href="http://www.jetbrains.com/resharper/">Resharper</a>. (I’m not a Re# user yet, but we’ve been pushing it at work quite a bit lately; need to give it a spin). </p>
<p>&#160;</p>
<h3>Source Control</h3>
<h4><a href="http://git-scm.com/">git</a></h4>
<p>Man, I love git. This is a very, very powerful SCM, and it’s free. Written by Linus himself, this tool is fast, efficient and very flexible for small or large development teams. It’s very branch/merge friendly and you can setup multiple remote storage areas for your repositories. Coming from a SourceSafe/TFS/Subversion background, this a completely new way of thinking about code management. I highly recommend checking out TekPub’s Mastering Git series and the huge handful of git websites out there dedicated to teaching its use. I push this where I can; especially if a shop is still on SourceSafe.&#160; Yeah it’s command line only; but lemme tell ya, when you really learn how to use and understand it, you’ll never look back. My only shameless preach is that you need to start building code using feature-based branching. Branch, branch, branch. Don’t be afraid of it. </p>
<p><a href="http://code.google.com/p/msysgit/downloads/list">MsysGit</a> is a great Windows port</p>
<h4><a href="http://eagain.net/gitweb/?p=gitosis.git;a=summary">gitosis</a></h4>
<p>Linux based, git repository management. This tool is very easy to use for managing git repositories on a server. It easily sets up SSH based repositories that are accessible from the home directory and provides a nice way of managing repositories and user access via public keys. <a href="https://help.ubuntu.com/community/Git">Gitosis for Ubuntu</a> has some pretty good docs. </p>
<h4><a href="http://viewgit.sourceforge.net/">viewgit</a></h4>
<p>This very tiny php website does a pretty good job of simply enumerating and making available git version history, branches, tags, and blobs over a web interface. (I’m currently looking at CGit and others as an alternative; this just happened to be the first one I tried out). </p>
<h4><a href="https://github.com">github.com</a></h4>
<p>The best SCM website ever. <img src='http://www.integratedwebsystems.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  They have a great <a href="https://github.com/subsonic/SubSonic-3.0/network">git log diagram (network)</a>. They provide a wiki, bug tracker, release tracking, etc for all projects. <a href="https://github.com/mono">Mono</a> has moved their source over to it along with a handful of other large projects. The paid accounts give you access to store your code securely in the cloud while the free accounts let you share and invite community members to contribute to your projects very easily. </p>
<p>&#160;</p>
<p>Enjoy! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.integratedwebsystems.com/2011/07/july-2011-my-application-tool-belt-for-net-web-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross-domain JsonP using Asp.net MVC and jQuery</title>
		<link>http://www.integratedwebsystems.com/2010/07/cross-domain-jsonp-using-asp-net-mvc-and-jquery/</link>
		<comments>http://www.integratedwebsystems.com/2010/07/cross-domain-jsonp-using-asp-net-mvc-and-jquery/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 05:27:01 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[jsonp]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://www.integratedwebsystems.com/?p=897</guid>
		<description><![CDATA[So there are a couple great walkthroughs out there that talk about...]]></description>
			<content:encoded><![CDATA[<p>So there are a couple <a href="http://abcoder.com/javascript/jquery/jsonp-first-timer/">great walkthroughs</a> out there that talk about using <a href="http://api.jquery.com/jQuery.ajax/">jquery jsonp</a> in cross-domain scenarios.  They talk a lot about the requesting and server side, but not so much about how to use the callback. So to clarify, I’ll step through what I did to make this work including providing my implementation for a new ActionResult called JsonPResult for <a href="http://www.asp.net/mvc">MVC</a>.</p>
<p><span id="more-897"></span></p>
<p>Starting out, client-side on the calling page, I setup my script. This function makes a request to the server and expects a jsonp response back. The default “success” handler is optional here and will be invoked along-side the one you specify for jsonp.</p>
<pre class="brush: js; gutter: false;">$.ajax({
    url: 'http://other-domain/api/GetInformation',
    data: { key: 'some data key, this parameter is optional' },
    type: "GET",
    dataType: "jsonp",
    jsonpCallback: "localJsonpCallback"
});

function localJsonpCallback(json) {
    //do stuff...
}</pre>
<p>We need to setup the server side.  I’m using Asp.Net MVC, so I built this new ActionResult for handling Jsonp GET requests. I copied most of the code from the original JsonResult class in System.Web.MVC Ms-Pl code. Before I show you that, you should see it in action. Here I have a controller action that uses JsonpResult:</p>
<pre class="brush: js; gutter: false;">public JsonpResult GetInformation(string key)
{
    var resp = new Core.Model.CustomObject();
    if (validateKey(key))
    {
        resp.Data = "some custom message";
        resp.Success = true;
    }
    else
        resp.Message = "unauthorized";

    return this.Jsonp(resp); //using extension method
}</pre>
<p>This automatically handles all the fancy Jsonp work that goes on behind the scenes.  It serializes the custom object into Json and wraps it with the callback function. So your response appears something like this:</p>
<pre class="brush: js; gutter: false;">localJsonpCallback({"Data":{"Success":true, Message: "some custom message"}});</pre>
<p>I setup an extension method to use<em> controller.Jsonp(object)</em> just as you do the existing <em>controller.Json(object)</em> method already available. This should make it a lot easier to handle. It will inspect the call for the json callback itself so you also don’t have to manually pull it from the request.  It will also work with the two different types of callback requests parameters in use out there like: “jsoncallback” and “callback.”</p>
<pre class="brush: csharp; gutter: false;">/* ****************************************************************************
 *
 * Copyright (c) Microsoft Corporation. All rights reserved.
 *
 * Content of this class was mostly derived from the original
 * JsonResult class in the System.Web.Mvc 2.0 RTM Assembly. This
 * has beeen slightly extended for use with JSONP calls.
 *
 * This software is subject to the Microsoft Public License (Ms-PL).
 * A copy of the license can be found in the license.htm file included
 * in this distribution.
 *
 * You must not remove this notice, or any other, from this software.
 *
 * ***************************************************************************/

namespace System.Web.Mvc
{
    using System;
    using System.Text;
    using System.Web;
    using System.Web.Mvc.Resources;
    using System.Web.Script.Serialization;

    public class JsonpResult : ActionResult
    {

        public JsonpResult()
        {
        }

        public Encoding ContentEncoding
        {
            get;
            set;
        }

        public string ContentType
        {
            get;
            set;
        }

        public object Data
        {
            get;
            set;
        }

        public string JsonCallback { get; set; }

        public override void ExecuteResult(ControllerContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            this.JsonCallback = context.HttpContext.Request["jsoncallback"];

            if (string.IsNullOrEmpty(this.JsonCallback))
                this.JsonCallback = context.HttpContext.Request["callback"];

            if (string.IsNullOrEmpty(this.JsonCallback))
                throw new ArgumentNullException("JsonCallback required for JSONP response.");

            HttpResponseBase response = context.HttpContext.Response;

            if (!String.IsNullOrEmpty(ContentType))
            {
                response.ContentType = ContentType;
            }
            else
            {
                response.ContentType = "application/json";
            }
            if (ContentEncoding != null)
            {
                response.ContentEncoding = ContentEncoding;
            }
            if (Data != null)
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                response.Write(string.Format("{0}({1});", this.JsonCallback, serializer.Serialize(Data)));
            }
        }
    }

    //extension methods for the controller to allow jsonp.
    public static class ContollerExtensions
    {
        public static JsonpResult Jsonp(this Controller controller, object data)
        {
            JsonpResult result = new JsonpResult();
            result.Data = data;
            return result;
        }
    }
}</pre>
<p>When the response is downloaded from the client, it’s invoked and you handle it just as you normally would with any other getJSON success handler. So hopefully this helps clear up any confusion with using JsonP.  There’s about a thousand suggestions I found on doing cross domain JSON and this was just one of the many. I also wrote a simple JsonWebClient class in .Net that will permit the server-side proxy POST to another domain if anyone is interested. I did that before I learned about CORS (preflight post) or this, JsonP. Comments are welcome!</p>
<h3>Sample Code</h3>
<p>Additionally, here is a simple, working demo showing how this works. Be sure to start both websites. Then browse the ClientWebsite and click Test JSONP. This will perform a JSONP GET to the second website.</p>
<p><a href="/resources/p897/JsonPDemo.zip">Download the sample</a></p>
<p>This project is also in the <a href="https://github.com/nathanb/iws-snippets/tree/master/JsonPDemo">IWS Snippets project</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.integratedwebsystems.com/2010/07/cross-domain-jsonp-using-asp-net-mvc-and-jquery/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Using jQuery Modal Dialog Confirmation with an ASP.NET Server Control</title>
		<link>http://www.integratedwebsystems.com/2009/12/using-jquery-modal-dialog-confirmation-with-an-asp-net-server-control/</link>
		<comments>http://www.integratedwebsystems.com/2009/12/using-jquery-modal-dialog-confirmation-with-an-asp-net-server-control/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 22:07:07 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[dialog]]></category>
		<category><![CDATA[modal]]></category>
		<category><![CDATA[postback]]></category>

		<guid isPermaLink="false">http://www.integratedwebsystems.com/?p=413</guid>
		<description><![CDATA[So the other day, I wanted to build a confirmation dialog using...]]></description>
			<content:encoded><![CDATA[<p>So the other day, I wanted to build a confirmation dialog using jQuery with an existing Asp.Net web forms Button control.  I wanted this dialog to be modal; and upon confirmation, I wanted it to postback using the Button&#8217;s server-side click event.  After toying with the jQuery dialog, I realized that its dialog doesn’t suspend the process while waiting for user input. So it also causes problems with confirmation since clicking the original button will always postback. So with a few tweaks, you can prevent the postback and emulate the click event pretty easily.</p>
<p><span id="more-413"></span></p>
<h3>Setup the Dialog and Postback Script</h3>
<p>In my application, we may click the button multiple times. So you’ll need to initialize it on load and actually open it later. As you can see below, we&#8217;re making our dialog modal and setting its autoOpen to false to prevent it from opening during initialization.  The dialog contains two buttons, and in this initialization, we can define their handler code. The confirmation button “Yes, I Understand and Agree” runs a chunk of code emulates the server control Click event on Button1. Notice I used the inline server-side script to gain access to the Page.ClientScript object, which contains a nice handful of helper functions for javascript.</p>
<pre class="brush: js; gutter: false; toolbar: false;">$().ready(function() {
    $("#ConfirmPanel").dialog(
    { autoOpen: false,
        modal: true,
        bgiframe: true,
        width: 400,
        height: 300,
        buttons: {
            'Youbetcha': function() {
                &lt;%=this.Page.ClientScript.GetPostBackEventReference(new PostBackOptions(this.Button1))%&gt;;
            },
            'No Thanks': function() {
                $(this).dialog('close');
            }
        }
    })
});</pre>
<h3>Open the Dialog with OnClientClick</h3>
<p>Next we’ll open the dialog each time our original server control button is clicked. You use the OnClientClick property to do this.</p>
<pre class="brush: js; gutter: false; toolbar: false;">$("#ConfirmPanel").dialog('open'); return false;</pre>
<p>We always return false here. Since the dialog doesn’t suspend the process, it will always finish and immediately postback. So by returning false, we’re preventing the button from posting back and allowing the jquery dialog to appear.</p>
<p>Here’s the full Asp.Net markup:</p>
<pre class="brush: xml; gutter: false; toolbar: false;">&lt;asp:Label ID="lblClicked" runat="server" /&gt;
&lt;asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Test" OnClientClick="javascript: $('#ConfirmPanel').dialog('open'); return false;"/&gt;
&lt;div id="ConfirmPanel" style="width: 400px; height: 200px;"&gt;
    &lt;h2&gt;Terms and Conditions&lt;/h2&gt;
    &lt;p&gt;By accepting, you agree to the following:
        &lt;ul&gt;
            &lt;li&gt;Are you really, really sure???? &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/p&gt;
&lt;/div&gt;</pre>
<h3>The Result</h3>
<p><a href="http://www.integratedwebsystems.com/wp-content/uploads/2009/12/image.png"><img style="display: inline; border-width: 0px;" title="image" src="http://www.integratedwebsystems.com/wp-content/uploads/2009/12/image_thumb.png" border="0" alt="image" width="534" height="325" /></a></p>
<p>Clicking Youbetcha fires the Click event for our Button1.</p>
<p><a href="http://www.integratedwebsystems.com/wp-content/uploads/2009/12/image1.png"><img style="display: inline; border-width: 0px;" title="image" src="http://www.integratedwebsystems.com/wp-content/uploads/2009/12/image_thumb1.png" border="0" alt="image" width="126" height="36" /></a></p>
<p>Updated: 2/16/2010</p>
<p>To answer Matt’s question, I setup a simple web forms page with a data grid and a button within its rows. All the buttons are wired to one event handler and their command argument property is used to provide identifying data to the event handler.  Having said that, here’s the same solution using dynamic confirmation dialog. If you click OK, it will postback using the original button’s information which is displayed on postback.  Noticed I placed a <em>ClientScript.GetPostBackEventReference(uxGrid, string.Empty)</em> within the PageLoad event. Every time the page loads, postback or not, I want it to do this so it will render the __doPostBack client-side function. Without that, it will only work the first time. Subsequent clicks after the first postback will break.</p>
<p>So essentially the solution is to use __doPostBack(clientside_input_name_attribute, &#8221;).  Using the javascript function below we rebuild the buttons for the dialog each time and rewire it to the appropriate location.  So for this, if you didn&#8217;t want to use a grid, you could still use it the same way via OnClientClick with &#8220;this.name&#8221; and pass that to __doPostBack.</p>
<p>Here’s the markup source.  You can also <a href="/resources/p413/jquery_dynamic_confirmation.zip">download the full source code here</a>.</p>
<p>Thanks Matt.</p>
<pre class="brush: xml; gutter: false;">&lt;%@ Page Language="C#" AutoEventWireup="true"  %&gt;
&lt;%@ Import Namespace="System.Collections.Generic" %&gt;

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head runat="server"&gt;
    &lt;title&gt;&lt;/title&gt;

    &lt;script type="text/C#" runat="server"&gt;
        protected void Page_Load(object sender, EventArgs e)
        {
            ClientScript.GetPostBackEventReference(uxGrid, string.Empty);

            if (!Page.IsPostBack)
            {
                List&lt;int&gt; test = new List&lt;int&gt;();
                test.Add(2);
                test.Add(3);
                test.Add(32);
                test.Add(223);
                test.Add(5);
                test.Add(8);
                uxGrid.DataSource = test;
                uxGrid.DataBind();

            }
        }
        protected void uxRowAction_Click(object sender, EventArgs e)
        {
            Button b = sender as Button;
            if (b != null)
            {
                uxTest.Text = "clicked " + b.CommandArgument;
            }
        }

    &lt;/script&gt;

    &lt;link href="smoothness/jquery-ui-1.7.2.custom.css" rel="stylesheet" type="text/css" /&gt;
    &lt;script src="jquery-1.3.2.min.js" type="text/javascript"&gt;&lt;/script&gt;
    &lt;script src="jquery-ui-1.7.2.custom.min.js" type="text/javascript"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;
        $().ready(function() {
            $('#dialogContent').dialog({
                autoOpen: false,
                modal: true,
                bgiframe: true,
                title: "MySql Membership Config Tool",
                width: 800,
                height: 600
            });
        });

        function rowAction(uniqueID) {

            $('#dialogContent').dialog('option', 'buttons',
                {
                    "OK": function() { __doPostBack(uniqueID, ''); $(this).dialog("close"); },
                    "Cancel": function() { $(this).dialog("close"); }
                });

                $('#dialogContent').dialog('open');

            return false;
        }

    &lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;form id="form1" runat="server"&gt;
    &lt;div id="dialogContent"&gt;
        &lt;h3&gt;confirm&lt;/h3&gt;
        &lt;p&gt;Click ok to accept&lt;/p&gt;
    &lt;/div&gt;
    &lt;asp:Literal ID="uxTest" runat="server" /&gt;
    &lt;div&gt;
        &lt;asp:DataGrid ID="uxGrid" runat="server" AutoGenerateColumns="false"&gt;
            &lt;Columns&gt;
                &lt;asp:TemplateColumn&gt;
                    &lt;ItemTemplate&gt;
                        &lt;asp:Button ID="uxRowAction" runat="server" CommandArgument='&lt;%#Container.DataItem.ToString() %&gt;' Text="Row Action" OnClick="uxRowAction_Click" OnClientClick="javascript:return rowAction(this.name);" /&gt;
                    &lt;/ItemTemplate&gt;
                &lt;/asp:TemplateColumn&gt;
            &lt;/Columns&gt;
        &lt;/asp:DataGrid&gt;
    &lt;/div&gt;
    &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.integratedwebsystems.com/2009/12/using-jquery-modal-dialog-confirmation-with-an-asp-net-server-control/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
	</channel>
</rss>

