码迷,mamicode.com
首页 > 其他好文 > 详细

GridView控件显示有外键实体

时间:2014-11-14 12:27:08      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   io   color   ar   os   使用   sp   

1).先拖入GridView控件,再拖入数据源控件 ObjectDataSource ,配置数据源控件:

      1.配置SELECET得到所有数据时,得先修改自动生成代码 DAL.Room 的一个方法: if (strWhere != null && strWhere.Trim() != "")

 1         /// <summary>
 2         /// 获得数据列表
 3         /// </summary>
 4         public DataSet GetList(string strWhere)
 5         {
 6             StringBuilder strSql = new StringBuilder();
 7             strSql.Append("select RoomNum,RoomType,RoomState,BedNum,GuestNum,Descrption ");
 8             strSql.Append(" FROM Room ");
 9             if (strWhere != null && strWhere.Trim() != "")
10             {
11                 strSql.Append(" where " + strWhere);
12             }
13             return DbHelperSQL.Query(strSql.ToString());
14         }

  2.在配置DELETE删除一条数据时,得在 BLL.Room 总增加一个方法的重载,这是由于数据源控件所有的操作都是基于 Model 进行互相传值的:

 1         /// <summary>
 2         /// 删除一条数据
 3         /// 重载下一个方法,传入对象模型
 4         /// </summary>
 5         public bool Delete(Model.Room model)
 6         {
 7 
 8             return Delete(model.RoomNum);;
 9         }
10         /// <summary>
11         /// 删除一条数据
12         /// </summary>
13         public bool Delete(string RoomNum)
14         {
15             
16             return dal.Delete(RoomNum);
17         }

  3.还的必须指定 GridView 的一个属性【DataKeyNames="RoomNum"】,GridView中 DataKeyNames 里面存的值都相当于你表里面的标志列,当你要用到的时候就可以得到这个标志列,去得到你的其他的数据信息.就如一个隐藏的值~~!!

  4.经过上面三步,【删除】【查找】都可以进行实现,但是对于【更新】由于现今无法实现对外键实体的展示,所以总是失败,怎么处理才能将外键实体显示出来???

  解决方案:添加【自定义模板】----用来显示外键实体,代码如下:

 1 <asp:TemplateField HeaderText="房间类型">
 2                 <ItemTemplate>
 3                     <asp:Label ID="Label1" runat="server" Text=<%# Eval("RoomType.TypeName") %>></asp:Label>
 4                 </ItemTemplate>
 5             </asp:TemplateField>
 6             <asp:TemplateField HeaderText="房间价格">
 7                 <ItemTemplate>
 8                     <asp:Label ID="Label2" runat="server" Text=<%# Eval("RoomType.Price") %>></asp:Label>
 9                 </ItemTemplate>
10             </asp:TemplateField>

-------------------------------------------上面两截代码中注意的是 必须使用关键字【Eval】,而不是【Bind】,这是由于Bind是双向绑定~~;另外 Eval()方法还有一个重载()----第一个参数为绑定的字段,第二个参数为 显示的格式。其中代码段中的"{0:C}"----C表示已金钱的格式显示

1 <asp:TemplateField HeaderText="房间价格">
2                 <ItemTemplate>
3                     <asp:Label ID="Label2" runat="server" Text=<%# Eval("RoomType.Price","{0:C}") %>></asp:Label>
4                 </ItemTemplate>
5             </asp:TemplateField>

 

这样基本就可以显示出【外键实体的信息】,但是

 

GridView控件显示有外键实体

标签:des   style   blog   io   color   ar   os   使用   sp   

原文地址:http://www.cnblogs.com/skyl/p/4096834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!