我正在努力解决烦人的问题。 根据Telerik的说法,我应该能够从客户端找到我的控制权。
var combo = $find(controls.cboDevicesClientID);
console.log("cbo device: " + combo);
我的班级给出控件的地方
function init(servicesFramework, controlsSettings, moduleSettings, resourcesSettings, args) {
sf = servicesFramework;
controls = controlsSettings;
settings = moduleSettings;
resources = resourcesSettings;
params = args;
$("input:radio").click(function () {
setMode($(this).val());
});
}
在我的.ascx中,我的班级是用这种方式调用的。
$(document).ready(function () {
mgModule.DmeWizard.init(
<%= ModuleId %>,
$.ServicesFramework(<%= ModuleId %>),
// Controls
{
scopeWrapperId: '<%= ScopeWrapper.ClientID %>',
cboDevicesClientID: '<%= cboDevices.ClientID %>'
},
// Settings
{
},
// Resources
{
}
);
});
我的console.log在我的设备上始终为空,我不明白为什么。
答案 0 :(得分:2)
确保在 Sys.Application.Load 之后调用$ find(),因为在早期阶段,IScriptControls未初始化并且将返回null
:http://msdn.microsoft.com/en-us/library/bb383829.aspx。
以下是一个例子:
Sys.Application.add_load(function () {
var combo = $find(controls.cboDevicesClientID);
console.log("cbo device: " + combo);
});