Dynamic content made easy *remix* [How to: Use the new dynamic population support for Toolkit controls]
I previously blogged an update to my sample demonstrating how to use the AJAX Control Toolkit's dynamic population functionality with a data-bound ModalPopup. Someone asked privately what the C# page method would look like in VB, so I figured I'd post a small follow-up to show the straightforward translation to VB.
Here's the original C# code for reference:
[System.Web.Services.WebMethod]
[Microsoft.Web.Script.Services.ScriptMethod]
public static string GetContent(string contextKey)
{
// Create a random color
string color = (new Random()).Next(0xffffff).ToString("x6");
// Use the style specified by the page author
string style = contextKey;
// Display the current time
string time = DateTime.Now.ToLongTimeString();
// Compose the content to return
return "<span style='color:#" + color + "; " + style + "'>" + time + "</span> ";
}
</script>
Translating that to VB is largely a matter of changing the syntactic elements from their C# versions to their VB versions. So "[" becomes "<", "}" becomes "End Function", and so on... Two things that tripped me up because I don't regularly use VB were the translation of the hexadecimal prefix "0x" to "&H" and the translation of "static" to "Shared" - but a quick look at the online documentation for VB sorted me out on both counts. After a short while, I ended up with this:
<System.Web.Services.WebMethod()> _
<Microsoft.Web.Script.Services.ScriptMethod()> _
Public Shared Function GetContent(ByVal contextKey As String) As String
' Create a random color
Dim color As String = (New Random()).Next(&HFFFFFF).ToString("x6")
' Use the style specified by the page author
Dim style As String = contextKey
' Display the current time
Dim time As String = DateTime.Now.ToLongTimeString()
' Compose the content to return
Return "<span style='color:#" + color + "; " + style + "'>" + time + "</span> "
End Function
</script>
I completed the translation by changing the sample page's Page/Language property from "C#" to "VB", ran the sample page, and verified that it worked just like it did before. Of course! :)