问题标签 [display-templates]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
564 浏览

javascript - Sharepoint Display Templates How to use Group Display Template

the code in the control display template uses _#= ctx.RenderGroups(ctx) =#_ and there is another JS file named group_content.js that is being called, how do i split my data into groups in order to render some HTML per group?

0 投票
1 回答
52 浏览

visual-studio - 调试 DisplayFor Helper

我正在尝试调试我DisplayFor(model => model.dateOfEmp)最初DateTime会显示日期+时间。为了避免这种情况,我添加了一个带有 ShortDate 的显示模板。

在文件夹DisplayTemplate中添加自定义短日期后,它停止发出默认类 ID。所以我删除了它的模板。但是,它仍然发出 Shortdate 而不是完整的日期 + 时间。DisplayForcss

问题:我想在 Visual Studio 中调试它,并且知道如何找出正在调用的 DisplayFor。?

0 投票
0 回答
1578 浏览

asp.net-core - 如何在 MVC 核心 2.0 中使用 DisplayTemplates

我曾经DisplayTemplates在 MVC5 中使用来摆脱foreach视图中的循环

如果我有一个ProductDtoProductController

我会在ProductDto.cshtml下面放置一个

视图/产品/DisplayTemplates/

或者

视图/共享/显示模板/

将模板用于产品列表:我将foreach使用以下行替换循环以使用模板列出所有产品:@Html.DisplayFor(m=>m.Products);

例如,如果我想ProductDto在不同的显示模板中使用相同的模型 (),ProductDtoPrintView那么我将在Views/Product/DisplayTemplates/name下创建另一个模板ProductDtoPrintView.cshtml并传递templateNameas @Html.DisplayFor(m=>m.Products,"ProductDtoPrintView")

但这似乎不适用于 MVC Core 2.0

我只能让一个模板适用于每个模型。而且 templateName 似乎根本没有任何影响。

我的测试:

什么时候ProductDto.cshtml放在下面Views/Product/DisplayTemplates/

如果我只有一个ProductDto模型显示模板,那么templateName似乎真的没有任何影响。它适用于任何名称或没有名称。

@Html.DisplayFor(x =>x.Products)-- 工作 @Html.DisplayFor(x =>x.Products,"")-- 工作 @Html.DisplayFor(x =>x.Products,"whatever")-- 工作

但是当我为同一个模型添加另一个显示模板时ProductDtoPrintView.cshtml

然后事情就有点搞砸了。

@Html.DisplayFor(x =>x.Products)- 作品

@Html.DisplayFor(x =>x.Products,"")- 作品

@Html.DisplayFor(x =>x.Products,"")- 作品

@Html.DisplayFor(x =>x.Product, "ProductDtoPrintView")--doesn't work 500 内部服务器错误。

@Html.DisplayFor(x =>x.Products, "ProductDto")--doesnt 工作 - 500 错误

@Html.DisplayFor(x =>x.Products, "DisplayTemplates/ProductDto")-- 工作并返回ProductDto.cshtml模板

@Html.DisplayFor(x =>x.Products, "DisplayTemplates/ProductDtoWhatever")-- 工作并返回ProductDto.cshtml模板

@Html.DisplayFor(x =>x.Products, "DisplayTemplates/ProductDtoPrintView")-- 工作并返回ProductDto.cshtml模板

ProductDto.cshtml除非我删除文件,否则基本上我无法让 ProductDtoPrintView 工作。

有人遇到同样的问题吗?以及这个 DisplayTemplates 在 MVC Core 中应该如何工作?

0 投票
1 回答
383 浏览

c# - 如何在 ASP.NET MVC 应用程序的 Razor 引擎中使用 Html.Displar 呈现 ModelMetadata 对象?

我正在尝试利用DisplayTemplatesrazor-engine 中的功能来自动渲染我的显示视图。

我扫描我Model的以找到ModelMetadata我想要显示的每个属性的正确值。但我无法Html.DisplayFor正确使用属性。

我试图像这样展示我的财产

上面的代码“在显示正确值方面”有效,但是它不使用DisplayTemplate导致格式不正确的正确。

例如,我有一个名为的编辑器模板Currency.cshtml,它只显示Model.ToString("C"). 我还有另一个名为的显示模板Status.cshtml,它接受布尔值并返回“活动”或“非活动”。两个显示模板都位于~/Views/Shared/DisplayTemplates.

但由于某种原因Html.DisplayFor()没有寻找合适的template. 这是我的一个视图模型的示例

目前,我的视图显示属性的禁用复选框Active和我的属性的非格式化数字Rate

如何ModelMetadata根据属性数据类型正确显示使用正确显示模板的对象?

0 投票
0 回答
607 浏览

asp.net-mvc - 如何在 razor-engine 中的 ModelMetadata 对象上设置 DisplayFormatString 属性?

我有一个 Asp.Net MVC 5 项目。我正在尝试利用DisplayTemplates使我的视图更加动态。

我正在尝试为任何DateTime属性创建一个显示模板。ViewData.ModelMetadata.DisplayFormatString但由于某种原因,我无法设置属性。

这是我的视图模型的样子

这是我的DateTime.cshtml看法

由于我的EnrolledAt财产装饰有[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]我期望ViewData.ModelMetadata.DisplayFormatString设置为但由于某种原因{0:MM/dd/yyyy}它总是设置为。null

如何ViewData.ModelMetadata.DisplayFormatString从视图模型中设置 ModelMetadata 上的属性,或访问 on 上的值DisplayFormat.DataFormatString

