我在尝试从服务器端调用WebSchedule.Client.RadGrid1_SelectedIndexChanged
的地方有一个javascript函数。这是代码:
<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>
但是,出现错误“WebSchedule未定义”。我究竟做错了什么?
最佳答案
checkout 所谓的page methods。
顺便说一句,这应该是服务器端方法还是客户端端?
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页中的公共(public)静态页方法。”
这些粗体字意味着您不会在服务器端方法中看到任何缺少 View 状态的控件。
因此-考虑使用“更新面板”控件(我不知道它如何与telerik控件一起使用)或确保您的服务器端方法是完全无状态的(通过javascript函数传递所需的数据)。
无论如何-在我看来,您应该更仔细地研究页面方法的性质。
关于c# - 如何从javascript调用服务器端函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1012400/