Using CSharp.net, you can create a context menu only for IE. This does not work in FireFox.
Here is the codebehind code,
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder htm = new StringBuilder();
htm.Append("<TABLE STYLE='border:1pt solid #808080' BGCOLOR='#CCCCCC' WIDTH='140' HEIGHT='220' CELLPADDING='0' CELLSPACING='1'>");
htm.Append("<TR><TD STYLE='border:1pt solid #CCCCCC'> Line 1</TD></TR>");
htm.Append("<TR><TD STYLE='border:1pt solid #CCCCCC'>Line 2</TD></TR>");
htm.Append("<TR><TD STYLE='border:1pt solid #CCCCCC'> Line 3</TD></TR>");
htm.Append("<TR><TD STYLE='border:1pt solid #CCCCCC'>Line 4</TD></TR>");
htm.Append("<TR><TD STYLE='border:1pt solid #CCCCCC'> Line 5</TD></TR>");
htm.Append("<TR><TD STYLE='border:1pt solid #CCCCCC'>Line 6</TD></TR>");
htm.Append("</TABLE>");
StringBuilder js= new StringBuilder();
js.AppendLine("<script type=text/javascript>");
js.AppendLine("var PopWindow = window.createPopup();");
js.AppendLine("function dPopWindow(x,y) {");
js.AppendLine("var PopupHTML = PopWindow.document.body;");
js.AppendLine("PopupHTML.innerHTML =\""+ htm.ToString() +"\";");
js.AppendLine("PopWindow.show(x, y, 140, 220, document.body);");
js.AppendLine("}");
js.AppendLine("document.oncontextmenu = function() {dPopWindow(event.x,event.y);return false; }");
js.AppendLine("</script>");
RegisterStartupScript("key1", js.ToString());
}