{"id":37,"date":"2011-11-08T10:22:00","date_gmt":"2011-11-08T10:22:00","guid":{"rendered":"https:\/\/wdev-blog.azurewebsites.net\/index.php\/2011\/11\/08\/implementing-custom-classes-for-microsoft-ajax-library-part-2\/"},"modified":"2011-11-08T10:22:00","modified_gmt":"2011-11-08T10:22:00","slug":"implementing-custom-classes-for-microsoft-ajax-library-part-2","status":"publish","type":"post","link":"http:\/\/panahy.nl\/index.php\/2011\/11\/08\/implementing-custom-classes-for-microsoft-ajax-library-part-2\/","title":{"rendered":"Implementing Custom Classes for Microsoft AJAX Library (Part 2)"},"content":{"rendered":"<div dir=\"ltr\">\n<div dir=\"ltr\"><span style=\"color: black; font-family: Verdana;\">The <a href=\"http:\/\/wdevs.blogspot.com\/2011\/11\/implementing-custom-classes-for.html\">previous article<\/a> is demonstrates the use of custom class but it makes some assumption which is not best practice for developping pages.<\/span><\/div>\n<\/div>\n<div dir=\"ltr\">\n<div dir=\"ltr\">\n<div dir=\"ltr\"><span style=\"font-family: Verdana;\">In this article I will try to make this one step forward by taking the class names (that were hard coded in the javascript) out of the script and assign them in the page. I will also provide a initialization to assign the same functionality to any page element.<\/span><\/div>\n<div dir=\"ltr\"><\/div>\n<div dir=\"ltr\"><span style=\"font-family: Verdana;\">We start with the construction and pass the element that is using the class:<\/span><\/div>\n<div dir=\"ltr\"><\/div>\n<div dir=\"ltr\"><span style=\"font-family: Verdana;\"><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><\/span><br \/><span style=\"font-family: Verdana;\"><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">Panahy.Ajax.PassTextBox = <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">function<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">(<strong>element<\/strong>) {<br \/>&nbsp;&nbsp;&nbsp; Panahy.Ajax.PassTextBox.initializeBase(<\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">, [<strong>element<\/strong>]);<br \/><span style=\"color: darkgreen; font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\"><br \/>&nbsp;&nbsp;&nbsp; \/\/ initialize internal variables<br \/>&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">._weakCssClass = <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">null<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">;<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp; this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">._mediumCssClass = <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">null<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">;<br \/><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><\/span><\/span><\/span><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp; this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">._strongCssClass = <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">null<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">;<br \/>}<\/span><\/span><\/span><\/span><\/span><\/div>\n<div dir=\"ltr\"><span style=\"font-family: Verdana;\">Next, I call the <span style=\"background-color: #fefdfa; color: #333333; display: inline; float: none; font: normal normal normal 13px\/21px 'Courier New'; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;\">passwordStrengthClass<\/span> method&nbsp;in a new&nbsp;event handler called&nbsp;<span style=\"font-family: Consolas;\"><strong>_onKeyup<\/strong><\/span>&nbsp;which I will apply the&nbsp;css class to the element using get_element():<\/span><\/div>\n<div dir=\"ltr\"><span style=\"font-family: Verdana;\"><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><\/span><br \/><span style=\"font-family: Verdana;\"><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"><\/span><\/span><span style=\"color: darkgreen; font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\">\/\/define key press event<br \/><\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">_onKeyup : <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">function<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">(e) {<br \/><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\">&nbsp;&nbsp;&nbsp; \/\/get password text<br \/><\/span><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: darkgreen;\">&nbsp;&nbsp;&nbsp;&nbsp;<\/span>var<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> pass = <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">.get_element().value;<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp; var<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> strength = <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">.returnPasswordStrength(pass);<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp; switch<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> (strength) {<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">&#8220;Weak&#8221;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">:<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">.get_element().className = <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">._weakCssClass;<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">;<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">&#8220;Medium&#8221;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">:<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">.get_element().className = <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">._mediumCssClass;<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">;<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">&#8220;Strong&#8221;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">:<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">.get_element().className = <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">._strongCssClass;<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">; <br \/>&nbsp;&nbsp;&nbsp; }<br \/>},<\/span><\/span><\/span><\/div>\n<div dir=\"ltr\"><\/div>\n<div dir=\"ltr\"><span style=\"font-family: Verdana;\">Now, I need to tell the AJAX Library to assign the <span style=\"font-family: Consolas;\">_onKeyup<\/span> method to <span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">keyup <\/span><\/span><\/span>event of the element. To do this, I create a delegate and add the handler as follows:<\/span><\/div>\n<div dir=\"ltr\"><\/div>\n<div dir=\"ltr\"><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><br \/><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"><\/span><\/span><span style=\"color: darkgreen; font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\">\/\/initialize the UI control<br \/><\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">initialize: <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">function<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">() {<br \/>&nbsp;&nbsp; Panahy.Ajax.PassTextBox.callBaseMethod(<\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">, <\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">&#8216;initialize&#8217;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">);<br \/><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"><br \/>&nbsp;&nbsp; <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">._onKeyupHandler = Function.createDelegate(<\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">, <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">.<strong>_onKeyup<\/strong>);<br \/>&nbsp;&nbsp; $addHandlers(<\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">.get_element(), {<\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">&#8216;keyup&#8217;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> : <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">.<strong>_onKeyup<\/strong>}, <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">); <br \/>},<\/span><\/span><\/div>\n<div dir=\"ltr\"><span style=\"font-family: Verdana;\">By doing this, I have to remove the reference when cleaning up the things in the dispose method:<\/span><\/div>\n<div dir=\"ltr\"><\/div>\n<div dir=\"ltr\"><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><br \/><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">dispose: <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">function<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">() { <br \/>&nbsp;&nbsp;&nbsp; $<strong>clearHandlers<\/strong>(<\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">.get_element()); <br \/>&nbsp;&nbsp;&nbsp; Panahy.Ajax.PassTextBox.callBaseMethod(<\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">, <\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">&#8216;dispose&#8217;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">);<br \/>},<\/span><\/span><\/div>\n<div dir=\"ltr\"><span style=\"color: black; font-family: Verdana;\">It is almost done, except the definition of the get and set properties which can be done like this:<br \/><\/span><\/div>\n<p><span style=\"color: black; font-family: Verdana;\"><span style=\"color: darkgreen; font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\"> <\/span><\/span><\/span><\/span><\/p>\n<div dir=\"ltr\"><span style=\"color: black; font-family: Verdana;\"><span style=\"color: darkgreen; font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\"><span style=\"color: darkgreen; font-family: Consolas;\">\/\/define properties<br \/><\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">get_weakCssClass: <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">function<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">() {<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp; return<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">this<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">._weakCssClass;<br \/>},<br \/>set_weakCssClass: <span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">function<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">(value) {<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp;&nbsp; t<\/span><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">his<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">._weakCssClass = value;<br \/>},<\/span><\/span><\/span><\/span><\/span><\/div>\n<div dir=\"ltr\"><span style=\"color: black; font-family: Verdana;\">I need to do this for all three properties.<\/span><\/div>\n<div dir=\"ltr\"><span style=\"color: black; font-family: Verdana;\">Now, I can use this in my page after referencing it in the ScriptManager.<\/span><br \/><span style=\"color: black; font-family: Verdana;\"><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><\/span><br \/><span style=\"color: black; font-family: Verdana;\"><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&lt;<\/span><\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">script<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><span style=\"color: red; font-family: Consolas;\"><span style=\"color: red; font-family: Consolas;\"><span style=\"color: red; font-family: Consolas;\">language<\/span><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">=&#8221;javascript&#8221;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> <\/span><\/span><span style=\"color: red; font-family: Consolas;\"><span style=\"color: red; font-family: Consolas;\"><span style=\"color: red; font-family: Consolas;\">type<\/span><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">=&#8221;text\/javascript&#8221;&gt;<br \/><\/span><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp; var<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> app = Sys.Application;<br \/>&nbsp; app.add_init(appInit);<\/p>\n<p><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&nbsp; function<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> appInit(sender, args) {<br \/>&nbsp;&nbsp;&nbsp; $create(Panahy.Ajax.PassTextBox, <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { weakCssClass: <\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">&#8216;weak&#8217;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">, mediumCssClass: <\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">&#8216;medium&#8217;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">, strongCssClass: <\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">&#8216;strong&#8217;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\"> },<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">null<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">, <\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">null<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">, $get(<\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">&#8216;MainContent_TextBoxPassword&#8217;<\/span><\/span><\/span><span style=\"font-family: Consolas;\"><span style=\"font-family: Consolas;\">));<br \/>}<br \/><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&lt;\/<\/span><\/span><\/span><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\"><span style=\"color: maroon; font-family: Consolas;\">script<\/span><\/span><\/span><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\">&gt;<\/span><\/span><\/span><\/span><br \/><span style=\"color: black; font-family: Verdana;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: black; font-family: Verdana;\">In this way, I don&#8217;t need to set anything on the textbox.<\/span><\/span><\/span><\/span><\/span><br \/><span style=\"color: black; font-family: Verdana;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: blue; font-family: Consolas;\"><span style=\"color: black; font-family: Verdana;\">This is still not perfect, In the <a href=\"http:\/\/wdevs.blogspot.com\/2011\/11\/encapsulating-ajax-client-control-into.html\">next article<\/a> I will demonstrate how to put this in a custom ASP.NET Control.<\/span><\/span><\/span><\/span><\/span><\/div>\n<\/div>\n<div dir=\"ltr\">\n<div><span style=\"border-collapse: separate; color: black; font: normal normal normal medium\/normal 'Times New Roman'; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;\"><span style=\"border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;\"> <\/span><\/span><\/p>\n<div style=\"margin: 0px;\"><span style=\"border-collapse: separate; color: black; font: normal normal normal medium\/normal 'Times New Roman'; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;\"><span style=\"border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;\"><span lang=\"NL\" style=\"color: #1f497d;\"><\/span><\/span><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The previous article is demonstrates the use of custom class but it makes some assumption which is not best practice for developping pages. In this article I will try to make this one step forward by taking the class names (that were hard coded in the javascript) out of the script and assign them in &hellip; <a href=\"http:\/\/panahy.nl\/index.php\/2011\/11\/08\/implementing-custom-classes-for-microsoft-ajax-library-part-2\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Implementing Custom Classes for Microsoft AJAX Library (Part 2)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[32,31,18],"tags":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"Pouya Panahy","author_link":"http:\/\/panahy.nl\/index.php\/author\/pouya\/"},"uagb_comment_info":0,"uagb_excerpt":"The previous article is demonstrates the use of custom class but it makes some assumption which is not best practice for developping pages. In this article I will try to make this one step forward by taking the class names (that were hard coded in the javascript) out of the script and assign them in&hellip;","_links":{"self":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/posts\/37"}],"collection":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/comments?post=37"}],"version-history":[{"count":0,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/posts\/37\/revisions"}],"wp:attachment":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/media?parent=37"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/categories?post=37"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/tags?post=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}