Click here to Skip to main content
15,886,110 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
See more:
Hi

I created a jquery confrimbox to confirm user before deleting a row in grid. when i click asp link button before calling jquery to confrim user its suddenly calling c# gridview "gvConAccounts_RowDeleting" function calling...


ASP.NEt Code::
ASP.NET
<asp:TemplateField ItemStyle-Width="10%" HeaderStyle-Width="10%">
<HeaderTemplate>
<asp:Label ID="lblRemove" Text="Remove" runat="server" CssClass="label">
</HeaderTemplate>
<itemtemplate>
<asp:LinkButton ID="lnkRemove" runat="Server" Text="Remove" OnClientClick="return SmartFTRCRMDialogBox('Are you sure to Delete the record?','Contact','Confirm');" CommandName="Delete">
</itemtemplate>


C# code:

C#
protected void gvConAccounts_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
     if (((System.Web.UI.WebControls.RadioButton)(gvConAccounts.Rows[e.RowIndex].Cells[2].Controls[1])).Checked)
     {
           ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "SmartFTRCRMDialogBox('Primary Account cannot be deleted.','Contact','Alert');", true);
           //ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "alert('Primary Account cannot be deleted.');", true);
     }
     else
     {
          DataTable dtConAccounts = (DataTable)Session["ConAccounts"];
          //DataColumn dcAccounts = dtConAccounts.Columns["AcctContactID"];
          //DataColumn[] dcAccContacts = new DataColumn[1];
          //dcAccContacts[0] = dcAccounts;

          //dtConAccounts.PrimaryKey = dcAccContacts;
          int iAcctContactID = Convert.ToInt32(gvConAccounts.DataKeys[e.RowIndex].Value);

          int iAcctContactDelete = ContactCntrller.DeleteContactAccount(iAcctContactID);
          LoadAccountsByContactID();
      }
}


jqery :

JavaScript
$(function() {

        function my_fun(ErrorMessage, ModuleName, DialogBoxType) {
            //alert(message);
            if (DialogBoxType == "Alert") {
                jAlert(ErrorMessage, ModuleName);
            }
            else if (DialogBoxType == "Confirm") {
                jConfirm(ErrorMessage, ModuleName, function(r) {
                    return r;
                });
            }
            else if (DialogBoxType == "Prompt") {
                jPrompt('Type something:', 'Prefilled value', 'Prompt Dialog', function(r) {
                    if (r) alert('You entered ' + r);
                });
            }
            else {
                jAlert(ErrorMessage, ModuleName);
            }
        }
        SmartFTRCRMDialogBox = my_fun;
    })
jquery plugin code:

