Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从asp:DataList中删除表标记和跨度标记_C#_Asp.net_Datalist_Datalistitem - Fatal编程技术网

C# 从asp:DataList中删除表标记和跨度标记

C# 从asp:DataList中删除表标记和跨度标记,c#,asp.net,datalist,datalistitem,C#,Asp.net,Datalist,Datalistitem,DataList是用或标记呈现的,这是我不想要的 我已经设置了RepeatLayout=“Flow”,但这仍然给了我跨度。 我已经设置了RepeaterDirection=“Horizontal”,但这仍然为我提供了表格 如果没有所有的span\tables,如何获得一个简单的数据列表 <asp:DataList ID="MyDataList" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal"> &l

DataList是用
标记呈现的,这是我不想要的

我已经设置了
RepeatLayout=“Flow”
,但这仍然给了我跨度。 我已经设置了
RepeaterDirection=“Horizontal”
,但这仍然为我提供了表格

如果没有所有的span\tables,如何获得一个简单的数据列表

<asp:DataList ID="MyDataList" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal">
   <ItemTemplate>
     ....
   </ItemTemplate>
</asp:Datalist>

....

提前谢谢

您是否需要它成为
数据列表
控件?您可以通过使用
转发器
完全控制呈现的HTML,甚至只需在对象中循环并手动呈现输出。

我想您可能会发现使用一个允许您设置自己的标记的

基本上,创建一个asp repeater,以与datalist几乎相同的方式将数据绑定到它,并在“itemtemplate”标记中构建标记。(警告:这是内存中的内容-我在我的流动笔记本电脑上,所以没有Visual Studio来检查语法。)


我的数据标题
任何你想要的标记。这一点会重复

脚踏板(和页眉)只显示一次。

您可以使用它们来开始和结束列表或表格


您将只获得放在模板中的标记,而不会获得其他标记。如果不需要,可以跳过页眉和页脚。如果您根本不需要标记,只需要在模板中没有标记,数据就会以纯文本的形式显示。

有时您不能使用Repeater,因为DataList提供了额外的可能性(例如通过UPDATE和DELETE命令更新数据库,直接使用asp:DataSource)

因此,如果您仍然需要使用DataList,但希望避免使用html,您可以像我一样在它上面执行一些jQuery

aspx代码:

<ul class="list">
    <asp:DataList ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" DataKeyField="photo_id" RepeatLayout="Flow" RepeatDirection="Horizontal">
        <ItemTemplate>
            <li class="item" id='<%# Eval("photo_id") %>'>
                Whatever else you need here.
            </li>
            </ItemTemplate>
        </asp:DataList>
    </ul>
  • 你还需要什么。
这将生成如下所示的HTML:

<span id="SomeId" style="">
   <span>
      <li class="item ui-droppable" id="31349">
        Whatever else you need here.
     </li>
   </span>
</span>

  • 你还需要什么。
  • 显然,您不需要2个span标记。要删除它们,可以在页面上添加jQuery脚本

    <script type="text/javascript">
    $(document).ready(function () {
        $('.item').unwrap(); $('.item').unwrap();
    });
    </script>
    
    
    $(文档).ready(函数(){
    $('.item').unwrap();$('.item').unwrap();
    });
    
    在我的例子中,我希望生成我控制的无序列表。但是作为obvius,您可以通过改变DataList中的HTML并在jQuery(.item)中定位正确的项,以任何其他方式来实现


    希望这能帮助其他需要数据列表功能但无法使用Repeater的用户。

    我之所以会出现此错误,是因为我在页眉模板中使用了
    ,而在页脚模板中使用了
    ,我将其删除,我在每个模板上使用了一个完整的表,它不再得到不需要的标签。

    由于这是Google上针对这个问题的最重要的结果之一,您可以执行以下操作:

    如果需要Datlist控件,则需要设置属性RepeatLayout=“Flow”


    在这里可以找到Anwser:

    嗯,它只是将一个查询从db解析为一个列表。。我只是想控制一下风格。。使用中继器不会给我span\tables?只有普通数据?@Nat:中继器允许您指定所需的html。@Nat:正确,中继器不应该像数据列表那样包装您的内容。这是一个更好的解决方案,因为OP询问如何使用
    删除
    br
    span
    ,其他所有人都响应OP切换到使用
    <script type="text/javascript">
    $(document).ready(function () {
        $('.item').unwrap(); $('.item').unwrap();
    });
    </script>