{"id":137,"date":"2010-01-08T16:53:53","date_gmt":"2010-01-08T15:53:53","guid":{"rendered":"http:\/\/blog.rabihtawil.com\/?p=137"},"modified":"2010-01-08T16:53:53","modified_gmt":"2010-01-08T15:53:53","slug":"vbnet-how-to-sort-listview-by-clicked-column","status":"publish","type":"post","link":"http:\/\/www.raytawil.com\/?p=137","title":{"rendered":"VB.NET: How to sort listview by clicked column"},"content":{"rendered":"<p>One of my favorite .NET control is the ListView. It is very useful for displaying multiple records on a spreadsheet format. Column sorting is one the feature of spreadsheet applications that most of end-users are used to. Unfortunately, this is not readily available as property in VB.NET. The ListView Sorting property only sorts items and not the sub-items so it can&#8217;t be use if we want to allow the user to sort your list by any clicked column.<\/p>\n<p><span class=\"fullpost\"><span class=\"Apple-style-span\" style=\"font-size: 85%;\">To make your ListView application capable of column sorting, follow these steps:<\/p>\n<p>1. On your existing project, add a new class with following code:<\/span><\/span><\/p>\n<div id=\"wpshdo_1\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_1\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_1\"><\/a><a id=\"wpshat_1\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_1\"  onClick=\"javascript:wpsh_toggleBlock(1)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_code(1)\" title=\"Show code only\"><img border=\"0\" style=\"border: 0 none\" src=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_print(1)\" title=\"Print code\"><img border=\"0\" style=\"border: 0 none\" src=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img border=\"0\" style=\"border: 0 none\" src=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_1\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"vbnet\" style=\"font-family:monospace;\"><span class=\"kw6\">Imports<\/span> System.<span class=\"me1\">Collections<\/span>\n<span class=\"kw2\">Public<\/span> <span class=\"kw6\">Class<\/span> clsListviewSorter\n <span class=\"kw6\">Implements<\/span> System.<span class=\"me1\">Collections<\/span>.<span class=\"me1\">IComparer<\/span> <span class=\"co1\">' Implements a comparer Implements IComparer\u00a0<\/span>\n <span class=\"kw2\">Private<\/span> m_ColumnNumber <span class=\"kw2\">As<\/span> <span class=\"kw4\">Integer<\/span>\n <span class=\"kw2\">Private<\/span> m_SortOrder <span class=\"kw2\">As<\/span> SortOrder\n <span class=\"kw2\">Public<\/span> <span class=\"kw6\">Sub<\/span> <span class=\"kw2\">New<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw2\">ByVal<\/span> column_number <span class=\"kw2\">As<\/span> <span class=\"kw4\">Integer<\/span>, <span class=\"kw2\">ByVal<\/span> sort_order <span class=\"kw2\">As<\/span> SortOrder<span class=\"br0\">&#41;<\/span>\n m_ColumnNumber <span class=\"sy0\">=<\/span> column_number\n m_SortOrder <span class=\"sy0\">=<\/span> sort_order\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">Sub<\/span>\n <span class=\"co1\">' Compare the items in the appropriate column\u00a0<\/span>\n <span class=\"kw2\">Public<\/span> <span class=\"kw6\">Function<\/span> Compare<span class=\"br0\">&#40;<\/span><span class=\"kw2\">ByVal<\/span> x <span class=\"kw2\">As<\/span> <span class=\"kw4\">Object<\/span>, <span class=\"kw2\">ByVal<\/span> y <span class=\"kw2\">As<\/span> <span class=\"kw4\">Object<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw2\">As<\/span> <span class=\"kw4\">Integer<\/span> <span class=\"kw6\">Implements<\/span> IComparer.<span class=\"me1\">Compare<\/span>\n <span class=\"kw6\">Dim<\/span> item_x <span class=\"kw2\">As<\/span> ListViewItem <span class=\"sy0\">=<\/span> DirectCast<span class=\"br0\">&#40;<\/span>x, ListViewItem<span class=\"br0\">&#41;<\/span>\n <span class=\"kw6\">Dim<\/span> item_y <span class=\"kw2\">As<\/span> ListViewItem <span class=\"sy0\">=<\/span> DirectCast<span class=\"br0\">&#40;<\/span>y, ListViewItem<span class=\"br0\">&#41;<\/span>\n <span class=\"co1\">' Get the sub-item values.\u00a0<\/span>\n <span class=\"kw6\">Dim<\/span> string_x <span class=\"kw2\">As<\/span> <span class=\"kw2\">String<\/span>\n <span class=\"kw6\">If<\/span> item_x.<span class=\"me1\">SubItems<\/span>.<span class=\"me1\">Count<\/span> &lt;<span class=\"sy0\">=<\/span> m_ColumnNumber <span class=\"kw2\">Then<\/span>\n string_x <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;&quot;<\/span>\n <span class=\"kw2\">Else<\/span>\n string_x <span class=\"sy0\">=<\/span> item_x.<span class=\"me1\">SubItems<\/span><span class=\"br0\">&#40;<\/span>m_ColumnNumber<span class=\"br0\">&#41;<\/span>.<span class=\"me1\">Text<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">If<\/span>\n <span class=\"kw6\">Dim<\/span> string_y <span class=\"kw2\">As<\/span> <span class=\"kw2\">String<\/span>\n <span class=\"kw6\">If<\/span> item_y.<span class=\"me1\">SubItems<\/span>.<span class=\"me1\">Count<\/span> &lt;<span class=\"sy0\">=<\/span> m_ColumnNumber <span class=\"kw2\">Then<\/span>\n string_y <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;&quot;<\/span>\n <span class=\"kw2\">Else<\/span>\n string_y <span class=\"sy0\">=<\/span> item_y.<span class=\"me1\">SubItems<\/span><span class=\"br0\">&#40;<\/span>m_ColumnNumber<span class=\"br0\">&#41;<\/span>.<span class=\"me1\">Text<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">If<\/span>\n <span class=\"co1\">' Compare them.\u00a0<\/span>\n <span class=\"kw6\">If<\/span> m_SortOrder <span class=\"sy0\">=<\/span> SortOrder.<span class=\"me1\">Ascending<\/span> <span class=\"kw2\">Then<\/span>\n <span class=\"kw6\">If<\/span> <span class=\"kw7\">IsNumeric<\/span><span class=\"br0\">&#40;<\/span>string_x<span class=\"br0\">&#41;<\/span> <span class=\"kw5\">And<\/span> <span class=\"kw7\">IsNumeric<\/span><span class=\"br0\">&#40;<\/span>string_y<span class=\"br0\">&#41;<\/span> <span class=\"kw2\">Then<\/span>\n <span class=\"kw2\">Return<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw7\">Val<\/span><span class=\"br0\">&#40;<\/span>string_x<span class=\"br0\">&#41;<\/span>.<span class=\"me1\">CompareTo<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw7\">Val<\/span><span class=\"br0\">&#40;<\/span>string_y<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span>\n <span class=\"kw2\">ElseIf<\/span> <span class=\"kw7\">IsDate<\/span><span class=\"br0\">&#40;<\/span>string_x<span class=\"br0\">&#41;<\/span> <span class=\"kw5\">And<\/span> <span class=\"kw7\">IsDate<\/span><span class=\"br0\">&#40;<\/span>string_y<span class=\"br0\">&#41;<\/span> <span class=\"kw2\">Then<\/span>\n <span class=\"kw2\">Return<\/span> <span class=\"br0\">&#40;<\/span>DateTime.<span class=\"me1\">Parse<\/span><span class=\"br0\">&#40;<\/span>string_x<span class=\"br0\">&#41;<\/span>.<span class=\"me1\">CompareTo<\/span><span class=\"br0\">&#40;<\/span>DateTime.<span class=\"me1\">Parse<\/span><span class=\"br0\">&#40;<\/span>string_y<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span>\n <span class=\"kw2\">Else<\/span>\n <span class=\"kw2\">Return<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw2\">String<\/span>.<span class=\"me1\">Compare<\/span><span class=\"br0\">&#40;<\/span>string_x, string_y<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">If<\/span>\n <span class=\"kw2\">Else<\/span>\n <span class=\"kw6\">If<\/span> <span class=\"kw7\">IsNumeric<\/span><span class=\"br0\">&#40;<\/span>string_x<span class=\"br0\">&#41;<\/span> <span class=\"kw5\">And<\/span> <span class=\"kw7\">IsNumeric<\/span><span class=\"br0\">&#40;<\/span>string_y<span class=\"br0\">&#41;<\/span> <span class=\"kw2\">Then<\/span>\n <span class=\"kw2\">Return<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw7\">Val<\/span><span class=\"br0\">&#40;<\/span>string_y<span class=\"br0\">&#41;<\/span>.<span class=\"me1\">CompareTo<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw7\">Val<\/span><span class=\"br0\">&#40;<\/span>string_x<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span>\n <span class=\"kw2\">ElseIf<\/span> <span class=\"kw7\">IsDate<\/span><span class=\"br0\">&#40;<\/span>string_x<span class=\"br0\">&#41;<\/span> <span class=\"kw5\">And<\/span> <span class=\"kw7\">IsDate<\/span><span class=\"br0\">&#40;<\/span>string_y<span class=\"br0\">&#41;<\/span> <span class=\"kw2\">Then<\/span>\n <span class=\"kw2\">Return<\/span> <span class=\"br0\">&#40;<\/span>DateTime.<span class=\"me1\">Parse<\/span><span class=\"br0\">&#40;<\/span>string_y<span class=\"br0\">&#41;<\/span>.<span class=\"me1\">CompareTo<\/span><span class=\"br0\">&#40;<\/span>DateTime.<span class=\"me1\">Parse<\/span><span class=\"br0\">&#40;<\/span>string_x<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span>\n <span class=\"kw2\">Else<\/span>\n <span class=\"kw2\">Return<\/span> <span class=\"br0\">&#40;<\/span><span class=\"kw2\">String<\/span>.<span class=\"me1\">Compare<\/span><span class=\"br0\">&#40;<\/span>string_y, string_x<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">If<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">If<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">Function<\/span>\n<span class=\"kw6\">End<\/span> <span class=\"kw6\">Class<\/span><\/pre><\/div><\/div>\n<p><span class=\"fullpost\"><span class=\"Apple-style-span\" style=\"font-size: 85%;\">2. Declare a private variable on the form where the listview you want to be sorted is located.<\/span><\/span><\/p>\n<p><span class=\"fullpost\"><span class=\"Apple-style-span\" style=\"font-size: 85%;\"><div id=\"wpshdo_2\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_2\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_2\"><\/a><a id=\"wpshat_2\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_2\"  onClick=\"javascript:wpsh_toggleBlock(2)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_code(2)\" title=\"Show code only\"><img border=\"0\" style=\"border: 0 none\" src=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_print(2)\" title=\"Print code\"><img border=\"0\" style=\"border: 0 none\" src=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img border=\"0\" style=\"border: 0 none\" src=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_2\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"vbnet\" style=\"font-family:monospace;\"><span class=\"kw2\">Private<\/span> m_SortingColumn <span class=\"kw2\">As<\/span> ColumnHeader<\/pre><\/div><\/div><\/p>\n<p><span class=\"fullpost\"><span class=\"Apple-style-span\" style=\"font-size: 85%;\">3. Then on the listview&#8217;s ColumnClick event, add the following code<\/span><\/span><\/p>\n<p><span class=\"fullpost\"><span class=\"Apple-style-span\" style=\"font-size: 85%;\"><div id=\"wpshdo_3\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_3\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_3\"><\/a><a id=\"wpshat_3\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_3\"  onClick=\"javascript:wpsh_toggleBlock(3)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_3\" onClick=\"javascript:wpsh_code(3)\" title=\"Show code only\"><img border=\"0\" style=\"border: 0 none\" src=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_3\" onClick=\"javascript:wpsh_print(3)\" title=\"Print code\"><img border=\"0\" style=\"border: 0 none\" src=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img border=\"0\" style=\"border: 0 none\" src=\"http:\/\/www.raytawil.com\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_3\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"vbnet\" style=\"font-family:monospace;\"><span class=\"kw2\">Private<\/span> <span class=\"kw6\">Sub<\/span> ListView1_ColumnClick<span class=\"br0\">&#40;<\/span><span class=\"kw2\">ByVal<\/span> sender <span class=\"kw2\">As<\/span> <span class=\"kw4\">Object<\/span>, <span class=\"kw2\">ByVal<\/span> e <span class=\"kw2\">As<\/span> System.<span class=\"me1\">Windows<\/span>.<span class=\"me1\">Forms<\/span>.<span class=\"me1\">ColumnClickEventArgs<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw2\">Handles<\/span> ListView1.<span class=\"me1\">ColumnClick<\/span>\n <span class=\"co1\">' Get the new sorting column.\u00a0<\/span>\n <span class=\"kw6\">Dim<\/span> new_sorting_column <span class=\"kw2\">As<\/span> ColumnHeader <span class=\"sy0\">=<\/span> ListView1.<span class=\"me1\">Columns<\/span><span class=\"br0\">&#40;<\/span>e.<span class=\"me1\">Column<\/span><span class=\"br0\">&#41;<\/span>\n <span class=\"co1\">' Figure out the new sorting order.\u00a0<\/span>\n <span class=\"kw6\">Dim<\/span> sort_order <span class=\"kw2\">As<\/span> System.<span class=\"me1\">Windows<\/span>.<span class=\"me1\">Forms<\/span>.<span class=\"me1\">SortOrder<\/span>\n <span class=\"kw6\">If<\/span> m_SortingColumn <span class=\"kw2\">Is<\/span> <span class=\"kw2\">Nothing<\/span> <span class=\"kw2\">Then<\/span>\n <span class=\"co1\">' New column. Sort ascending.\u00a0<\/span>\n sort_order <span class=\"sy0\">=<\/span> SortOrder.<span class=\"me1\">Ascending<\/span>\n <span class=\"kw2\">Else<\/span> <span class=\"co1\">' See if this is the same column.\u00a0<\/span>\n <span class=\"kw6\">If<\/span> new_sorting_column.<span class=\"me1\">Equals<\/span><span class=\"br0\">&#40;<\/span>m_SortingColumn<span class=\"br0\">&#41;<\/span> <span class=\"kw2\">Then<\/span>\n <span class=\"co1\">' Same column. Switch the sort order.\u00a0<\/span>\n <span class=\"kw6\">If<\/span> m_SortingColumn.<span class=\"me1\">Text<\/span>.<span class=\"me1\">StartsWith<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;&gt; &quot;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw2\">Then<\/span>\n sort_order <span class=\"sy0\">=<\/span> SortOrder.<span class=\"me1\">Descending<\/span>\n <span class=\"kw2\">Else<\/span>\n sort_order <span class=\"sy0\">=<\/span> SortOrder.<span class=\"me1\">Ascending<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">If<\/span>\n <span class=\"kw2\">Else<\/span>\n <span class=\"co1\">' New column. Sort ascending.\u00a0<\/span>\n sort_order <span class=\"sy0\">=<\/span> SortOrder.<span class=\"me1\">Ascending<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">If<\/span>\n <span class=\"co1\">' Remove the old sort indicator.\u00a0<\/span>\n m_SortingColumn.<span class=\"me1\">Text<\/span> <span class=\"sy0\">=<\/span> m_SortingColumn.<span class=\"me1\">Text<\/span>.<span class=\"me1\">Substring<\/span><span class=\"br0\">&#40;<\/span>2<span class=\"br0\">&#41;<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">If<\/span>\n <span class=\"co1\">' Display the new sort order.\u00a0<\/span>\n m_SortingColumn <span class=\"sy0\">=<\/span> new_sorting_column\n <span class=\"kw6\">If<\/span> sort_order <span class=\"sy0\">=<\/span> SortOrder.<span class=\"me1\">Ascending<\/span> <span class=\"kw2\">Then<\/span>\n m_SortingColumn.<span class=\"me1\">Text<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;&gt; &quot;<\/span> <span class=\"sy0\">&amp;<\/span> m_SortingColumn.<span class=\"me1\">Text<\/span>\n <span class=\"kw2\">Else<\/span>\n m_SortingColumn.<span class=\"me1\">Text<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;&lt; &quot;<\/span> <span class=\"sy0\">&amp;<\/span> m_SortingColumn.<span class=\"me1\">Text<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">If<\/span>\n <span class=\"co1\">' Create a comparer.\u00a0<\/span>\n ListView1.<span class=\"me1\">ListViewItemSorter<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">New<\/span> clsListviewSorter<span class=\"br0\">&#40;<\/span>e.<span class=\"me1\">Column<\/span>, sort_order<span class=\"br0\">&#41;<\/span>\n <span class=\"co1\">' Sort.\u00a0<\/span>\n ListView1.<span class=\"me1\">Sort<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>\n <span class=\"kw6\">End<\/span> <span class=\"kw6\">Sub<\/span><\/pre><\/div><\/div><\/p>\n<p><span class=\"fullpost\"><span class=\"Apple-style-span\" style=\"font-size: 85%;\">There you have it, test your listview application and it should be sorting by the column clicked.<\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of my favorite .NET control is the ListView. It is very useful for displaying multiple records on a spreadsheet format. Column sorting is one the feature of spreadsheet applications that most of end-users are used to. Unfortunately, this is not readily available as property in VB.NET. The ListView Sorting property only sorts items and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[110],"tags":[],"_links":{"self":[{"href":"http:\/\/www.raytawil.com\/index.php?rest_route=\/wp\/v2\/posts\/137"}],"collection":[{"href":"http:\/\/www.raytawil.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.raytawil.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.raytawil.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.raytawil.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=137"}],"version-history":[{"count":0,"href":"http:\/\/www.raytawil.com\/index.php?rest_route=\/wp\/v2\/posts\/137\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.raytawil.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.raytawil.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=137"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.raytawil.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}