注意:我知道我可以用它来装饰属性[DataType(DataType.Data)]并创建一个Date.cshtml仅显示短日期的模板。但在这种情况下,我希望能够处理任何格式,而不仅仅是日期或时间。

0 投票
1 回答
47 浏览

c# - 如果为接口命名,MVC DisplayTemplate 不呈现

我有一个模型:

和一个 DisplayTemplateDisplayTemplates/Dog.cshtml

在我将文件重命名为IPet.cshtml; 然后绑定失败。我想为DogCat、和使用相同的 DisplayTemplate Rat,所有这些都是.GoatGnuIPet

我怎样才能让绑定工作?

0 投票
1 回答
286 浏览

javascript - 需要在 SharePoint 内容搜索 Web 部件显示模板中设置日期格式

我在 SharePoint 2013 中工作,并且为内容搜索 Web 部件创建了一个自定义显示模板。我的三个字段使用日期,并且所有三个都以长格式返回日期。我想以短格式返回日期,但我似乎无法让它工作。

我已经尝试了这些博客文章中的建议:

http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2014/02/26/useful-javascript-for-working-with-sharepoint-display-templates-spc3000-spc14.aspx

https://sharedpointtips.blogspot.com/2015/01/sharepoint-2013-display-template.html

https://sharepoint.protiviti.com/blog/Lists/Posts/Post.aspx?ID=132

http://sharepointfordeveloper.blogspot.com/2015/11/shareppoint-2013-ctx-variable-and-its_17.html

在标题中:

'Review Date'{Review Date Label}:'ReviewDateOWSDATE',

在 JavaScript 部分我试过这个:

var shortDate = Srch.U.toFormattedDate(dateresponsedue,'ShortDatePattern');

和这个:

0 投票
1 回答
102 浏览

javascript - SharePoint 2013 - 需要从多选人员选取器中拆分名称

我在 SharePoint 2013 中工作,并且为内容搜索 Web 部件创建了一个自定义显示模板。我的三个字段使用多选人员选择器,所有三个字段都在一个字符串中返回名称,如下所示:

布朗、约翰史密斯、迈克琼斯、玛丽

我想以下面显示的格式返回名称,但我似乎无法让它工作:

布朗,约翰;史密斯,迈克;琼斯,玛丽

我已经尝试了这些博客文章中的建议:

https://social.msdn.microsoft.com/Forums/en-US/ea0fe2fe-0757-4c1c-b3cc-2dd99b38bfa1/sharepoint-2013-custom-display-template-people-picker-field-separate-multiple-names- in-display?forum=sharepointdevelopment

https://sharedpointtips.blogspot.com/2015/01/sharepoint-2013-display-template.html

http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2014/02/26/useful-javascript-for-working-with-sharepoint-display-templates-spc3000-spc14.aspx

我已经尝试了第一篇文章中包含的所有建议 - https://social.msdn.microsoft.com/Forums/en-US/ea0fe2fe-0757-4c1c-b3cc-2dd99b38bfa1/sharepoint-2013-custom-display-template -people-picker-field-separate-multiple-names-in-display?forum=sharepointdevelopment

在标题中:

'Response Preparer'{Response Preparer}:'ResponsePreparerOWSUSER'

在身体里:

在 JavaScript 部分我试过这个:

这是我的显示代码:

显示应如下所示:

布朗,约翰;史密斯,迈克;琼斯,玛丽

这是regulatorypartner的输出:

布朗、约翰史密斯、迈克琼斯、玛丽

这是 splitNames 代码(文件包含在 RegisterSod 语句中):

0 投票
2 回答
166 浏览

c# - 存储为 Varchar(9) 的 SSN 的 Razor 页面显示模板

我正在尝试使用破折号显示存储为 Varchar(9) 的 SSN。

数据库中的 SSN 存储为 varchar(9),没有破折号。它不存储为数字,因为如果将其存储为数字,则会删除任何前导零。我不能将 DisplayFormat 属性与 DataFormatString = "{0:###-##-####}" 一起使用,因为这似乎仅在 SSN 存储为 Long 类型时才有效。所以,我正在尝试为它创建一个显示模板。我创建了一个名为 SSN 的 .cshtml 文件并将其放置在 Shared 文件夹内的一个名为 DisplayTemplates 的文件夹中,并且我在 Razor 页面上使用 @Html.DisplayFor(modelItem => item.SSN) 来显示 SSN,但掩码我在显示模板中创建的没有生效。

以下是 SSN.cshtml 显示模板中的代码:

我希望 SSN 显示为:123-45-6789,但继续显示为:123456789。

0 投票
1 回答
191 浏览

asp.net-mvc - 如何根据哪个视图调用它来配置 MVC 下拉列表

我有两个视图,BatchReceipt 和 Receipt 使用相同的模型。到目前为止,他们一直使用相同的 ReceiptType 显示模板。但我希望一个排除某些项目,另一个排除完整列表(因此本质上是第二个 .cshtml 显示模板,称为 ReceiptTypeFull)。如何在 Visual Studio 中配置每个视图以利用不同的显示模板?

显示正在使用的代码的一些补充:

我有文件 ReceiptType.cshtml 被用作 DisplayTemplate ,其中包含以下设置收据下拉菜单

我想使用不同的 DisplayTemplate,称之为 ReceiptTypeFull.cshtml

不同之处在于调用 enumhelper 或 enumhelperfull 来改变填充下拉列表的查询。我的问题是我看不到如何重定向视图以使用不同的 enumhelper/displaytemplate/

谢谢