读书人

datalist嵌套表格的严重有关问题头都

发布时间: 2012-01-05 22:36:54 作者: rapoo

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>

读书人网 >asp.net

热点推荐