Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ClientScript.RegisterClientScriptBlock仅在PageLoad事件中有效_C#_Asp.net_Registerclientscriptblock_Clientscript - Fatal编程技术网

C# ClientScript.RegisterClientScriptBlock仅在PageLoad事件中有效

C# ClientScript.RegisterClientScriptBlock仅在PageLoad事件中有效,c#,asp.net,registerclientscriptblock,clientscript,C#,Asp.net,Registerclientscriptblock,Clientscript,我正在尝试注册一个简单的脚本- ClientScript.RegisterClientScriptBlock(typeof(Page), "myscript", "<script>testfun();</script>"); ClientScript.RegisterClientScriptBlock(typeof(Page),“myscript”,“testfun();”; 当我将该行放入页面加载事件时,它可以正常工作。但是,每次用户在gridview中选择一行时,

我正在尝试注册一个简单的脚本-

ClientScript.RegisterClientScriptBlock(typeof(Page), "myscript", "<script>testfun();</script>");
ClientScript.RegisterClientScriptBlock(typeof(Page),“myscript”,“testfun();”;

当我将该行放入页面加载事件时,它可以正常工作。但是,每次用户在gridview中选择一行时,我都需要一些客户端函数来执行,因此在gridview.SelectedIndexChanged事件中,我添加了相同的行,但是,它在那里不起作用。有人能指出为什么会发生这种情况,或者指导我找到一个更优雅的解决方案吗?

RegisterClient ScriptBlock不执行脚本,只将脚本发送到页面中,然后发送到客户端。它是一个编程等价物,具有一个
*.js
文件。该脚本仅在客户端加载生成的HTML页面时执行。如果您想在特定控件的事件上运行一些java脚本,则需要将
javascript
方法连接到它,如下所示:

onclick="javascript_method();"

要实现此功能,您必须在
*.js
文件中定义
javascript\u method()
,或者通过
RegisterClientScriptBlock

尝试RegisterStartupScript?如果控件周围有UpdatePanel。您可以使用ScriptManager.RegisterStartupScript。为什么要在下次回发时注册脚本?你应该在初始加载时这样做,如果你想的话,你甚至可以省略SelectedIndex Changed上的回发。实际上,我的页面上有两个部分,它们都在一个单独的updatepanel中,因此当SelectedIndex更改时,整个页面不会加载,这就是我希望脚本运行的时候。因此,在初始加载中调用它将不起作用。我说得对吗@TimSchmelter@madatanicRegisterStartupScript也不工作。