JavaScript
(function($) {
	
	$.alerts = {
		
		// These properties can be read/written by accessing $.alerts.propertyName from your scripts at any time
		
		verticalOffset: -75,                // vertical offset of the dialog from center screen, in pixels
		horizontalOffset: 0,                // horizontal offset of the dialog from center screen, in pixels/
		repositionOnResize: true,           // re-centers the dialog on window resize
		overlayOpacity: .01,                // transparency level of overlay
		overlayColor: '#FFF',               // base color of overlay
		draggable: true,                    // make the dialogs draggable (requires UI Draggables plugin)
		okButton: ' OK ',         // text for the OK button
		cancelButton: ' Cancel ', // text for the Cancel button
		dialogClass: null,                  // if specified, this class will be applied to all dialogs
		
		// Public methods
		
		alert: function(message, title, callback) {
			if( title == null ) title = 'Alert';
			$.alerts._show(title, message, null, 'alert', function(result) {
				if( callback ) callback(result);
			});
		},
		
		confirm: function(message, title, callback) {
			if( title == null ) title = 'Confirm';
			$.alerts._show(title, message, null, 'confirm', function(result) {
				if( callback ) callback(result);
			});
		},
			
		prompt: function(message, value, title, callback) {
			if( title == null ) title = 'Prompt';
			$.alerts._show(title, message, value, 'prompt', function(result) {
				if( callback ) callback(result);
			});
		},
		
		// Private methods
		
		_show: function(title, msg, value, type, callback) {
			
			$.alerts._hide();
			$.alerts._overlay('show');
			
			$("BODY").append(
			  '<div id="popup_container">' +
			    '<div id="popup_head"><h1 id="popup_title"></h1></div>' +
			    '<div id="popup_content">' +
			      '<div id="popup_message"></div>' +
				'</div>' +
			  '</div>');
			
			if( $.alerts.dialogClass ) $("#popup_container").addClass($.alerts.dialogClass);
			
			// IE6 Fix
			var pos = ($.browser.msie && parseInt($.browser.version) <= 6 ) ? 'absolute' : 'fixed'; 
			
			$("#popup_container").css({
				position: pos,
				zIndex: 99999,
				padding: 0,
				margin: 0
			});

			$("#popup_title").text(title);
			$("#popup_title").addClass(type);
			//$("#popup_content").addClass(type);
			$("#popup_message").text(msg);
			$("#popup_message").html( $("#popup_message").text().replace(/\n/g, '<br />') );
			
			$("#popup_container").css({
				minWidth: $("#popup_container").outerWidth(),
				maxWidth: $("#popup_container").outerWidth()
			});
			
			$.alerts._reposition();
			$.alerts._maintainPosition(true);
			
			switch( type ) {
				case 'alert':
					$("#popup_message").after('<div id="popup_panel"><input type="button" value="' + $.alerts.okButton + '" id="popup_ok" /></div>');
					$("#popup_ok").click( function() {
						$.alerts._hide();
						callback(true);
					});
					$("#popup_ok").focus().keypress( function(e) {
						if( e.keyCode == 13 || e.keyCode == 27 ) $("#popup_ok").trigger('click');
					});
				break;
				case 'confirm':
					$("#popup_message").after('<div id="popup_panel"><input type="button" value="' + $.alerts.okButton + '" id="popup_ok" /> <input type="button" value="' + $.alerts.cancelButton + '" id="popup_cancel" /></div>');
					$("#popup_ok").click( function() {
						$.alerts._hide();
						if( callback ) callback(true);
					});
					$("#popup_cancel").click( function() {
						$.alerts._hide();
						if( callback ) callback(false);
					});
					$("#popup_ok").focus();
					$("#popup_ok, #popup_cancel").keypress( function(e) {
						if( e.keyCode == 13 ) $("#popup_ok").trigger('click');
						if( e.keyCode == 27 ) $("#popup_cancel").trigger('click');
					});
				break;
				case 'prompt':
					$("#popup_message").append('<br /><input type="text" size="30" id="popup_prompt" />').after('<div id="popup_panel"><input type="button" value="' + $.alerts.okButton + '" id="popup_ok" /> <input type="button" value="' + $.alerts.cancelButton + '" id="popup_cancel" /></div>');
					$("#popup_prompt").width( $("#popup_message").width() );
					$("#popup_ok").click( function() {
						var val = $("#popup_prompt").val();
						$.alerts._hide();
						if( callback ) callback( val );
					});
					$("#popup_cancel").click( function() {
						$.alerts._hide();
						if( callback ) callback( null );
					});
					$("#popup_prompt, #popup_ok, #popup_cancel").keypress( function(e) {
						if( e.keyCode == 13 ) $("#popup_ok").trigger('click');
						if( e.keyCode == 27 ) $("#popup_cancel").trigger('click');
					});
					if( value ) $("#popup_prompt").val(value);
					$("#popup_prompt").focus().select();
				break;
			}
			
			// Make draggable
			if( $.alerts.draggable ) {
				try {
					$("#popup_container").draggable({ handle: $("#popup_title") });
					$("#popup_title").css({ cursor: 'move' });
				} catch(e) { /* requires jQuery UI draggables */ }
			}
		},
		
		_hide: function() {
			$("#popup_container").remove();
			$.alerts._overlay('hide');
			$.alerts._maintainPosition(false);
		},
		
		_overlay: function(status) {
			switch( status ) {
				case 'show':
					$.alerts._overlay('hide');
					$("BODY").append('<div id="popup_overlay"></div>');
					$("#popup_overlay").css({
						position: 'absolute',
						zIndex: 99998,
						top: '0px',
						left: '0px',
						width: '100%',
						height: $(document).height(),
						background: $.alerts.overlayColor,
						opacity: $.alerts.overlayOpacity
					});
				break;
				case 'hide':
					$("#popup_overlay").remove();
				break;
			}
		},
		
		_reposition: function() {
			var top = (($(window).height() / 2) - ($("#popup_container").outerHeight() / 2)) + $.alerts.verticalOffset;
			var left = (($(window).width() / 2) - ($("#popup_container").outerWidth() / 2)) + $.alerts.horizontalOffset;
			if( top < 0 ) top = 0;
			if( left < 0 ) left = 0;
			
			// IE6 fix
			if( $.browser.msie && parseInt($.browser.version) <= 6 ) top = top + $(window).scrollTop();
			
			$("#popup_container").css({
				top: top + 'px',
				left: left + 'px'
			});
			$("#popup_overlay").height( $(document).height()-100 );
		},
		
		_maintainPosition: function(status) {
			if( $.alerts.repositionOnResize ) {
				switch(status) {
					case true:
						$(window).bind('resize', $.alerts._reposition);
					break;
					case false:
						$(window).unbind('resize', $.alerts._reposition);
					break;
				}
			}
		}
		
	}
	
	// Shortuct functions
	jAlert = function(message, title, callback) {
		$.alerts.alert(message, title, callback);
	}
	
	jConfirm = function(message, title, callback) {
		$.alerts.confirm(message, title, callback);
	};
		
	jPrompt = function(message, value, title, callback) {
		$.alerts.prompt(message, value, title, callback);
	};
	
})(jQuery);  

      }


Please help me quickly
Posted
Updated 17-Jun-12 19:38pm
v3
Comments
member60 18-Jun-12 0:09am    
I am not sure what exactly for you are using SmartFTRCRMDialogBox for confirm but i suggest to use simple javascript confirm function with liknbutton as :OnClientClick="return confirm('Are you sure you want to delete ?');"
try this and get back.
HarisJayadev 18-Jun-12 23:54pm    
SmartFTRCRMDialogbox is just a javascript object i have created.. i need to use jquery confirm box instead of javascript confirm box.

1 solution

This is because those plug-ins allow the current thread of JS to finish so that they can black out the background. Since the thread finished the C# is firing. Use something that blocks the current thread, such as the built-in confirm().
 
Share this answer
 
Comments
HarisJayadev 18-Jun-12 23:52pm    
my requirement is jquery confirm box... thats y i used that. please help me to resolve that problem
ZurdoDev 19-Jun-12 7:37am    
Then you'll have to call a webservice after the OK button is clicked in the confirm box. You'll have to return false immediately so that the C# code does not fire and then when the OK button is clicked, call a webservice that does what you need it to.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900