文件里采纳

<dxg:GridColumn.EditSettings >
     <dxg:LookUpEditSettings  x:Name="lookUp" IsTextEditable="False" DisplayMember="ProductName" ValueMember="ProductName" AutoPopulateColumns="False" >
          <dxg:LookUpEditSettings.PopupContentTemplate>
                    <ControlTemplate>
                        <dxg:GridControl x:Name="PART_GridControl">
                            <dxg:GridControl.Columns>
                                <dxg:GridColumn FieldName="ProductName_QuantityPerUnit" UnboundType="String"
                                                UnboundExpression="[ProductName]+' '+[QuantityPerUnit]"/>
                                <!--<dxg:GridColumn FieldName="ProductName"/>
                                <dxg:GridColumn FieldName="QuantityPerUnit"/>-->
                            </dxg:GridControl.Columns>
                            <dxg:GridControl.View>
                                <dxg:TableView AutoWidth="True" />
                            </dxg:GridControl.View>
                        </dxg:GridControl>
                    </ControlTemplate>
                </dxg:LookUpEditSettings.PopupContentTemplate>
                <dxg:LookUpEditSettings.StyleSettings>
                    <dxg:SearchLookUpEditStyleSettings />
           </dxg:LookUpEditSettings.StyleSettings>
      </dxg:LookUpEditSettings>
</dxg:GridColumn.EditSettings>

摘录

  这是grid表格里应用lookup,普通文书只需采取controltemplate里的事物

著作重要是介绍了通过一个第三方类库RazorJS,实现Javascript 文件里应用
.Net MVC Razor 语法,很抢眼,推荐给我们

深信不疑我们都试过在一个 View 里嵌套使用 javascript,这时就足以向来使用
Razor 语法以调用 .NET 的片段方法。如以下代码嵌套在一个 Razor 的 View
里:

?

1
2
3
4
5
<script>
 var currDate = '@DateTime.Now'; //直接调用.NET的方法
  
 console.log(currDate)
</script>

但另一种状态是,要是本身想在一个独门的 JS 文件里应用
Razor,这以上的办法可不行,因为MVC不会直接表明JS文件,唯有放到 Razor
view里才可以。但是在此我向我们推荐一个第三方类库,就可让你从来在单身的
JS 文件里使用 Razor

此类库名字就叫 RazorJS,这是一个开源的类型,可到以下地点下载源码:

https://bitbucket.org/djsolid/razorjs

抑或也足以直接通过Nuget举办安装:

?

1
PM> Install-Package RazorJS

OK,先说说那多少个类库能为大家带来什么样吗。安装后你可以直接在 JS
文件里应用具有 .NET
帮助的不二法门,如下边的代码就可以间接放到独立的JS文件里去行使。此外你仍可以够在JS文件里引用.NET的姓名空间,如要调用
File 对象来读取文本文件内容,就可以直接引用 System.IO 命名空间:

?

1
2
3
@using System.IO;
  
var s = 'Hello at @DateTime.Now \n @File.ReadAllText(System.Web.Hosting.HostingEnvironment.MapPath("~/web.config"))';

运转后就可径直在 JS 里获取到 web.config
文件里的保有内容。看样子挺不错吧,呵呵。这究竟此类库是如何运转的啊?其实它是利用了一个叫
RazorEngine 的类库达到以上效果的。RazorEngine 是一个 Razor
的表明引擎,其遵守分外有力,我事先也在部分品种中选拔过。通过此引擎,你甚至足以间接在
win form 中使用 Razor 语法,呵,不知你有没悟出其利益了?

嗯,不错,有了此引擎,就可以完全独立了 web 环境去行使 MVC 的 Razor
,那多少个职能可让你特别方便地制订一些灵活的模板,如有的 email
模板,你可径直在模板里采用各样.NET
方法竟然自定义的对象,然后动态变化想要的内容。OK,但这么些引擎并不是本次自己要介绍的东西,在此只是顺便说说啊

收受来说一个 RazorJS 的行使方法,即使你是一向通过 Nuget
安装的,那么就会自行帮你安排好
web.config,这是指出的安装情势,否则你就要协调丰硕 web.config
里的配备了,有好几处地点,这里也浑然不知说,我们安装了后可比较之下一下就了解了。要使用
RazorJS 也很简短,只需利用以下语法引用你要的 JS 文件就可以了:

?

1
2
3
<p>
 @Html.RazorJSInline("~/Scripts/Example.js")
</p>

而是要注意一点的是,在你的 web.config 里会有一段配置允许 RazorJS
使用的目录,就是说你的JS文件必须置于此目录里才得以行使此办法来引用:

1
2
3
4
5
<razorJSSettings handlerPath="~/razorjs.axd">
 <allowedPaths>
 <add path="~/Scripts" />
 </allowedPaths>
 </razorJSSettings>

最后要说一下的是其范围。有好的地点本来也有糟糕的单方面,由于其使用的是
RazorEngine ,所以您不得以在 JS 里使用 MVC 的 HTML Helper 方法,即所有
@Html 开端的形式。另一个题材就是其无法辨别 JS
里的注脚代码,就是说假若你在诠释里拔取了 .NET
的办法也一律会进行,假诺你的点子正确就没问题,否则就会暂停 JS
的实施间接报错了,所以不要觉得没用的章程注释掉就足以了哦。

关于无法履行 @Html
helper的题目,我这里提供另一个解决办法,不过这就可修改其源代码,想折腾的爱侣可以尝试。其实这样做也可以应用过多自定义的法门,更加灵敏方便哦。下载了
RazorJS
源码后,你可直接在下面修改然后再行编译一个DLL出来,另一种方法就是将其源码当作另一个项目,直接加到你协调的类型中去。

在其源码中,打开 HtmlTemplateBase.cs
文件,你就可在此添加自己的措施了,然后在这里丰硕的艺术都可径直在 JS
里调用。如在源码中您可窥见已打包的一个 Href 方法,可将 URL
转换为在伏乞客户端可用的
URL。依照此写法,我们就可添加自己的办法,如以下是自我封装一个动态获取国际化资源文件的主意,这样就可径直在JS里使用.NET的资源文件举办国际化了:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class HtmlTemplateBase : TemplateBase
 {
 //手工调用资源文件管理器
 private static ResourceManager resources = (ResourceManager)System.Type.GetType
  ("RazorJS.Resource").GetProperty("ResourceManager").GetValue(null, null);
  
 public HtmlTemplateBase()
 {
  Url = new UrlHelper(HttpContext.Current.Request.RequestContext);
 }
 public string Href(string originalUrl)
 {
  return Extensions.ResolveUrl(originalUrl);
 }
  
 public string GetLangText(string langKey)
 {
  根据key返回相关的语言
  return resources.GetString(langKey);
 }
  
 public UrlHelper Url { get; set; }
 }

lovebet体育官网,接下来在JS里直接调用即可:

?

1
2
var s = '@GetLangText("CoderBlog")';
console.log(s);

运行完后,就可从来在JS里输入 CoderBlog 这一个key的内容啦

相关文章