Login / Register  search  syndication  about

          Kris Halsrud's Blog

Kris Halsrud on development and Integration with CRM and Development

Calling Response.Redirect from a SalesLogix Code Snippet Action Item

In the SalesLogix web client, in a C# Snippet Action Item you can simply call Response.Redirect() directly since it is being called in context of the smartpart it is running from. The smartpart inherits from the ASP.Net UserControl which has the Response method included in it.  For a Code Snippet Action Item, you need to do things just a little bit different.  These action items get compiled into a separate assembly from the user control and therefore do not directly inherit from the UserControl.  The action items do have the form object passed in to every method in the signature:

public static void SomeMethod(ISmartPart form,  EventArgs args)

As you can see from the signature above, form is declared in my sample as an ISmartPart which is really a Sage.Form.Interface type which is not what we want in order to gain access to the underlying UserControl type of the form.. First you will need to cast form to the SmartPart type like so:

Sage.Platform.WebPortal.SmartParts.EntityBoundSmartPart smartpart = form.NativeForm as Sage.Platform.WebPortal.SmartParts.EntityBoundSmartPart;
 Now with the form converted to the EntityBoundSmartPart (which inherits from the UserControl via the SmartPart) you now have access to call the redirect like so:
smartpart.Page.Response.Redirect("something");

 So 2 lines of code instead of one, but not bad.

Sage.Platform.WebPortal.SmartParts.EntityBoundSmartPart smartpart = form.NativeForm as Sage.Platform.WebPortal.SmartParts.EntityBoundSmartPart;
smartpart.Page.Response.Redirect("something");

 

 

What's This?
  
Bookmark and Share

About Kris Halsrud

   Kris Halsrud is a Senior Analyst / Developer for Customer FX Corporation.
Comments

 

Dmitry said:

I have an OnChange action handler of a picklist control. The handler is stored in an external assembly through Code Snippet Action Item. In my case the passed "form" parameter is of type ISprProductExtParamDetails (where "SprProductExtParamDetails" is the name of a QuickForm), and it's not of type ISmartPart. How can I access the Page object in such a case?

July 19, 2012 7:58 AM
 

Dmitry said:

And the casted "smartpart" object doesn't have the "Page" property, only "EntityPage" and "PageWorkItem" properties. What do I do to access the "Page" property?

July 19, 2012 8:04 AM
 

Dmitry said:

Or how else can I access the generated Smart Part's resources?

July 19, 2012 8:10 AM
 

Norman Rice said:

Here is a way I do it:

System.Web.HttpContext.Current.Response.Redirect(string.Format("myForm.aspx?entityId={0}", myId), false);

October 2, 2012 1:58 PM

Leave a Comment

(required)  
(optional)
(required)  
Add
All contents Copyright © 2014 Customer FX Corporation
Customer FX Corporation
2324 University Avenue West, Suite 115
Saint Paul, Minnesota 55114
Tel: 800.728.5783

  Follow @CustomerFX on twitter
Follow the best news, tips, and articles
  Subscribe to Customer FX on youtube
Watch SalesLogix tutorial videos from Customer FX
Login / Register