MIS2000 Lab. -- ASP.NET学习&分享 / ASP.NET案例精编(清华大学出版社)
您好,我来自台湾。很高兴与各位分享一些成果。希望对您有帮助。出版书籍是「ASP.NET案例精编 / 清华大学出版社」。

[主细表 / Master-Detail]Repeater 作北风数据库的主表明细(Master-Detail),HTML表格 搭配 DataBinding Expression(数据绑定表达式)

 

这是我的备份,原文请看:

http://www.dotblogs.com.tw/mis2000lab/archive/2012/03/20/repeater_northwind_master_detail_20120320.aspx

 

 

Repeater 作北风数据库的主表明细(Master-Detail)


阅读本文之前,请先确定您有以下的基本观念与操作技巧:

[主细表/主表明细] GridView+SqlDataSource,一行程序代码都不用写。书本(上集)9-1节内容公开
http://www.dotblogs.com.tw/mis2000lab/archive/2008/12/02/gridview_sqldatasource_1202.aspx



------------------------------------------------------------------------------------------


在论坛上遇见有人发问类似问题,
刚好我上课也教到 Repeater,所以提供这个范例来作为补充习题。


做为书本「上集」 Ch. 12 Repeater的范例补充(Case Study)

 


Repeater很适合用来搭配美工人员做好的HTML

