我是一个新用户,无法找到一个示例来展示我正在尝试完成的工作。
我需要在两种不同的上下文中使用相同的 Kendo.DropDownList,但必须更新一个属性 [.Name("DisbursedTo")]。起初,我使用了带有两个单独 ddl 的隐藏/显示方法。它起作用了,除了每个 ddl 小部件都需要一个唯一的“.Name”,所以我对模型属性的更新是关闭的。使用一个 ddl,我正在尝试动态更改 ddl 属性。
默认情况下,我使用“位置”数据加载 ddl(这工作正常)。初始加载后,我使用一个简单的单选按钮组“onclick”切换到“ADUsers”,或返回“Locations”。
cshtml
<label for="DisbursedTo">Disbursed To:</label>
@(Html.Kendo().DropDownList()
.Name("DisbursedTo")
.DataTextField("Name")
.DataValueField("LocationId")
.SelectedIndex(20)
.DataSource(dataSource => dataSource
.Read(read => read.Action("GetLocations", "Disbursement")) // Specify the action method and controller name
.ServerFiltering(true) // If true the DataSource will not filter the data on the client.
)
)
脚本
function OwnerTypeClick(ownerTypeValue) {
if (ownerTypeValue == "P") {
alert("calling DisbursedToADUsers");
DisbursedToADUsers();
}
else {
alert("calling DisbursedToLocations");
DisbursedToLocations();
}
}
function DisbursedToADUsers() {
var adUsersIntranetDataSource = new kendo.data.DataSource({
read: {
action: { "GetADUsersIntranet": "Disbursements" }
}
});
var ddl = $("#DisbursedTo").kendoDropDownList({
dataTextField: "displayName",
dataValueField: "EmployeeNumber",
dataSource: adUsersIntranetDataSource,
autoBind: true
});
ddl.dataSource.read();
}
function DisbursedToLocations() {
var locationsDataSource = new kendo.data.DataSource({
read: {
action: { "GetLocations": "Disbursements" }
}
});
var ddl = $("#DisbursedTo").kendoDropDownList({
dataTextField: "Name",
dataValueField: "LocationId",
dataSource: locationsDataSource,
autoBind: true
});
ddl.dataSource.read();
}
我在“ddl.dataSource.read();”上收到以下错误 所以我没有正确更改/初始化我的数据源。
0x800a138f - Microsoft JScript 运行时错误:无法获取属性“读取”的值:对象为空或未定义
如果有人做过类似的事情,我将非常感谢一些帮助。