c# - javascript 函数 "$find"是否特定于 asp.net webforms 中的 telerik 客户端对象?

标签 c# javascript asp.net webforms telerik

正如问题所指出的,我想知道 javascript 函数“$find”是否只是因为它由 telerik 控件提供而起作用,或者它是否实际上是我可以使用的 webforms 东西。

我知道 $get 是 document.getElementById 的快捷方式,但我想知道 $find 是否由 webforms 提供。如果是这样,我会对如何将客户端对象注册到特定控件 ID 非常感兴趣。

到目前为止,我已将 scriptControl.find("id") 用于我的自定义项(其中 scriptControl 由我提供)。但是,如果有一种更标准的方法可以通过 $find 访问所有客户端对象,我会更喜欢那样。

编辑: 在 Firebug 的帮助下挖掘 MS Code 揭示了这一点:

function Sys$_Application$findComponent(id, parent) {
/// <summary locid="M:J#Sys.Application.findComponent" />
/// <param name="id" type="String"></param>
/// <param name="parent" optional="true" mayBeNull="true"></param>
/// <returns type="Sys.Component" mayBeNull="true"></returns>
var e = Function._validateParams(arguments, [
  {name: "id", type: String},
  {name: "parent", mayBeNull: true, optional: true}
]);

if (e) throw e;

return (parent ?
 ((Sys.IContainer.isInstanceOfType(parent)) ?
   parent.findComponent(id) :
   parent[id] || null) :
   Sys.Application._components[id] || null);
}

做类似的事情

Sys.Application._components["id"] = {clientobject}; 

似乎是一个相当 hacky 的解决方案。

有什么建议吗?

最佳答案

$get$find 都不是 Telerik 特定的。它们包含在 ASP.NET Ajax 库中。 $findSys.Application.findComponent(id, parent) ( reference ) 的快捷方式,所以只要这个库包含在这一页。例如代替

scriptControl.find("id")

你可以做到

$find("id")

请注意,$find 仅在已注册的组件中搜索,即那些使用 Sys.Application.addComponent(component) 方法添加到 Application 实例的组件。

关于c# - javascript 函数 "$find"是否特定于 asp.net webforms 中的 telerik 客户端对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21916071/

相关文章:

C# Moq 方法不返回指定的 bool 值

javascript - knockout JS : Show message when the returned array is empty

c# - 在 web.config 中存储一个字节数组

c# - Internet Explorer 在保存/打开文件时显示乱码?

c# - 清空目录的最佳方法是什么?

c# - 如何使用报表查看器在 asp.net 中创建报表

javascript - 如何预加载网络 worker Assets

javascript - 如何使用 native JavaScript 合并数组内的对象

javascript - 在服务器上发布后,CSS 或 Javascript 文件不起作用

c# - DataGridView设置列背景色的方法