gpt4 book ai didi

javascript - Kendo DropDownList 在加载时在 DataTextField 之前显示 DataValueField

转载 作者:行者123 更新时间:2023-11-30 15:53:20 30 4
gpt4 key购买 nike

以下代码加载 Kendo DropDownList,但当页面呈现时,它首先显示 DataValueField,然后再显示 DataTextField。它在一秒钟后很好地绑定(bind)到 DataTextField,但我不想在它呈现时显示数值。有谁知道在渲染的第一秒只显示 DataTextField 值而不显示 DataValueField 的方法吗?

@(Html.Kendo().DropDownList()
.Name("SomeName")
.DataTextField("SomeTextField")
.DataValueField("SomeValueField")
.DataSource(source => {
source.Read(read => {
read.Url(Url.ExtensionMethodThatReturnsURL("SomeAction", "SomeController"));
}).ServerFiltering(true);
})
.HtmlAttributes(new { @Class = "some-class" })
.Value(businessKey.ToString())
.Events(e => e.Change("Some.Javascript.onEventHandler"))
.Deferred()
)

最佳答案

问题可能是由 .Deferred() 语句引起的,它延迟了小部件的初始化,直到延迟脚本通过

@Html.Kendo().DeferredScripts()

我假设在 DropDownList 文本框的呈现和小部件初始化之间发生了一些耗时的事情。因此,您会在普通的未初始化文本框中看到数值。我有两个建议:

  • 如果可能,将 DeferredScripts() 调用移近 DropDownList 声明。
  • 如果以上不可能或没有产生预期的结果,则暂时隐藏 DropDownList 直到它被初始化。

例如:

DropDownList 和 JavaScript

@(Html.Kendo().DropDownList()
.Name("products")
.DataTextField("ProductName")
.DataValueField("ProductID")
.Filter("contains")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetProducts", "Home");
})
.ServerFiltering(true);
})
.Value("3")
.Deferred()
.HtmlAttributes(new { @class = "temporary-hidden" })
)

// ...Something else here...

@Html.Kendo().DeferredScripts()

<script>

// place this script immediately after the DeferredScripts() call
// and in a document.ready handler to ensure it is executed at the right time

$(function () {
$(".temporary-hidden").removeClass("temporary-hidden");
})

</script>

CSS

.temporary-hidden
{
visibility: hidden;
}

display:none相反,visibility:hidden 样式会使 DropDownList 文本框在隐藏时占据屏幕空间,因此您将避免闪烁和布局重新调整.

关于javascript - Kendo DropDownList 在加载时在 DataTextField 之前显示 DataValueField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38977167/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com