datalist嵌套表格的严重问题,头都搞大了,请教!!!
代码:
aspx文件
<tr>
<td align= "center " colspan= "2 ">
<asp:DataList ID= "DataList1 " runat= "server " Width= "100% ">
<HeaderTemplate>
<table width= "748 " border= "1 " cellpadding= "4 " cellspacing= "0 " class= "addtable " style= "border-collapse:collapse ">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td colspan= "2 " class= "addwordt1 "> sdfdfgdd </td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:DataList>
</td>
</tr>
<tr>
在ie和firefox中的HTML代码:
<tr>
<td align= "center " colspan= "2 ">
<table id= "DataList1 " cellspacing= "0 " border= "0 " style= "width:100%;border-collapse:collapse; ">
<tr>
<td>
<table width= "748 " border= "1 " cellpadding= "4 " cellspacing= "0 " class= "addtable " style= "border-collapse:collapse ">
</td> ----//
</tr> <tr> ----//
<td> ----//
<tr>
<td colspan= "2 " class= "addwordt1 "> sdfdfgdd </td>
</tr>
</td>
</tr> <tr>
<td>
<tr>
<td colspan= "2 " class= "addwordt1 "> sdfdfgdd </td>
</tr>
</td>
</tr> <tr>
<td>
<tr>
<td colspan= "2 " class= "addwordt1 "> sdfdfgdd </td>
</tr>
</td>
</tr> <tr>
<td>
<tr>
<td colspan= "2 " class= "addwordt1 "> sdfdfgdd </td>
</tr>
</td>
</tr> <tr>
<td>
</table>
</td>
</tr>
问题:在每个重复项都会多出一些乱七八糟的代码,标---//的部分,求教,
如果把整个table放在 <ItemTemplate> 模板里,则html里面会生成太多的table,影响页面加载速度,请问该如何解决?
[解决办法]
用repeater控件就不会有这些代码.
[解决办法]
请看:
www.xproer.com/bbs -- "左边树型目录 " -- "技术交流区 " -- ".NET开发技术 " -- "DataRepeater利用DataRelation显示主从表信息(可控制从表信息隐藏和显示).(DataRepeater嵌套) " 这篇文章
[解决办法]
----//
是在ff中才有的吗?
回上面
<tr> <td colspan= "2 " class= "addwordt1 "> </td> </tr>
[解决办法]
Repeater.ItemCommand 事件
贴段代码给你看看:
<%@ Page Language= "C# " AutoEventWireup= "True " %>
<html>
<head>
<script language= "C# " runat= "server ">
void Page_Load(Object Sender, EventArgs e) {
if (!IsPostBack) {
ArrayList values = new ArrayList();
values.Add(new PositionData( "Microsoft ", "Msft "));
values.Add(new PositionData( "Intel ", "Intc "));
values.Add(new PositionData( "Dell ", "Dell "));
Repeater1.DataSource = values;
Repeater1.DataBind();
}
}
void R1_ItemCommand(Object Sender, RepeaterCommandEventArgs e) {
Label2.Text = "The " + ((Button)e.CommandSource).Text + " button has just been clicked; <br> ";
}
public class PositionData {
private string name;
private string ticker;
public PositionData(string name, string ticker) {
this.name = name;
this.ticker = ticker;
}
public string Name {
get {
return name;
}
}
public string Ticker {
get {
return ticker;
}
}
}
</script>
</head>
<body>
<h3> Repeater Example </h3>
<form runat=server>
<b> Repeater1: </b>
<p>
<asp:Repeater id=Repeater1 OnItemCommand= "R1_ItemCommand " runat= "server ">
<HeaderTemplate>
<table border=1>
<tr>
<td> <b> Company </b> </td>
<td> <b> Symbol </b> </td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td> <%# DataBinder.Eval(Container.DataItem, "Name ") %> </td>
<td> <ASP:Button Text= <%# DataBinder.Eval(Container.DataItem, "Ticker ") %> runat= "server " /> </td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<p>
<asp:Label id=Label2 font-name= "Verdana " ForeColor= "Green " font-size= "10pt " runat= "server "/>
</form>
</body>
</html>