在Repeater控件怎么显示一对多的关系
我的页面要显示成:小项目1 时间 描述
大项目1 : 小项目1 时间 描述
小项目1 时间 描述
小项目2 时间 描述
大项目2 : 小项目2 时间 描述
小项目2 时间 描述 --------------------编程问答-------------------- Repeater嵌套可以实现各种复杂的显示。 --------------------编程问答-------------------- 这样是不是
<%@ Page Language= "vb " Debug= "true " %>
<%@ Import Namespace= "System.Data " %>
<%@ Import Namespace= "System.Data.OleDb " %>
<script language= "VB " runat= "server ">
dim MyConnection as OleDbConnection
dim cmdSelect as OleDbCommand
dim dtrReader as OleDbDataReader
Sub Page_load(sender as object,e as Eventargs)
MyConnection = New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=c:\inetpub\wwwroot\nhonline\datagrid\kk.mdb ")
if not IsPostBack() then
Mydatagrid_DataBind()
end if
End Sub
Sub Mydatagrid_DataBind()
Dim MyCommand As OleDbDataAdapter = new OleDbDataAdapter( "select * from [class] ", MyConnection)
Dim DS As DataSet = new DataSet()
MyCommand.Fill(DS, "board ")
BigClassList.DataSource=DS.Tables( "board ").DefaultView
BigClassList.DataBind()
End Sub
Function SmallClass(BigClassID) as DataTable
dim SmallClassData as DataSet =new DataSet()
MyConnection.Open()
dim DataAdapter as OleDbDataAdapter = new OleDbDataAdapter( "SELECT * FROM [board] WHERE class= "& BigClassID & " ",MyConnection)
DataAdapter.Fill(SmallClassData, "SmallClassData ")
MyConnection.Close()
return SmallClassData.Tables( "SmallClassData ")
End Function
</script>
<html>
<head>
<title> NHONLINE_BBS_INDEX </title>
<link rel= "stylesheet " href= "css.css " type= "text/css ">
</head>
<body>
<form Runat= "server ">
<asp:Repeater id= "BigClassList " runat= "server ">
<ItemTemplate>
<TABLE style= "BORDER-COLLAPSE: collapse " borderColor= "#797979 " BgColor= "#CACACA " cellSpacing= "0 " cellPadding= "4 " width= "700 " height= "30 " align= "center " border= "1 ">
<TR>
<TD height= "35 " align= "left "> <B> <FONT COLOR= "#CC0000 "> <%#Container.DataItem( "class ")%> </FONT> </B>
</TD>
</TR>
</TABLE>
<!-- ---------------------------------------------------------- -->
<TABLE style= "BORDER-COLLAPSE: collapse " borderColor= "#797979 " BgColor= "#F9F9F9 " cellSpacing= "0 " cellPadding= "4 " width= "700 " align= "center " border= "1 ">
<asp:Repeater id= "SmallClassList " runat= "server " DataSource= ' <%# SmallClass(Container.DataItem( "id ").ToString()) %> '>
<ItemTemplate>
<TR>
<TD valign= "top ">
<TABLE style= "BORDER-COLLAPSE: collapse " borderColor= "#797979 " BgColor= "#F9F9F9 " cellSpacing= "0 " cellPadding= "4 " width= "650 " align= "center " border= "0 ">
<TR>
<TD width= "250 "> <FONT COLOR= "#330099 ">
<A HREF= ' <%# "List_5_5.aspx?BoardID= "& Container.DataItem( "boardid ")%> '> <%#Container.DataItem( "boardtype ")%> </A> </FONT>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</ItemTemplate>
</asp:Repeater>
</TABLE>
</ItemTemplate>
</asp:Repeater>
</form>
</body>
</html>
--------------------编程问答-------------------- repeater嵌套做 --------------------编程问答-------------------- 1、Repeater嵌套
2、后台输出 --------------------编程问答-------------------- repeater 嵌套
private void RpTypeBind()
{//GetQuestionTypeAndCount() 返回一个datatable
this.rptypelist.DataSource = LiftQuestionCtr.GetQuestionTypeAndCount();
this.rptypelist.DataBind();
}
protected void rptypelist_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
//判断里层repeater处于外层repeater的哪个位置( AlternatingItemTemplate,FooterTemplate,
//HeaderTemplate,,ItemTemplate,SeparatorTemplate)
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rep = e.Item.FindControl("rpquestionlist") as Repeater;//找到里层的repeater对象
DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项
int typeid = Convert.ToInt32(rowv["qtid"]); //获取填充子类的id
rep.DataSource = LiftQuestionCtr.GetSomeQuestionsByTypeid(typeid, 2);
rep.DataBind();
}
}
<table border="0" cellpadding="0" cellspacing="0" style="margin-bottom: 5px" width="100%">--------------------编程问答-------------------- 参见
<asp:Repeater runat="server" ID="rptypelist" OnItemDataBound="rptypelist_ItemDataBound">
<ItemTemplate>
<tr>
<td class="fb">
<a href="Lists.aspx?Qtid=<%#Eval("qtid") %>"><%#Eval("qtypename") %></a> <span id="askCount_15"
class="date2">[<%#Eval("typecount")%>]</span>
</td>
</tr>
<tr>
<td>
<div id="askTop2_15" class="ask_list">
<asp:Repeater runat="server" ID="rpquestionlist">
<ItemTemplate>
<a href="Question.aspx?qid=<%#Eval("liftquestionid")%>">
<%#Eval("questiontitle")%></a><br />
</ItemTemplate>
</asp:Repeater>
</div>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
http://dotnet.aspx.cc/Exam/GridViewNested2.aspx
http://dotnet.aspx.cc/article/f73eeaa9-2bdc-47fd-afd2-59f2fa4897f5/read.aspx --------------------编程问答-------------------- repeater --------------------编程问答-------------------- 我的页面只放一个repeater控件啊,哪要怎么实现呢 --------------------编程问答-------------------- <asp:Panel ID="panlList" CssClass="ui-corner-all" runat="server">
<table id="tblist" cellspacing="1" border="0" class="ui-corner-all ui-table-white" width="100%">
<asp:Repeater ID="rpMyTaskList" runat="server" OnItemDataBound="rpMyTaskList_ItemDataBound" >
<HeaderTemplate>
<thead><tr><th colspan="5">
List of today's entries:
</th></tr>
<tr>
<th style="display:none"></th>
<th>Task</th>
<th>Date</th>
<th>Hours</th>
<th>Note</th>
<th>Action</th>
</tr>
</thead>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style="display:none;"><asp:Label ID="lbHeader" runat="server" Text='<%# Eval("TSHeaderID") %>'></asp:Label></td>
<td style="display: none;"><asp:Label ID="lbtaskCd" runat="server" Text='<%# Eval("TaskCd")%>'></asp:Label>
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("AccountCd").ToString() + ": " + Eval("Descr").ToString()%>'></asp:Label>
</td>
<td>
<asp:Label ID="lbDate" runat="server" Text='<%# Eval("Date","{0:MM/dd/yyyy}")%>'> </asp:Label>
</td>
<td><asp:TextBox ID="txtHours" Width="50px" onblur="calTotal(this)" runat="server" Text='<%# PopulateHours(Eval("Hours")) %>'></asp:TextBox>
<asp:RegularExpressionValidator ID="reHour" runat="server" ControlToValidate="txtHours"
ErrorMessage="Invalid hours." ValidationGroup="vEdit" ValidationExpression="^\d+$|^\d+?\.?\d+$">
</asp:RegularExpressionValidator>
<br />
<asp:Label ID="lblHoursInfor" runat="server">
<%# ShowHoursInfor(Eval("UserID"), Eval("AccountCd"),Eval("TaskCd"))%>
</asp:Label>
</td>
<td><asp:TextBox ID="txtNote" TextMode="multiline" Rows="2" Width="400px" runat="server" Text='<%# Eval("Note") %>'></asp:TextBox>
</td>
<td align="center"><asp:Button ID="btDelete" runat="server" CommandArgument='<%# Eval("id") %>' OnCommand="btDelete_OnCommand" Text="删除" /></td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<th align="center" colspan="5" id="thTotal">Total Hours:<asp:Label ID="lbTotal" runat="server" ForeColor="red"></asp:Label></label></th>
</tr>
</FooterTemplate>
</asp:Repeater>
</table>
</asp:Panel>
我要在 <td>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("AccountCd").ToString() + ": " + Eval("Descr").ToString()%>'></asp:Label>
</td>输出那个效果 --------------------编程问答-------------------- Label 是没有表格效果的,
思路都给你了,用什么控件不是改一下就行了吗?我不明白使用Label 你要显示什么效果? --------------------编程问答-------------------- 如我不想用repeater控件嵌套实现,应该怎么办呢 --------------------编程问答-------------------- 怎么办?有很多种方法啊,你可以循环拼接字符串显示,
你为什么不想进行嵌套? --------------------编程问答-------------------- 用嵌套好,而且用得样式定义起来灵活 --------------------编程问答-------------------- 应为我是在别人做好的页面上实现那个功能 --------------------编程问答-------------------- 嵌套吧 听话。。。 --------------------编程问答-------------------- 可以用中间表在数据库中处理,不需要在页面上面处理,希望对你有帮助 --------------------编程问答-------------------- 那用嵌套的话怎么改,能帮我改改吗?
<table id="tblist" cellspacing="1" border="0" class="ui-corner-all ui-table-white" width="100%">
<asp:Repeater ID="rpMyTaskList" runat="server" OnItemDataBound="rpMyTaskList_ItemDataBound" >
<HeaderTemplate>
<thead><tr><th colspan="5">
List of today's entries:
</th></tr>
<tr>
<th style="display:none"></th>
<th>Task</th>
<th>Date</th>
<th>Hours</th>
<th>Note</th>
<th>Action</th>
</tr>
</thead>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style="display:none;"><asp:Label ID="lbHeader" runat="server" Text='<%# Eval("TSHeaderID") %>'></asp:Label></td>
<td style="display: none;"><asp:Label ID="lbtaskCd" runat="server" Text='<%# Eval("TaskCd")%>'></asp:Label>
</td>
<td>
<!--这边是循环显示小项目出来的地方-->
<asp:Label ID="Label1" runat="server" Text='<%# Eval("AccountCd").ToString() + ": " + Eval("Descr").ToString()%>'></asp:Label>
</td>
<td>
<asp:Label ID="lbDate" runat="server" Text='<%# Eval("Date","{0:MM/dd/yyyy}")%>'> </asp:Label>
</td>
<td>
<asp:TextBox ID="txtHours" Width="50px" onblur="calTotal(this)" runat="server" Text='<%# PopulateHours(Eval("Hours")) %>'></asp:TextBox>
<asp:RegularExpressionValidator ID="reHour" runat="server" ControlToValidate="txtHours" ErrorMessage="Invalid hours." ValidationGroup="vEdit" ValidationExpression="^\d+$|^\d+?\.?\d+$"/>
<br />
<asp:Label ID="lblHoursInfor" runat="server">
<%# ShowHoursInfor(Eval("UserID"), Eval("AccountCd"),Eval("TaskCd"))%>
</asp:Label>
</td>
<td><asp:TextBox ID="txtNote" TextMode="multiline" Rows="2" Width="400px" runat="server" Text='<%# Eval("Note") %>'></asp:TextBox>
</td>
<td align="center"><asp:Button ID="btDelete" runat="server" CommandArgument='<%# Eval("id") %>' OnCommand="btDelete_OnCommand" Text="删除" /></td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<th align="center" colspan="5" id="thTotal">Total Hours:<asp:Label ID="lbTotal" runat="server" ForeColor="red"></asp:Label></label></th>
</tr>
</FooterTemplate>
</asp:Repeater>
</table>
补充:.NET技术 , ASP.NET