加上样版(Template的特性

DataBinding Expression((数据绑定表达式)    如 <% # Eval("字段名称")%>)

      可以在画面上,做好定位(输出比较漂亮,不会乱掉)

 

==================================================================================

执行成果如下:

第一个画面,订单主文件。

      透过超级链接,可以看见这笔订单的所有数据

  

 

第二,用 Repeater + HTML表格 + DataBinding Expression(数据绑定表达式    如 <% # Eval("字段名称")%>)

      做成 北风数据库 的 主表明细(Master-Detail)

 

 

 

上图里面的「每一个字段」的,都是透过 DataBinding Expression(数据系结表达式    如 <% # Eval("字段名称")%>) 来呈现。

这样就能「定位」在 HTML表格的各个格子内。

 

==================================================================================



第一,我们先做好HTML的画面
      透过传统的 HTML表格(<Table>)做好我们想要的画面

      后续有范例下载,我会提供三个HTML网页,让大家参考。



第二,把上述的 HTML表格,放到Repeater的「样版(Template)」里面
      北风数据库的「订单」数据表,共有两个。

      需要呈现在画面上的地方,就自己撰写DataBinding Expression(数据系结表达式    如 <% # Eval("字段名称")%>)
      然后搭配 SqlDataSource即可。

 


不过,北风数据库的订单主文件(Orders数据表)经过正规化
有些缺点(人员阅读不易)

[主细表/ 主表明细]Ch.9-1节,北风数据库(NorthWind)一份订单明细 (SQL Join 关系型数据表)
http://www.dotblogs.com.tw/mis2000lab/archive/2011/12/05/northwind_order_master_detail_20111205.aspx


如果您想要改善的话,上述的文章已经解说过。
 

 

以下的范例,是「第一个」执行画面的 .aspx档内容

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
    <HeaderTemplate>
        <table border="1" width="90%" id="table2">
            <tr>
                <td align="center" bgcolor="#0000FF">
                    <font color="#FFFFFF"><b>OrderID</b></font>
                </td>
                <td align="center" bgcolor="#0000FF">
                    <font color="#FFFFFF"><b>CustomerID</b></font>
                </td>
                <td align="center" bgcolor="#0000FF">
                    <font color="#FFFFFF"><b>EmployeeID</b></font>
                </td>
                <td align="center" bgcolor="#0000FF">
                    <font color="#FFFFFF"><b>OrderDate</b></font>
                </td>
            </tr>
    </HeaderTemplate>

    <ItemTemplate>
        <tr>
            <td>
                <a href="Repeater_NorthWind_Table2.aspx?OrderID=<%# Eval("OrderID")%>" target="_blank">
                        <big><b><%# Eval("OrderID")%></b></big>
                </a>
            </td>
            <td>
                <%# Eval("CustomerID")%> -- <%# Eval("B_CompanyName")%>
            </td>
            <td>
                <%# Eval("EmployeeID")%> -- <%# Eval("C_LastName")%>
            </td>
            <td>
                <%# Eval("OrderDate", "{0:yyyy/MM/dd}")%>
            </td>
        </tr>
    </ItemTemplate>

    <AlternatingItemTemplate>
        <tr>
            <td bgcolor="#CECEFF">
                <a href="Repeater_NorthWind_Table2.aspx?OrderID=<%# Eval("OrderID")%>" target="_blank">
                    <big><b>
                        <%# Eval("OrderID")%></b></big> </a>
            </td>
            <td bgcolor="#CECEFF">
                <%# Eval("CustomerID")%>
                --
                <%# Eval("B_CompanyName")%>
            </td>
            <td bgcolor="#CECEFF">
                <%# Eval("EmployeeID")%>
                --
                <%# Eval("C_LastName")%>
            </td>
            <td bgcolor="#CECEFF">
                <%# Eval("OrderDate", "{0:yyyy/MM/dd}")%>
            </td>
        </tr>
    </AlternatingItemTemplate>

    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>



<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
    SelectCommand="select A.*, B.CompanyName As B_CompanyName, C.LastName As C_LastName
                            from orders A, Customers B, Employees C
                            where A.CustomerID = B.CustomerID And A.EmployeeID = C.EmployeeId">
</asp:SqlDataSource>
<br />
<br />
詳細的HTML表格,可以參閱<span class="style1"><strong>目錄「Repeater_HTML_Sample」</strong></span><br />

   
   

 

 


这个范例不需要写程序。
但您必须熟悉:

第一,HTML。会自己设计画面。
第二,SQL指令稍微了解,有用到Join

说难不难

您如果不会,都不是 ASP.NET的东西不会,
而是HTML码」与「SQL指令」不熟悉

 

另外一个初学者比较不理解的东西,就是

DataBinding Expression(数据绑定表达式    如 <% # Eval("字段名称")%>)

 

 

 

 

关于「」,本网站共有以下文章:
http://www.dotblogs.com.tw/mis2000lab/Tags/%E4%B8%BB%E8%A1%A8%E6%98%8E%E7%B4%B0/default.aspx

 

 

范例下载:Ch12_Repeater_NorthWind.rar

      这个范例都是在画面上完成,没有写程序。      所以没有 VB / C#的差别。

      简单地说,只要开发工具的「操作」熟练的话,绝对能在15~20分钟以内搞定

 

如果连这样的范例(小变化),您都作不出来的话。

建议您来上课,或是买些好书来练习

 

很多初学者以为自己功力很好了,不屑上「入门课

那就看看以下文章,自己评估一下啰。

==========================================================================================

下面这篇文章讲到的,在「入门实战班」都会学到。

内容保证比其它书本与补习班更深入、充实!

      拜托您一定要看一下

[自我评量表] ASP.NET 我该上什么课?入门、或是进阶?.....

==========================================================================================

 

.............................   与其零散地找范例、四处组合一些片段的程序....不如一次学通ASP.NET的心法!

.............................   如何选择补习    最贵的就是「师资成本」

.............................   不要练功练了三年,才发现自己必须「砍掉重练」!

 

 

 

 http://product.dangdang.com/product.aspx?product_id=20583373&ref=search-1-pub

ASP.NET案例精编——适用于VS 2005/2008(配光盘)

作  者:MIS2000Lab.周栋祥博士,吴进鲁 编著,吴盛博士 审校

出 版 社:清华大学出版社

出版时间:2009-5-1

 

 

 

 

 

 

posted on 2012-04-10 17:11  MIS2000 Lab.  阅读(390)  评论(0编辑  收藏  举报


ASP.NET案例精编——适用于VS 2005/2008(配光盘)
 

当当网购买 http://product.dangdang.com/product.aspx?product_id=20583373&ref=search-1-pub