ASP.net DataGrid向我不想要的表添加额外信息
以下是DataGrid对我的表所做的操作:ASP.net DataGrid向我不想要的表添加额外信息,asp.net,Asp.net,以下是DataGrid对我的表所做的操作: <table id="ContentPlaceHolder1_articleList" cellspacing="0" style="border-width:0px;border-collapse:collapse;" headertext="File Name" rules="all"> 如何从表中删除不必要的信息 我不想要这种风格的任何东西。我用CSS处理所有这些,因为它们是内联的,所以它覆盖了我的CSS声明 我不在乎ID、ru
<table id="ContentPlaceHolder1_articleList" cellspacing="0" style="border-width:0px;border-collapse:collapse;" headertext="File Name" rules="all">
如何从表中删除不必要的信息
我不想要这种风格的任何东西。我用CSS处理所有这些,因为它们是内联的,所以它覆盖了我的CSS声明
我不在乎ID、rules=“all”(甚至不知道是什么)或HeaderText是否存在,但我很想去掉其余部分。如果你真的想完全控制你的桌子,我建议使用一个。与
DataGrid
控件不同,Repeater
控件不呈现任何不在ItemTemplate
中的HTML,从而使您能够完全控制呈现的代码
<table>
<tr>
<td>Column Header</td>
</tr>
<asp:repeater id="rep" runat="server">
<itemtemplate>
<tr>
<td>
<%#eval("ColumnName") %>
</td>
</tr>
</asp:repeater>
</table>
行标题
如果您真的想完全控制您的桌子,我建议您使用。与DataGrid
控件不同,Repeater
控件不呈现任何不在ItemTemplate
中的HTML,从而使您能够完全控制呈现的代码
<table>
<tr>
<td>Column Header</td>
</tr>
<asp:repeater id="rep" runat="server">
<itemtemplate>
<tr>
<td>
<%#eval("ColumnName") %>
</td>
</tr>
</asp:repeater>
</table>
行标题
正如Curt所建议的那样,您可以使用中继器
控件对输出进行更多控制。另一个选项是ListView
控件,它比中继器提供更多选项
<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
<table class="myclass">
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("ColumnName", "{0:#,###} bytes") %></td>
</tr>
</ItemTemplate>
</asp:ListView>
正如Curt所建议的那样,您可以使用中继器
控件对输出进行更多控制。另一个选项是ListView
控件,它比中继器提供更多选项
<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
<table class="myclass">
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("ColumnName", "{0:#,###} bytes") %></td>
</tr>
</ItemTemplate>
</asp:ListView>
作为参数,Eval/DataItem将给出object/String返回值。在里面
为了转换为3546字节输出,需要将其转换为
整数。对于该onitemdatabound
事件,将需要注册
加价
作为参数,Eval/DataItem将给出object/String返回值。在里面
为了转换为3546字节输出,需要将其转换为
整数。对于该onitemdatabound
事件,将需要注册
加价
这似乎很有效。我确实有一个问题,在我的DataGrid中,我能够使用DataFormatString=“{0:#,###bytes}”来显示3546个字节。这在中继器上是可能的吗?@JamesWilson:是的,你可以在Eval
函数中做到:Eval(“ColumnName”,“{0:#,###bytes}”)
@JamesJohnson你是一位学者和绅士,谢谢!顺便说一句,这是个好名字这似乎很有效。我确实有一个问题,在我的DataGrid中,我能够使用DataFormatString=“{0:#,###bytes}”来显示3546个字节。这在中继器上是可能的吗?@JamesWilson:是的,你可以在Eval
函数中做到:Eval(“ColumnName”,“{0:#,###bytes}”)
@JamesJohnson你是一位学者和绅士,谢谢!顺便说一句,这是个好名字只是查阅了我可以用listview做的其他事情,我不得不说我更喜欢这个解决方案。再次感谢。我只是查阅了我可以用listview做的其他事情,并且不得不说我更喜欢这个解决方案。再次感谢。人力资源管理,我没有添加任何内容,而是根据詹姆斯的建议将其转换为正确的格式。有没有可能不添加您提到的项目会给我带来错误?我在最后尝试过,它开始像我在帖子中提到的那样起作用。如果它已经在你这边起作用了。那么就好了。@JamesWilson:我不希望使用通过Eval
函数提供的格式选项会有任何问题。这个例子基本上也在做同样的事情,只是后面的代码需要做更多的工作。@PankajGarg:您不需要将值转换成那样的整数,因为string.Format
将接受typeobject
作为参数并对其应用格式。在代码隐藏中,只使用DataBinder.Eval(e.Item.DataItem,“ColumnName”、“{0:#、####bytes}”)
Hrm也会更容易,我没有添加任何内容,而是根据James的建议将其转换为正确的格式。有没有可能不添加您提到的项目会给我带来错误?我在最后尝试过,它开始像我在帖子中提到的那样起作用。如果它已经在你这边起作用了。那么就好了。@JamesWilson:我不希望使用通过Eval
函数提供的格式选项会有任何问题。这个例子基本上也在做同样的事情,只是后面的代码需要做更多的工作。@PankajGarg:您不需要将值转换成那样的整数,因为string.Format
将接受typeobject
作为参数并对其应用格式。在代码隐藏中,只使用DataBinder.Eval(e.Item.DataItem,“ColumnName”,“{0:#,####bytes}”)也会更容易些。