日期:2014-05-18  浏览次数:20395 次

求助(急!!):如何使用GridView实现产品展示
本人一般都是制作后台管理和统计系统,对产品展示类页面实在不在行,现遇头疼问题,如何使用GridView实现以下格式的展示页面,
不知从何处下手,在此请各路高手帮忙解决,给出代码。
格式如下:

产品1图片 产品2图片 产品3图片 产品4图片
产品说明 产品说明 产品说明 产品说明
产品价格 产品价格 产品价格 产品价格
产品评论 产品评论 产品评论 产品评论


产品5图片 产品6图片 产品7图片 产品8图片
产品说明 产品说明 产品说明 产品说明
产品价格 产品价格 产品价格 产品价格
产品评论 产品评论 产品评论 产品评论


产品9图片 产品10图片 产品11图片 产品12图片
产品说明 产品说明 产品说明 产品说明
产品价格 产品价格 产品价格 产品价格
产品评论 产品评论 产品评论 产品评论

所有信息都是从数据库中读出,进行绑定。



------解决方案--------------------
第一:建议用datalist
第二:可以对GgridView分组
http://www.cnblogs.com/downmoon/archive/2008/08/26/1276538.html
http://blog.csdn.net/downmoon/archive/2008/08/26/2832007.aspx
------解决方案--------------------
建议用datalist...
------解决方案--------------------
楼主的这种效果,最好用DataList,当然用Repeater也可以实现
------解决方案--------------------
DATALIST小结

C# code


设计模版: 



页眉<HeaderTemplate>   



</HeaderTemplate> 




  


页脚<FooterTemplate> 



</FooterTemplate> 




  


数据记录<ItemTemplate> 



</ItemTemplate> 



                   



<AlternatingItemTemplate>   交替显示项 



</AlternatingItemTemplate> 




  


<SelectedItemTemplate>选中时的显示方式    



</SelectedItemTemplate> 




  


<EditItemTemplate> 编辑时的显示方式 



</EditItemTemplate> 




  


<SeparatorTemplate>  数据记录分隔符 



</SeparatorTemplate> 




  


编辑模版,里面可以嵌入控件,绑定数据。 



<ItemTemplate> 



     <table> 



         <tr> 



         <td><%# DataBinder.Eval(Container.DataItem, "持股名称") %></td> 



         <td><%# DataBinder.Eval(Container.DataItem, "市值", "{0:n}") %></td> 



         <td><%# DataBinder.Eval(Container.DataItem, "净值", "{0:n}") %></td> 



         </tr> 



     </table> 



</ItemTemplate> 




  



  


设置外观 



RepeatLayout        属性设置显示方式 

RepeatDirection     显示方向 

RepeatColumns      列数 


  


  

事件 

加入模版列的按钮会将其click事件反升到 ItemCommand 事件,也可设置 CommandName 



来响应不同的事件,如设为:edit,即引发EditCommand()等。 



注:若设为:select 则会引发SelectedIndexChanged 和ItemCommand事件 

  

SelectedItemTemplate模版;  添加详细信息的控件,当用户选择了该项,选择模版则显示。 



private void DataList1_ItemCommand(……) 



{ 



    switch(e.CommandName) 



    { 



        case "select": 



            this.DataList1.SelectedIndex=e.Item.ItemIndex; 



            string s=(string)this.DataList1.DataKeys[e.Item.ItemIndex]; 



            //在此获得该条记录的详细数据,在SelectedItemTemplate模版里显示。 



            break; 



        case "unselect": 



            this.DataList1.SelectedIndex=-1; 



            break; 



        



    } 



    this.DataList1.DataBind();//一定要 



} 




  



  


EditItemTemplate模版 



    编辑: 



            this.DataList1.EditItemIndex=e.Item.ItemIndex; 



            this.DataList1.DataBind(); 



    更新: 



            得到主键 



string s=(string)this.DataList1.DataKeys[e.Item.ItemIndex]; 



得到模版里的控件 



TextBox box=(TextBox)e.Item.FindControl("TextBox1"); 



更新记录 



this.DataList1.DataBind(); 



    取消: 



            this.DataList1.EditItemIndex=-1; 



            this.DataList1.DataBind(); 




  


删除项 



一次勾选多条记录,一次删除 



            foreach(DataListItem i in this.DataList1.Items) 



            { 



                bool IsChecked=((CheckBox)i.FindControl("deletectr")).Checked; 



                if(IsChecked) 



                { 



                    string s=(string)this.DataList1.DataKeys[e.Item.ItemIndex]; 



                    删除操作 



                }