I'm answering my own question this time around... What I found to be easier to do is to avoid building the JuiceUI:Menu in the code-behind. Instead build a HTML unordered list using the jQueryUI CSS files to style the list. Since jQueryUI is the backbone of JuiceUI, I had no issue getting this to work. Here's my reasoning why I went this route: You can't render server controls in code-behind as a string and assign the output to a div's innerhtml property, but you can render html as a string in the code-behind and assign it to a div's innerhtml property - this allows me to dynamically build the menu. See below for the code that works for me.
HTML
<script type="text/javascript">
$(function () {
$("#menu").menu();
});
</script>
<div id="menuDiv" runat="server">
</div>
C#
str += "<ul id=\"menu\"> ";
//loop through each menuItem, build menu from top down.
foreach (MenuItem m in menuItems)
{
str += "<li>";
str += "<a href=\"#\">" + m.Title + "</a>";
str += "</li>";
}
str += "</ul>";
menuDiv.InnerHtml = str;