asp.net 2.0的一个绑定技巧

还是在继续做我的毕业设计,现在已经做到前台代码了。在前台页面的数据绑定时又遇到了一个问题,终于通过自己的努力解决了,在这里同大家分享一下。(不知道以前有没有类似的文章)
前言:
在BLL层中的基本上都是CRUD的操作,分别对应数据库中的INSERT、SELECT、UPDATE、DELETE语句(存储过程),在DAL层读数据时(Read/Select),一般是返回一行数据,或是多行数据,回到BLL层时就对应一个逻辑对象或是一组对象,如IList<T>。这样的话,在前台页面时就可以利用ObjectDataSource和GridView等数据绑定控件显示数据。
问题:
我们知道ObjectDataSource控件需要指定数据对象的INSERT、SELECT、UPDATE、DELETE方法,但是问题就在这里,我们往往需要在这同一个GridView中显示另外一个数据对象的某几项属性,这时ObjectDataSource就显得无能为力了,我们需要自己动手来绑定数据了。
解决:
废话说完了,下面就以我的代码直接来说明问题了。
ObjectDataSource的数据对象为Forum,Select方法名为"GetForums",代码如下
None.gif < asp:ObjectDataSource ID = " ObjectDataSource1 "  runat = " server "  SelectMethod = " GetForums "  TypeName = " RFID.BLL.Forum " ></ asp:ObjectDataSource >
这样的话直接利用GridView就可以显示数据了,但是我还需要显示Forum的最后更新的贴子(Post),这就涉及到另外一个数据对象"Post",但是ObjectDataSource只返回"Forum"对象,只能在页面中自己写数据绑定的代码了。
首先在前台页面的后置代码(aspx.cs)中添加一个函数,用来返回PostInfo对象。
None.gif protected  PostInfo GetLastPost( object  forumID)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
int ForumID = Convert.ToInt32(forumID);
InBlock.gif            Forum forum 
= new Forum();
InBlock.gif            
return forum.GetLastPost(ForumID);
InBlock.gif 
ExpandedBlockEnd.gif        }
其中值得注意的地方是参数的类型必须是object类型的,这是由于前台页面使用Eval("forumID")绑定时返回的就是object类型的。
下面接着我们就可以在前台页面中自定义绑定了,给GridView增加一个ItemTemplate,插入以下代码片断:
None.gif < asp:Literal ID = " Post "  runat = " server "  Text = ' <%# GetLastPost(Eval("forumID")).Title %> '   ></ asp:Literal >
其中Text='<%# GetLastPost(Eval("forumID")).Title(Title为数据对象PostInfo的一个属性)便是利用了自定义函数和Eval()实现了数据绑定,从而解决了问题。

转载于:https://www.cnblogs.com/hustyangli/archive/2007/03/02/661966.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值