protected void Page_Load(object sender, EventArgs e)
{
wwScriptVariables scriptVars = new wwScriptVariables();
// *** Add any values static or dynamic
scriptVars.Add("name", "West Wind Technologies");
scriptVars.Add("entered", DateTime.Now);
scriptVars.Add("counter",12.22M);
// *** A cleaner way to get ClientIDs into client code?
scriptVars.Add("txtNameId", txtName.ClientID);
scriptVars.Add("btnSubmitId", btnSubmit.ClientID);
// *** Add a control's value
scriptVars.AddDynamicValue("txtName", this.txtName, "Text");
// *** Done
}
The class then renders a JavaScript object into the page with each of the key values as property names.
<script type="text/javascript">
//<![CDATA[
var serverVars = {
"name": "West Wind Technologies",
"entered": new Date(1202809550345),
"counter": 12.22,
"txtNameId": "txtName",
"btnSubmitId": "btnSubmit",
"txtName": ""
}
//]]>
</script>
Now from anywhere you can access these variables via the static object instance:
var name = serverVars.name;
var entered = serverVars.entered;
var counter = serverVars.counter;
var txtName = document.getElementById(serverVars.txtNameId);