I found the solution to this problem. I will try to explain to help someone else in the future. The principle here is that the jQuery dialog is going to do the __doPostBack function directly from Javascript. The key to the problem is shown in the rendered snippet above also pasted here:
<a onclick="return deleteItem(this);" id="ctl00_MainContentPlaceHolder_GridView1_ctl02_lbDelete" class="buttonInRow" href="javascript:__doPostBack('ctl00$MainContentPlaceHolder$GridView1$ctl02$lbDelete','')">Delete</a>
Note the difference in values between ID and the first argument to doPostBack:
id="ctl00_MainContentPlaceHolder_GridView1_ctl02_lbDelete"
versus
('ctl00$MainContentPlaceHolder$GridView1$ctl02$lbDelete'
So, I changed my script to create a "postbackID" from the "uniqueID" as follows:
function deleteItem(element) {
var uniqueID = element.id;
var postbackID = uniqueID.split("_").join("$");
var row = element.parentNode.parentNode;
var PositionTitle = row.cells[0].innerText;
var dialogTitle = 'Permanently Delete Item: ' + PositionTitle + '?';
$("#deleteConfirmationDialog").html('<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>" + "Please click delete to confirm deletion.</p>');
$("#deleteConfirmationDialog").dialog({
title: dialogTitle,
buttons: {
"Delete": function() {
__doPostBack(postbackID, '');
$(this).dialog("close"); },
"Cancel": function () { $(this).dialog("close"); }
}
});
$('#deleteConfirmationDialog').dialog('open');
return false;
}
There are probably more elegant ways to do this but I am thrilled to have successfully implemented the promised results in the great paper on CodeProject by junnark. For example, he retrieves this.name and uses that for direct invocation of __doPostBack. I tried adding the name attribute to my asp:LinkButton but it renders with the "short name" only rather than the full naming container name(s). In his article, he is using an ImageButton while I am using a LinkButton control so that probably is the root of that difference.