根据 Appsetting 更改 Telerik 网格列

发布于 2024-11-02 15:14:39 字数 551 浏览 4 评论 0原文

我有一个 Html.Telerik().Grid() ,它绑定到我的 MVC 视图中的模型。我希望它根据 web.config 中的 appsettings 中的值返回一个链接。基本上,如果这是开发服务器,则显示链接但不在生产服务器上,这可能吗?我使用 Ajax 绑定,我的绑定列如下所示:

columns.Bound(f => f.TechnicalKey)
       .ClientTemplate("<# if (FileName != 'status.txt' && StatusText=='PROCESSED') { #><a href='/AType/DownloadAFile/<#= TechnicalKey #>'>Download</a> <# } else { #>Not available<# } #>")
       .Title("").Filterable(false);

我希望 status.txt 成为开发上的链接,但不是生产上的链接(现在就是这样)

谢谢。 杰克

I have a Html.Telerik().Grid() that is bound to a model in my MVC view. I want it to return a link based on a value in the appsettings in the web.config. Basically, if this is the dev server then show the links but not on the production server, is that possible? I use Ajax binding and my bound column looks as follows:

columns.Bound(f => f.TechnicalKey)
       .ClientTemplate("<# if (FileName != 'status.txt' && StatusText=='PROCESSED') { #><a href='/AType/DownloadAFile/<#= TechnicalKey #>'>Download</a> <# } else { #>Not available<# } #>")
       .Title("").Filterable(false);

I want the status.txt to be a link on development but not on production (this is how it is now)

Thank you.
Jack

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

要走干脆点 2024-11-09 15:14:39

您需要根据应用程序是否部署的情况以不同的方式设置客户端模板:

if (/* some check to see if on production which is specific to your implementation */) {
columns.Bound(f => f.TechnicalKey)
       .ClientTemplate("<# if (FileName != 'status.txt' && StatusText=='PROCESSED') { #>Download <# } else { #>Not available<# } #>")
       .Title("").Filterable(false);

} else {
columns.Bound(f => f.TechnicalKey)
       .ClientTemplate("<# if (FileName != 'status.txt' && StatusText=='PROCESSED') { #><a href='/AType/DownloadAFile/<#= TechnicalKey #>'>Download</a> <# } else { #>Not available<# } #>")
       .Title("").Filterable(false);
}

You need to set the client template in a different way depending on the fact your application is deployed or not:

if (/* some check to see if on production which is specific to your implementation */) {
columns.Bound(f => f.TechnicalKey)
       .ClientTemplate("<# if (FileName != 'status.txt' && StatusText=='PROCESSED') { #>Download <# } else { #>Not available<# } #>")
       .Title("").Filterable(false);

} else {
columns.Bound(f => f.TechnicalKey)
       .ClientTemplate("<# if (FileName != 'status.txt' && StatusText=='PROCESSED') { #><a href='/AType/DownloadAFile/<#= TechnicalKey #>'>Download</a> <# } else { #>Not available<# } #>")
       .Title("").Filterable(false);
}
天涯离梦残月幽梦 2024-11-09 15:14:39

实际上,我通过在域对象中添加一个属性来实现这一点,如下所示

    public bool isProduction
    {
      get
      {
        return ConfigurationManager.AppSettings["ActivationURL"].Contains("production");
      }
    }

: 然后在我的视图中添加:

    .Columns(columns =>
                  {
                    columns.Bound(f => f.TechnicalKey)
                      .Template(f => { %>
                                          <% if (f.StatusText == "PROCESSED")
                                              {
                                                if (!f.isProduction || f.FileName != "status.txt")
                                                {                          
                                                  %><a href="/AType/DownloadAFile/<%= f.TechnicalKey %>">Download</a><%
                                                }
                                                else
                                                {
                                                  %>Not available<%
                                                }                                
                                              }
                                              else
                                              {
                                                %>Not available<%
                                              } 
                                            %>
                                    <% })
                      .ClientTemplate("<# if (StatusText=='PROCESSED') { if(!isProduction || FileName!='status.txt') { #><a href='/AType/DownloadAFile/<#= TechnicalKey #>'>Download</a> <# } else { #>Not available<# }} else { #>Not available<# } #>").Encoded(false).Title("").Filterable(false);

通过这种方式,我可以满足初始服务器绑定数据和后来的 Ajax 绑定数据的需求。

I actually achieved this by adding a property in the domain object as follows:

    public bool isProduction
    {
      get
      {
        return ConfigurationManager.AppSettings["ActivationURL"].Contains("production");
      }
    }

and then in the view I had:

    .Columns(columns =>
                  {
                    columns.Bound(f => f.TechnicalKey)
                      .Template(f => { %>
                                          <% if (f.StatusText == "PROCESSED")
                                              {
                                                if (!f.isProduction || f.FileName != "status.txt")
                                                {                          
                                                  %><a href="/AType/DownloadAFile/<%= f.TechnicalKey %>">Download</a><%
                                                }
                                                else
                                                {
                                                  %>Not available<%
                                                }                                
                                              }
                                              else
                                              {
                                                %>Not available<%
                                              } 
                                            %>
                                    <% })
                      .ClientTemplate("<# if (StatusText=='PROCESSED') { if(!isProduction || FileName!='status.txt') { #><a href='/AType/DownloadAFile/<#= TechnicalKey #>'>Download</a> <# } else { #>Not available<# }} else { #>Not available<# } #>").Encoded(false).Title("").Filterable(false);

This way I cater for the initial server bound data and the later Ajax bound data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文