{"id":15468,"date":"2017-04-24T08:00:55","date_gmt":"2017-04-24T15:00:55","guid":{"rendered":"https:\/\/www.uxpin.com\/studio\/?p=15468"},"modified":"2026-05-08T02:20:39","modified_gmt":"2026-05-08T09:20:39","slug":"make-sortable-table-rows-uxpin","status":"publish","type":"post","link":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/","title":{"rendered":"Simulating Data-sorting in Prototypes Adds Interaction Where It\u2019s Needed"},"content":{"rendered":"<p>Many design systems include simulations of their interactive widgets, although they stop short of providing real content. That&#8217;s not their job. Their job is to play what-if.<\/p>\n<p>For example, while many prototyping tools won&#8217;t sort data on your behalf, you <em>can<\/em> create a &#8220;sortable&#8221; table, if you don&#8217;t mind rearranging a few elements.<\/p>\n<p>Sortable tables rearrange content when people click on their headings. They&#8217;re not impossible to simulate \u2014 far from it. Here are five steps to building sortable tables.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15469\" src=\"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/03\/Final-sortable-table.gif\" alt=\"A sortable table\" width=\"348\" height=\"294\" \/><\/p>\n<h2>1. Create random content in rows and columns<\/h2>\n<p>In a prototyping or design app, make each table column its own <a href=\"https:\/\/www.uxpin.com\/studio\/user-guide\/working-with-elements\/\">text element<\/a>. Although in some cases you&#8217;ll need a ton of content, for brevity here we&#8217;ll only create six rows with three columns. Give them sensible names like &#8220;ID&#8221;, &#8220;name&#8221;, and &#8220;status&#8221;.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15470\" src=\"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/03\/Where-are-layers.png\" alt=\"Where to find layers\" width=\"700\" height=\"231\" \/><\/p>\n<h2>2. Make column headings<\/h2>\n<p>Give each column a title, analogous to a <code>&lt;th&gt;<\/code> element in HTML. As before, make each heading its own text element. Adding a dividing rule line is optional \u2014 use your best visual judgement as defined by your design system&#8217;s typography guidelines.<\/p>\n<p>The more specific your design system is, the more specifically you can name the columns. For example, if a system spells out how special components should behave, like lists of users or a category management system, then your system should include those headings. However, if &#8220;sortable table&#8221; could apply to anything, then generic headings are best. Don&#8217;t forget to spell out what&#8217;s allowed in <a href=\"https:\/\/www.uxpin.com\/studio\/user-guide\/previewing-and-collaborating\/#documentation\">the component&#8217;s notes<\/a>.<\/p>\n<h2>3. Give the element states per column<\/h2>\n<p>Select all of the table data, and make a <a href=\"https:\/\/www.uxpin.com\/studio\/user-guide\/multistate-elements\/\">multistate element<\/a>. Create one state per column, named to reflect their heading. In this case:<\/p>\n<ul>\n<li>&#8220;Sort by ID&#8221;<\/li>\n<li>&#8220;Sort by name&#8221;<\/li>\n<li>&#8220;Sort by status&#8221;<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15488\" src=\"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/04\/Create-a-MSE-3.gif\" alt=\"Create a multistate element for a sortable table\" width=\"700\" height=\"217\" \/><\/p>\n<p>I also recommend you name the multistate element something like &#8220;sortable table&#8221; so you can easily find it when assigning interactions in step five.<\/p>\n<h2>4. Rearrange the content per state<\/h2>\n<p>Alphabetize or sort by number the content in each state, according to its column. If you&#8217;re working with real data sources behind the scenes, <a href=\"https:\/\/www.dreamfactory.com\" target=\"_blank\" rel=\"noopener noreferrer\">DreamFactory<\/a> provides a self-hosted platform that offers governed API access to any data source, making it easier to connect your design prototypes to live databases and backend systems.<\/p>\n<h2>5. Make the headings clickable<\/h2>\n<p>Use <a href=\"https:\/\/www.uxpin.com\/studio\/user-guide\/basic-interactions\/\">interactions<\/a>: &#8220;set state&#8221; to each state to which the column heading refers. (You <em>did<\/em> name the states in step three, didn&#8217;t you?)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-15472\" src=\"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/03\/Where-is-the-interaction.png\" alt=\"Where to find interactions\" width=\"700\" height=\"600\" srcset=\"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/03\/Where-is-the-interaction.png 700w, https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/03\/Where-is-the-interaction-350x300.png 350w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<h2>Designing data<\/h2>\n<p>More than mere visuals style guides, good design systems include simulations of their interactive widgets to play what-if: what if someone clicks this? How should the system react? The simulated solution that suggests answers is just a few states away.<\/p>\n<h2>Demo<\/h2>\n<p>Check out this <a href=\"https:\/\/preview.uxpin.com\/c1e714f21d41e0844dc0f8aefff5115246243939#\/pages\/66662622\/simulate\/no-panels\">live sample<\/a> to see it in action, then grab a <a href=\"https:\/\/www.uxpin.com\">free trial<\/a> to try it yourself.<\/p>\n<section class=\"uxpin-trial-widget\">\n<h2>Join the world&#8217;s best designers who&nbsp;use UXPin.<\/h2>\n<p><span class=\"white-info\">Sign up for a free trial.<\/span><a href=\"https:\/\/www.uxpin.com\/sign-up\" class=\"btn btn-flat sign-up-btn white\">Try it for free!<\/a><\/section>\n","protected":false},"excerpt":{"rendered":"<p>While UXPin won\u2019t sort data on your behalf, you <em>can<\/em> create a \u201csortable\u201d table, if you don\u2019t mind rearranging a few elements.<\/p>\n","protected":false},"author":27,"featured_media":15473,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,11,6,19],"tags":[],"class_list":["post-15468","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-tutorials","category-ux-design","category-uxpin"],"yoast_title":"Add Interaction to your Prototypes by Simulating Data-Sorting","yoast_metadesc":"While UXPin won\u2019t sort data on your behalf, you can create a \u201csortable\u201d table, if you don\u2019t mind rearranging a few elements.","acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.7 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Add Interaction to your Prototypes by Simulating Data-Sorting<\/title>\n<meta name=\"description\" content=\"While UXPin won\u2019t sort data on your behalf, you can create a \u201csortable\u201d table, if you don\u2019t mind rearranging a few elements.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Simulating Data-sorting in Prototypes Adds Interaction Where It\u2019s Needed\" \/>\n<meta property=\"og:description\" content=\"While UXPin won\u2019t sort data on your behalf, you can create a \u201csortable\u201d table, if you don\u2019t mind rearranging a few elements.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/\" \/>\n<meta property=\"og:site_name\" content=\"Studio by UXPin\" \/>\n<meta property=\"article:published_time\" content=\"2017-04-24T15:00:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-08T09:20:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/04\/Sortable-table-teaser.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ben Gremillion\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@benthinkin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ben Gremillion\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/\"},\"author\":{\"name\":\"Ben Gremillion\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#\\\/schema\\\/person\\\/6dd4adede4f1009af0b52cc6531d1d0f\"},\"headline\":\"Simulating Data-sorting in Prototypes Adds Interaction Where It\u2019s Needed\",\"datePublished\":\"2017-04-24T15:00:55+00:00\",\"dateModified\":\"2026-05-08T09:20:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/\"},\"wordCount\":491,\"image\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/Sortable-table-teaser.png\",\"articleSection\":[\"Blog\",\"Tutorials\",\"UX Design\",\"UXPin\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/\",\"url\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/\",\"name\":\"Add Interaction to your Prototypes by Simulating Data-Sorting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/Sortable-table-teaser.png\",\"datePublished\":\"2017-04-24T15:00:55+00:00\",\"dateModified\":\"2026-05-08T09:20:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#\\\/schema\\\/person\\\/6dd4adede4f1009af0b52cc6531d1d0f\"},\"description\":\"While UXPin won\u2019t sort data on your behalf, you can create a \u201csortable\u201d table, if you don\u2019t mind rearranging a few elements.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/Sortable-table-teaser.png\",\"contentUrl\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/wp-content\\\/uploads\\\/2017\\\/04\\\/Sortable-table-teaser.png\",\"width\":720,\"height\":200,\"caption\":\"Sortable table teaser\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/blog\\\/make-sortable-table-rows-uxpin\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Simulating Data-sorting in Prototypes Adds Interaction Where It\u2019s Needed\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#website\",\"url\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/\",\"name\":\"Studio by UXPin\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/#\\\/schema\\\/person\\\/6dd4adede4f1009af0b52cc6531d1d0f\",\"name\":\"Ben Gremillion\",\"description\":\"Ben Gremillion is a Content Strategist at UXPin. He\u2019s worked as both a web designer and a back-end developer. On the side he builds and maintains a CMS for webcomic artists, and participates in annual NaNoWriMo challenges.\",\"sameAs\":[\"https:\\\/\\\/www.uxpin.com\",\"https:\\\/\\\/x.com\\\/benthinkin\"],\"url\":\"https:\\\/\\\/www.uxpin.com\\\/studio\\\/author\\\/bengremillion\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Add Interaction to your Prototypes by Simulating Data-Sorting","description":"While UXPin won\u2019t sort data on your behalf, you can create a \u201csortable\u201d table, if you don\u2019t mind rearranging a few elements.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/","og_locale":"en_US","og_type":"article","og_title":"Simulating Data-sorting in Prototypes Adds Interaction Where It\u2019s Needed","og_description":"While UXPin won\u2019t sort data on your behalf, you can create a \u201csortable\u201d table, if you don\u2019t mind rearranging a few elements.","og_url":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/","og_site_name":"Studio by UXPin","article_published_time":"2017-04-24T15:00:55+00:00","article_modified_time":"2026-05-08T09:20:39+00:00","og_image":[{"width":720,"height":200,"url":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/04\/Sortable-table-teaser.png","type":"image\/png"}],"author":"Ben Gremillion","twitter_card":"summary_large_image","twitter_creator":"@benthinkin","twitter_misc":{"Written by":"Ben Gremillion","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/#article","isPartOf":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/"},"author":{"name":"Ben Gremillion","@id":"https:\/\/www.uxpin.com\/studio\/#\/schema\/person\/6dd4adede4f1009af0b52cc6531d1d0f"},"headline":"Simulating Data-sorting in Prototypes Adds Interaction Where It\u2019s Needed","datePublished":"2017-04-24T15:00:55+00:00","dateModified":"2026-05-08T09:20:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/"},"wordCount":491,"image":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/#primaryimage"},"thumbnailUrl":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/04\/Sortable-table-teaser.png","articleSection":["Blog","Tutorials","UX Design","UXPin"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/","url":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/","name":"Add Interaction to your Prototypes by Simulating Data-Sorting","isPartOf":{"@id":"https:\/\/www.uxpin.com\/studio\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/#primaryimage"},"image":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/#primaryimage"},"thumbnailUrl":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/04\/Sortable-table-teaser.png","datePublished":"2017-04-24T15:00:55+00:00","dateModified":"2026-05-08T09:20:39+00:00","author":{"@id":"https:\/\/www.uxpin.com\/studio\/#\/schema\/person\/6dd4adede4f1009af0b52cc6531d1d0f"},"description":"While UXPin won\u2019t sort data on your behalf, you can create a \u201csortable\u201d table, if you don\u2019t mind rearranging a few elements.","breadcrumb":{"@id":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/#primaryimage","url":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/04\/Sortable-table-teaser.png","contentUrl":"https:\/\/www.uxpin.com\/studio\/wp-content\/uploads\/2017\/04\/Sortable-table-teaser.png","width":720,"height":200,"caption":"Sortable table teaser"},{"@type":"BreadcrumbList","@id":"https:\/\/www.uxpin.com\/studio\/blog\/make-sortable-table-rows-uxpin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.uxpin.com\/studio\/"},{"@type":"ListItem","position":2,"name":"Simulating Data-sorting in Prototypes Adds Interaction Where It\u2019s Needed"}]},{"@type":"WebSite","@id":"https:\/\/www.uxpin.com\/studio\/#website","url":"https:\/\/www.uxpin.com\/studio\/","name":"Studio by UXPin","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.uxpin.com\/studio\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.uxpin.com\/studio\/#\/schema\/person\/6dd4adede4f1009af0b52cc6531d1d0f","name":"Ben Gremillion","description":"Ben Gremillion is a Content Strategist at UXPin. He\u2019s worked as both a web designer and a back-end developer. On the side he builds and maintains a CMS for webcomic artists, and participates in annual NaNoWriMo challenges.","sameAs":["https:\/\/www.uxpin.com","https:\/\/x.com\/benthinkin"],"url":"https:\/\/www.uxpin.com\/studio\/author\/bengremillion\/"}]}},"_links":{"self":[{"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/posts\/15468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/comments?post=15468"}],"version-history":[{"count":2,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/posts\/15468\/revisions"}],"predecessor-version":[{"id":59153,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/posts\/15468\/revisions\/59153"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/media\/15473"}],"wp:attachment":[{"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/media?parent=15468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/categories?post=15468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.uxpin.com\/studio\/wp-json\/wp\/v2\/tags?post=15468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}