gridview这东西 怎么样可以让他绑定数据 但是不显示表格的格式 显示 自己定义的div格式?
谢谢

解决方案 »

  1.   

    使用Repeater可以。用GridView的话,没试过!
      

  2.   

    可以用模板列TemplateField来控制列的样式,但始终是数据的形式如果楼主要实现非规则的DIV列表样式,怕只能自己实现自定义控件来实现绑定数据的显示样式
      

  3.   

    那建议楼主使用repeter控件,完全符合你的要求,我这里有个小例子,你可以看一下。
      <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand"
                    OnItemDataBound="Repeater1_ItemDataBound">
                    <HeaderTemplate>
                        <table border="0" width="100%">
                            <tr>
                                <th align="left">
                                    SupplierID</th>
                                <th align="left">
                                    CompanyName</th>
                                <th align="left">
                                    ContactName</th>
                                <th align="left">
                                    Address</th>
                                <th align="left">
                                    City</th>
                                <th>
                                </th>
                                <th>
                                </th>
                                <th>
                                </th>
                            </tr>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <tr id="Item" runat="server">
                            <td>
                                <asp:Label ID="lblID" runat="server" Text='<%#Eval("SupplierID") %>'></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblCompanyName" runat="server" Text='<%#Eval("CompanyName") %>'></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblName" runat="server" Text=' <%#Eval("ContactName") %>'></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblAddress" runat="server" Text='<%#Eval("Address") %>'></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblCity" runat="server" Text='<%#Eval("City") %>'></asp:Label>
                            </td>
                            <td>
                                <asp:Button ID="Edit" runat="server" Text="编辑" CommandName="Edit" /></td>
                            <td>
                                <asp:Button ID="Delete" runat="server" Text="删除" CommandName="Delete" /></td>
                            <td>
                                <asp:Button ID="New" runat="server" Text="新增" CommandName="New" /></td>
                        </tr>
                    </ItemTemplate>
                    <AlternatingItemTemplate>
                        <tr bgcolor="#e8e8e8" id="Alter" runat="server">
                            <td>
                                <asp:Label ID="lblID" runat="server" Text='<%#Eval("SupplierID") %>'></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblCompanyName" runat="server" Text='<%#Eval("CompanyName") %>'></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblName" runat="server" Text=' <%#Eval("ContactName") %>'></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblAddress" runat="server" Text='<%#Eval("Address") %>'></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblCity" runat="server" Text='<%#Eval("City") %>'></asp:Label>
                            </td>
                            <td>
                                <asp:Button ID="Edit" runat="server" Text="编辑" CommandName="Edit" /></td>
                            <td>
                                <asp:Button ID="Delete" runat="server" Text="删除" CommandName="Delete" /></td>
                            <td>
                                <asp:Button ID="New" runat="server" Text="新增" CommandName="New" /></td>
                        </tr>
                    </AlternatingItemTemplate>
                    <FooterTemplate>
                        </table>
                    </FooterTemplate>
                </asp:Repeater>
     //绑定Repeter
        private void BindRepeter()
        {
            string QueryCon = "SELECT SupplierID,CompanyName,ContactName,Address,City FROM Suppliers";
            Con = new SqlConnection(ConStr);
            SqlDataAdapter NorthWindDa = new SqlDataAdapter(QueryCon, ConStr);
            DataSet Ds = new DataSet();
            NorthWindDa.Fill(Ds, "Suppliers");
            //Repeater1.DataKeyNames = new string[] { "SupplierID" };
            DataView Dv = Ds.Tables["Suppliers"].DefaultView;
            //排序表达式
            string SortExpress = (string)ViewState["CompanyName"] + " " + (string)ViewState["Direction"];
            Dv.Sort = SortExpress;
            //绑定数据源
            //Repeater1.DataSource = Ds.Tables["Suppliers"];
            //利用PagedDataSource进行分页
            PagedDataSource PageDs = new PagedDataSource();
            PageDs.DataSource = Dv;
            PageDs.AllowPaging = true;
            PageDs.PageSize = 10;
            int CurrentPage = Convert.ToInt32(lblCount.Text);
            //当前页
            PageDs.CurrentPageIndex = CurrentPage-1;
            btnPage.Enabled = true;
            Button2.Enabled = true;
            if (CurrentPage == 1)
            {
                Button2.Enabled = false;
            }
            if (CurrentPage == PageDs.PageCount)
            {
                btnPage.Enabled = false;
            }
            //PageCount = PageDs.PageCount;
            lblPage.Text = "共" + PageDs.PageCount + "页,当前在第";
            //将PageDs作为数据源进行绑定
            Repeater1.DataSource = PageDs;
            Repeater1.DataBind();
            
        }
      

  4.   

    可以用模板列TemplateField来控制列的样式,但始终是表格的形式 如果楼主要实现非规则的DIV列表样式,怕只能自己实现自定义控件来实现绑定数据的显示样式
      

  5.   

    GridView翻译过来就是 格子视图
    若不是格子就没必要用它了
    Repeater和DataList都是可选方案
      

  6.   

    很简单,你把你想要的DIV样式放到repeter的 <ItemTemplate>模板里就好,<headertemplate>是用来设置头的样式的,你看看我的代码,然后就可以举一反三了
      

  7.   

    GridView默认是表格样式,要想改成div样式,请用Repeater或者DataList
      

  8.   

    <asp:DataList  ID="dlLeaveWord" runat="server"   Width="488px" HorizontalAlign="Left"  onitemdatabound="dlLeaveWord_ItemDataBound"  >
     <ItemTemplate>
        <tr >
        <td  class="MsTd2" valign="middle" align="left">
        <a href="MyLogShow.aspx?showid=<%#Eval("logid") %>" class="MsHref1" title="<%#Eval("title")%>"><font size="2pt" ><%#Eval("title")%></font></a> 
        <a href="MyReleased.aspx?upid=<%#Eval("logid")%>&type=update"><img src="../../images/QM_tubiao.jpg" alt="编辑" border="0" /></a>
        <asp:ImageButton  ImageUrl="../../images/del.jpg" ToolTip="删除"  CommandArgument='<%#Eval("logid") %>'  runat="server" OnClick="DelLog_Click" ID="DelLog"/>
        </td> </tr>
         <tr> <td  align="center"><div align="left" class="MsFont" >[<%# Convert.ToDateTime(Eval("postdatetime").ToString()).ToString("yy.MM.dd HH:mm")%>]</div><div  class="MsDiv4">&nbsp;</div></td></tr>    
        <tr ><td   align="center" valign="top">
        <div class="MsDiv3" align="left"><asp:Literal ID="ltContent" runat="server" /></div></td></tr>
       <tr> <td   valign="middle" align="center">
       <div align="left" class="MsTd1"> <a href="SpaceLogView.aspx?show=<%#Eval("logid") %>"   class="MsHref1" title="阅读全文">阅读全文</a> 
        |&nbsp; 评论指数(<%#Eval("commentcount")%>) | 人气指数(<%#Eval("views")%>)</div>
       <div  class="MsDiv5">&nbsp;</div></td></tr>    
     </ItemTemplate>
     </asp:DataList>
    这样写也行因为datalist repeter 本身生成的就是个table因此只需要tr td就可以了 你要是在里面在写个table 
    那编译生成的HTML就会两个table
      

  9.   

    建议LZ用Repeater或Datalist
    示例很多,就不多说了~
      

  10.   

    同意用Repeater或Datalist 
      

  11.   

    gridview都是封装好的....自定义还是repeter和datalist好
      

  12.   

    用 Repeater ...GridView 呈现的就是 tablePS: m*n 布局还是 table 佳!
      

  13.   

    可以用模板列TemplateField来控制列的样式,但始终是表格的形式 
    用Repeater吧