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>
这样基本就可以显示出【外键实体的信息】,但是
时间: 2024-10-10 19:07:22