问gridview熟悉的朋友 gridview这东西 怎么样可以让他绑定数据 但是不显示表格的格式 显示 自己定义的div格式?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用Repeater可以。用GridView的话,没试过! 可以用模板列TemplateField来控制列的样式,但始终是数据的形式如果楼主要实现非规则的DIV列表样式,怕只能自己实现自定义控件来实现绑定数据的显示样式 那建议楼主使用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(); } 可以用模板列TemplateField来控制列的样式,但始终是表格的形式 如果楼主要实现非规则的DIV列表样式,怕只能自己实现自定义控件来实现绑定数据的显示样式 GridView翻译过来就是 格子视图若不是格子就没必要用它了Repeater和DataList都是可选方案 很简单,你把你想要的DIV样式放到repeter的 <ItemTemplate>模板里就好,<headertemplate>是用来设置头的样式的,你看看我的代码,然后就可以举一反三了 GridView默认是表格样式,要想改成div样式,请用Repeater或者DataList <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"> </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> | 评论指数(<%#Eval("commentcount")%>) | 人气指数(<%#Eval("views")%>)</div> <div class="MsDiv5"> </div></td></tr> </ItemTemplate> </asp:DataList>这样写也行因为datalist repeter 本身生成的就是个table因此只需要tr td就可以了 你要是在里面在写个table 那编译生成的HTML就会两个table 建议LZ用Repeater或Datalist示例很多,就不多说了~ 同意用Repeater或Datalist gridview都是封装好的....自定义还是repeter和datalist好 用 Repeater ...GridView 呈现的就是 tablePS: m*n 布局还是 table 佳! 可以用模板列TemplateField来控制列的样式,但始终是表格的形式 用Repeater吧 table使用runat=server后CSS丢失的问题 同一个页面引用2个jquery不同的版本,怎么做呢 文本框为什么清不空,还是有数据! 我是女生,请问WEB开发用什么语言多? 请问怎么获取字段长度? 用ASP.NET开发程序,如果把程序封装成DLL组件,有专门开发组件的工具吗?用VS能实现吗?如何实现? 2005如何进行语言之间的切换? 如何确保只有一个应用程序实例在运行(高分赠送) “/”应用程序中的服务器错误。请大家帮忙解决!!! 哪位兄台,有.net的基础书籍下载!谢谢! SQL语句问题!麻烦各位给看看!!! 怎么把网站设为灰色?
<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();
}
若不是格子就没必要用它了
Repeater和DataList都是可选方案
<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"> </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>
| 评论指数(<%#Eval("commentcount")%>) | 人气指数(<%#Eval("views")%>)</div>
<div class="MsDiv5"> </div></td></tr>
</ItemTemplate>
</asp:DataList>
这样写也行因为datalist repeter 本身生成的就是个table因此只需要tr td就可以了 你要是在里面在写个table
那编译生成的HTML就会两个table
示例很多,就不多说了~
用Repeater吧