32数据控件的嵌套文档格式.docx

上传人:b****6 文档编号:16151972 上传时间:2022-11-21 格式:DOCX 页数:10 大小:195.37KB
下载 相关 举报
32数据控件的嵌套文档格式.docx_第1页
第1页 / 共10页
32数据控件的嵌套文档格式.docx_第2页
第2页 / 共10页
32数据控件的嵌套文档格式.docx_第3页
第3页 / 共10页
32数据控件的嵌套文档格式.docx_第4页
第4页 / 共10页
32数据控件的嵌套文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

32数据控件的嵌套文档格式.docx

《32数据控件的嵌套文档格式.docx》由会员分享,可在线阅读,更多相关《32数据控件的嵌套文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

32数据控件的嵌套文档格式.docx

图2:

创建一个名为CategoriesDataSource的ObjectDataSource

用CategoriesBLL类的GetCategories方法配置O

图3:

用CategoriesBLL类的GetCategories方法配置ObjectDataSource

我们需要切换到源视图来手动输入声明代码指定Repeater的template内容.增加一个带<

h4>

的name和<

p>

的description的ItemTemplate.用<

hr>

将category分开.在作完这些后,你的页面代码里的Repeater和ObjectDataSource声明语言应该和下面差不多:

ASP.NET

 

<

asp:

RepeaterID="

CategoryList"

runat="

server"

DataSourceID="

CategoriesDataSource"

EnableViewState="

False"

>

ItemTemplate>

<

%#Eval("

CategoryName"

)%>

/h4>

Description"

/p>

/ItemTemplate>

SeparatorTemplate>

hr/>

/SeparatorTemplate>

/asp:

Repeater>

ObjectDataSourceID="

OldValuesParameterFormatString="

original_{0}"

SelectMethod="

GetCategories"

TypeName="

CategoriesBLL"

ObjectDataSource>

图4表示现在在浏览器里浏览这个页.

图4:

列出每个Category的Name和Description,用水平线隔开

第二步:

增加嵌套的Repeater显示Product

下一步我们的任务是在CategoryList的ItemTemplate里添加一个Repeater用来显示属于各个category下的product.有很多方法可以存取内层的Repeater数据,我们将探讨两种现在我们在CategoryListRepeater的ItemTemplate里创建productRepeater.每个product里将包含name和price我们将下面的标记加到CategoryList的ItemTemplate里:

Repeaterrunat="

ID="

ProductsByCategoryList"

HeaderTemplate>

ul>

/HeaderTemplate>

li>

strong>

ProductName"

/strong>

(<

UnitPrice"

"

{0:

C}"

)<

/li>

FooterTemplate>

/ul>

/FooterTemplate>

第三步:

将各Category下的Product绑定到ProductsByCategoryListRepeater

如果现在你浏览这个页,你会看到象图4一样的页面,因为我们还没有在Repeater里绑定任何数据.有几种方法可以将合适的product记录绑定到Repeater里,其中一些会比较有效.现在主要的任务是为指定category取到合适的product.可以通过在ItemTemplate里语法声明ObjectDataSource或者直接在后台代码编程来将数据绑定到内层的Repeater.

通过ObjectDataSource和ItemDataBound来获取数据

这里我们还是用ObjectDataSource来实现.ProductsBLL类的GetProductsByCategoryID(Category)

方法可以返回特定CategoryID的products信息.因此,我们将在CategoryListRepeater的ItemTemplate里新建一个ObjectDataSource,并用这个方法配置它.不幸的,Repeater不允许通过设计视图来修改template,因此我们需要手动添加将声明语法.见下面的代码:

ProductsByCategoryDataSource"

-

soldas<

QuantityPerUnit"

at

GetProductsByCategoryID"

ProductsBLL"

SelectParameters>

ParameterName="

CategoryID"

Type="

Int32"

/>

/SelectParameters>

当使用ObjectDataSource方法时我们需要设置ProductsByCategoryListRepeater的DataSourceID为ObjectDataSource(ProductsByCategoryDataSource).注意ObjectDataSource有一个<

Parameter>

来指定传给GetProductsByCategoryID(categoryID)的categoryID.但是我们怎么来指定这个值呢?

我们可以设置DefaultValue属性为<

见下面的代码:

ASP.NET 

DefaultValue='

)'

不幸的,数据绑定语法只能用在有DataBinding事件的控件里.Parameter类没有这样的事件,因此这样使用会出错.我们需要为CategoryListRepeater的ItemDataBound创建一个事件处理来设置这个值.每个item绑定到Repeater时激发ItemDataBound事件.因此每次外层的Repeater激发这个时间时,我们可以将当前的CaegoryID的值传给ProductsByCategoryDataSourceObjectDataSource的CategoryID参数.下面的代码是为CategoryListRepeater的ItemDataBound创建一个eventhandle

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1