c# - How do I call a JavaScript function from my code behind, the function being on a separate .js file? -


this question has answer here:

code behind:

protected void page_load(object sender, eventargs e) {       page.clientscript.registerclientscriptblock(gettype(), "mykey", "createnotificationtree(" + userid + ")", true); } 

.js file:

function createnotificationtree(userid) {     var data = new kendo.data.hierarchicaldatasource({         transport: {             read: {                 url: "../api/notifications/byuserid/" + userid,                 contenttype: "application/json"             }         },         schema: {             model: {                 children: "notifications"             }         }     });      $("#treeview").kendotreeview({         datasource: data,         loadondemand: true,         checkboxes: {             checkchildren: true         },         datatextfield: ["notificationtype", "notificationdesc"]     }); } 

markup (do need this?):

<script type="text/javascript">             $(document).ready(createnotificationtree(userid)); </script> 

this not working. treeview not loaded on page.

in script block not assigning createnotificationtree called on $(document).ready, call right there. correct way is:

<script type="text/javascript">    $(document).ready(function () {       createnotificationtree(<%= this.userid.tostring() %>);    }); </script> 

then don't need registerclientscriptblock in page_load.

the second option not use $(document).ready, call registerstartupscript (which writes script @ bottom of page, when dom elements available) instead of registerclientscriptblock in page_load.


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -