【问题标题】:How to pass argument from item in listview to template如何将参数从列表视图中的项目传递到模板
【发布时间】:2016-05-13 08:42:27
【问题描述】:

我对 Asp、kendo 和 javascript 很陌生。因此,如果我的问题很愚蠢,我深表歉意。

我有这个代码

    <script type="text/x-kendo-tmpl" id="portalTemplate">
    <div class="product">
        <a href="@Url.Action(PortalUrl , "Portal")">
            <img src="@Url.Content("../Images/Portal/cs-CZ/")#:ImageName#"          alt="#:ImageName#" style="margin : 4px" />
        </a>
    </div>
</script>

<style>
       .product {
        float: left;
        position: relative;
    }
</style>

<div class="container-fluid">
    <div class="row">
        <div class="col-xs-18 col-md-12">
            @(Html.Kendo().ListView<CS_Shared.MemberShipDataTypes.PortalResult>()
                  .Name("portalListView")
                  .TagName("div")
                  .ClientTemplateId("portalTemplate")
                  .HtmlAttributes(new { style = "height:650px;" })
                  .DataSource(dataSource => {
                      dataSource.Read(read => read.Action("GetPortalData", "Portal"));
                  })
     </div>
   </div>
</div>

问题很清楚,我需要在portalTemplate中传递有关Portal URL的信息。将 PortalUrl 替换为变量,例如“#:PortalUrl#”。有什么帮助吗?

【问题讨论】:

  • 有这方面的消息吗?

标签: javascript asp.net asp.net-mvc kendo-ui


【解决方案1】:

试试这个模板:

<a href="#:replaceUrl('@Url.Action("PortalUrl", "Portal")', PortalUrl) #">

模板会产生如下结果:

<a href="#:replaceUrl('Portal/PortalUrl', PortalUrl) #">

然后在全局范围内声明函数:

<script>
function replaceUrl(original_url, replacement) {
    return original_url.replace('PortalUrl', replacement);
}
</script>

【讨论】:

    猜你喜欢
    • 2020-12-11
    • 1970-01-01
    • 2021-02-08
    • 2020-07-05
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多