Asp.net客户端模板 -

时间:2009-05-21 20:57:00

标签: asp.net-ajax client-templates

是否可以使用asp.net ajax 4.0客户端模板重用客户端模板?我有一个场景,如下面的例子所示。我在这里有两个问题:

  1. 我无法在client-template
  2. 中获得if条件
  3. 如何重复使用u l标签 三种类型的模板 “列”数据(col1,col2,col3 in 例如json)?
  4. 示例代码:

    <style>
        .sys-template { display:none; }
        .list {width:220px; float:left;  margin:0px 0px 0px 10px; background-color:#f2f2f2; }
        </style>
    
        <script src="MicrosoftAjax.debug.js" type="text/javascript"></script>
        <script src="MicrosoftAjaxTemplates.debug.js" type="text/javascript"></script>
    
        <script type="text/javascript">
            var listItems = [{ item: "item1", col: "col1" },
                             { item: "item2", col: "col1" },
                             { item: "item3", col: "col1" },
                             { item: "item4", col: "col2" },
                             { item: "item5", col: "col2" },
                             { item: "item6", col: "col2" },
                             { item: "item7", col: "col2" },
                             { item: "item8", col: "col3" },
                             { item: "item9", col: "col3" },
                             { item: "item10", col: "col3" }]
        </script>
        </head>
    
        <body xmlns:sys="javascript:Sys" xmlns:dataview="javascript:Sys.UI.DataView" sys:activate="*">
        <ul id="col1" class="list sys-template"  sys:attach="dataview" dataview:data="{{ listItems }}">
            <!--* if (col=="col1") { *-->
            <li>{{item}}</li>
            <!--* } *-->
        </ul>
        <ul id="col2" class="list sys-template"  sys:attach="dataview" dataview:data="{{ listItems }}">
            <!--* if (col=="col2") { *-->
            <li>{{item}}</li>
            <!--* } *-->
        </ul>
        <ul id="col3" class="list sys-template"  sys:attach="dataview" dataview:data="{{ listItems }}">
            <!--* if (col=="col3") { *-->
            <li>{{item}}</li>
            <!--* } *-->
        </ul>
        </body>  
    

2 个答案:

答案 0 :(得分:0)

在预览版4中,您使用代码注入代码:before和code:在属性之后而不是注释代码块。

也可以重复使用模板。实际上,框架将为您做到这一点:如果您将两个数据视图的模板属性指向同一个元素,则只会编译和使用一个模板。

答案 1 :(得分:0)

这样的事情应该有用 - 我只是在飞行中打字,所以请原谅我,如果不是完美的话。

<ul id="template1" class="sys-template">
  <li code:if="col==$element.id">{{item}}</li>
</ul>

<ul id="col1" class="list sys-template" sys:attach="dataview" dataview:data="{{listItems }}" dataview:itemtemplate="template1">
</ul>
<ul id="col2" class="list sys-template" sys:attach="dataview" dataview:data="{{listItems }}" dataview:itemtemplate="template1">
</ul>
<ul id="col2" class="list sys-template" sys:attach="dataview" dataview:data="{{listItems }}" dataview:itemtemplate="template1">
</ul>