Kendo UI - 以编程方式设置参数

Posted

技术标签:

【中文标题】Kendo UI - 以编程方式设置参数【英文标题】:Kendo UI - Set parameter programmatically 【发布时间】:2021-08-26 09:48:50 【问题描述】:
# var myVar = false; #
<div>
    @(html.Kendo().Stepper()
            .Name("stepper")
            .Orientation(StepperOrientationType.Horizontal)
            .Label(true)
            .Indicator(true)
            .Steps(s =>
            
                s.Add().Label("Step_1");
                s.Add().Label("Step_2").Selected(true);
                s.Add().Label("Step_3");
            )
        .ToClientTemplate())
</div>

以上设置 Step_2 为选中的。

如何以编程方式设置它?

例如s.Add().Label("Step_2").Selected(myVar);

【问题讨论】:

【参考方案1】:

您正在弄乱语言层。 myVarjavascript,它在模板中,Html.Kendo()... 是 c#,所以你不能混合它们。您必须在外部模板更改它。

我会做这样的事情:

<div id="stepper-container" data-step="#= myVar #">

然后在模板被渲染后,我会使用 Javascript 来改变它:

let stepperIndex = $('#stepper-container').data('step');
$('#stepper').data('kendoStepper').select(stepperIndex);

【讨论】:

感谢您对语言层的现实检查。 Kendo .Selected() 不接受像 .Name() 那样的“#=myProperty#”语法,例如.Name("stepper#=Id#") 给每个人一个唯一的名字。我绝望地尝试了一个javascript变量。 你的 .select(stepperIndexindex) 相当于点击 UI...你知道如何设置值,这样你就不会触发动画和验证(不能将索引 2 设置为它将从索引 0 传递索引 1) @TDP 我不知道该怎么做,事实上我从来没有使用过那个小部件。一个问题:当您使用设置的值初始化小部件时,它不会触发动画?如果是,您可以尝试另一种方法。您可以尝试使用setOptions 设置它,而不是使用select() 设置值,例如:$('#stepper').data('kendoStepper').setOptions( value: stepperIndex )。值得一试。 .setOptions 不幸的是没有工作,我找不到绕过动画的方法。不过感谢您的帮助。

以上是关于Kendo UI - 以编程方式设置参数的主要内容,如果未能解决你的问题,请参考以下文章

使用 Kendo UI Mobile 以编程方式触发点击事件

如何以编程方式更改 Angular Kendo UI 网格页面索引?

在 kendo ui 网格中以编程方式更改 serverSorting

如何以编程方式为 Kendo Ui 调度程序调用导航事件

Kendo UI - 将参数传递给read()中的JS函数.data()

Angular Kendo Grid:以编程方式选择行