C# 从asp:DataList中删除表标记和跨度标记
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
或
标记呈现的,这是我不想要的
我已经设置了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>