BookmarkSubscribeRSS Feed
deleted_user
Not applicable
Hi all,

We used to have a javascript attached to a html to make the column sortable in SAS 8. Unfortunately, the same code failed to work in SAS 9. Is there a new way to make certain columns in an HTML page sortable?

Thanks!
Martin
3 REPLIES 3
Cynthia_sas
SAS Super FREQ
Hi:
If you use the HTML3 destination, you may find that your JavaScript works the way that it used to. HTML3 is the kind of markup that was created by default in SAS 8. So instead of opening and closing the ODS HTML destination, you might try opening and closing ODS HTML3 destination in SAS 9 and see if you get results that are the same as you got in SAS 8.

Otherwise, your best bet for help with this issue is to contact SAS Technical Support. These notes seem to be relevant, too:
http://support.sas.com/kb/24/068.html
http://support.sas.com/kb/24/067.html

cynthia
deleted_user
Not applicable
Thanks Cythnia. I will try the HTML3 way.

I would also like to try making "the script happy" as described in the note below. I wonder if you have the details about how I can do so?

This example will produce an error in SAS 9.1 without some modifications. The JavaScript expects every table header to be enclosed within tags; however, SAS 9.1 places the headers in tags. You can either modify the tagset to make the script happy

Thanks,
Martin
Cynthia_sas
SAS Super FREQ
Hi, Martin:
By far, the easiest thing to do is to use the HTML3 destination. To change the tagset template that generates HTML 4.0 tags
(from the <TH> tag to a <TD> tag ), you would have to use PROC TEMPLATE with the syntax for TAGSET templates to
change the event that was responsible for writing out the <TH> tag.

For example, the HTML4 tagset inherits from the HTMLCSS tagset.
It is in the HTMLCSS tagset that you find this Define Block for the Header Event:
[pre]
define event header;
start:
put "<th"; /* change this line to td */
putq " title=" flyover;
trigger classalign;
trigger style_inline;
trigger rowcol;
put ">";
trigger cell_value;

finish:
trigger cell_value;
put "</th>" NL; /* change this line also to td */
end;

[/pre]

You would need to alter this event's action with PROC TEMPLATE code to change the 'th' to 'td' -- is it do-able?? Yes, absolutely.
But, it's different, so there will be a learning curve, because understanding event processing and changing tagsets
will be entirely different from writing a SAS program.
For one thing, you have to worry about making sure that all the
parent and grandparent tagsets used by your new tagset are identified and available to the new tagset.

For more help with modifying the tagset template, your best bet for help is to contact Tech Support if you really want to go down this road.

cynthia

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 948 views
  • 0 likes
  • 2 in conversation