Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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# 如何从javascript调用服务器端函数?_C#_Asp.net_Javascript_.net 3.5 - Fatal编程技术网

C# 如何从javascript调用服务器端函数?

C# 如何从javascript调用服务器端函数?,c#,asp.net,javascript,.net-3.5,C#,Asp.net,Javascript,.net 3.5,我有一个javascript函数,试图从中调用服务器端函数WebSchedule.Client.RadGrid1\u SelectedIndexChanged。代码如下: <script type="text/javascript"> function RowSelected(sender, args) { var dataKeyValue = args.getDataKeyValue("Order_No"); docume

我有一个javascript函数,试图从中调用服务器端函数
WebSchedule.Client.RadGrid1\u SelectedIndexChanged
。代码如下:

<script type="text/javascript">

     function RowSelected(sender, args) 
     {
         var dataKeyValue = args.getDataKeyValue("Order_No");
         document.getElementById("txtOrderno").value = dataKeyValue;
         WebSchedule.Client.RadGrid1_SelectedIndexChanged(sender, args);
     }
 </script>

已选择函数行(发送方,参数)
{
var dataKeyValue=args.getDataKeyValue(“订单号”);
document.getElementById(“txtOrderno”).value=dataKeyValue;
WebSchedule.Client.RadGrid1\u SelectedIndexChanged(发送方,参数);
}
但是,我得到一个错误“WebSchedule未定义”。我做错了什么?

查看所谓的

顺便问一下,这应该是服务器端方法还是客户端方法

function RowSelected(sender, args) { 
    var dataKeyValue = args.getDataKeyValue("Order_No");      
    document.getElementById("txtOrderno").value = dataKeyValue;
    WebSchedule.Client.RadGrid1_SelectedIndexChanged(sender, args); 
} 
在我看来,这是一个javascript函数

据我所知,RadScriptManager继承自System.Web.UI.ScriptManager。这就是EnablePageMethods道具的作用: “获取或设置一个值,该值指示是否可以从客户端脚本调用ASP.NET页面中的公共静态页面方法。”

这些粗体字的意思是——由于缺少viewstate,在服务器端方法中看不到任何控件

因此,考虑使用UPDATE面板控件(我不知道它如何与TeleRik控件一起使用),或者确保服务器端方法完全无状态(通过JavaScript函数传递所需的数据)。 无论如何-在我看来,您应该更仔细地研究页面方法的本质。

客户机=/=服务器


查看异步Javascript和XML。

您的服务器端页面方法必须具有WebMethod属性并声明为公共静态


然后使用javascript,可以使用以下语法调用它们:PageMethods.MethodName()

我已经这样做了,在PageMethods中,它们是真的,但仍然不起作用。底线是服务器端方法感谢您在帮助他人时的良好感觉。:)您确定要使用aspx页面而不是aspx usercontrol从调用此pagemethod吗?这将失败,因为公共静态方法对viewstate=>gridview一无所知。关于viewstate,您是对的,但问题只是调用服务器端方法-与viewstate无关。显然,javascript无法直接调用服务器端事件。这似乎让人惊讶,谢谢。但是我现在的堆栈空间不足。我需要启用ViewState吗?请小心更新面板。如果使用不当,会严重破坏性能。:)