Gridview 仅显示 MySQL 数据库中的 1 行 - ASP.net C#
Gridview is showing only 1 row from MySQL database - ASP.net C#
我想从我的数据中检索所有数据table 并将它们与 gridview 绑定。数据实际上绑定并且有效,但它仅显示 table 的第一行。
这是我的网络表单中的 gridview
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="false" Width="100%" GridLines="None">
<Fields>
<asp:TemplateField ShowHeader="false">
<ItemTemplate>
<tr>
<div>
<h2>
<asp:Label ID="lblPostTitle" runat="server" Text='<%#Eval("posttitle") %>'></asp:Label></h2>
<div>
<span>
<asp:Label ID="lblPostUser" runat="server" Text='<%#Eval("postuser") %>'></asp:Label></span>
<span>
<asp:Label ID="lblPostTime" runat="server" Text='<%#Eval("posttime") %>'></asp:Label></span>
</div>
<div style="text-align: justify;">
<p>
<asp:Label ID="lblPostContent" runat="server" Text='<%#Eval("postcontent") %>'></asp:Label></p>
</div>
</div>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
这是绑定代码
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.PostUpd();
}
}
public void PostUpd()
{
MaconOpen();
MACONNEW.Open();
MySqlCommand Postcmd = new MySqlCommand("SELECT * FROM postretv", MACONNEW);
MySqlDataAdapter adp = new MySqlDataAdapter(Postcmd);
DataSet ds = new DataSet();
adp.Fill(ds);
DetailsView1.DataSource = ds;
DetailsView1.DataBind();
Postcmd.Dispose();
}
但是,我的 gridview 只显示数据的第一行table。
这里可能出了什么问题,如何解决?
我尝试将详细视图更改为 ListView
<asp:ListView ID="DetailsView12" runat="server" AutoGenerateRows="false" GridLines="None">
<ItemTemplate>
<tr>
<div>
<h2>
<asp:Label ID="lblPostTitle" runat="server" Text='<%#Eval("posttitle") %>'></asp:Label></h2>
<div>
<span>
<asp:Label ID="lblPostUser" runat="server" Text='<%#Eval("postuser") %>'></asp:Label></span>
<span>
<asp:Label ID="lblPostTime" runat="server" Text='<%#Eval("posttime") %>'></asp:Label></span>
</div>
<div style="text-align: justify;">
<p>
<asp:Label ID="lblPostContent" runat="server" Text='<%#Eval("postcontent") %>'></asp:Label></p>
</div>
</div>
</tr>
</ItemTemplate>
</asp:ListView>
它奏效了。
无论如何谢谢你!
我想从我的数据中检索所有数据table 并将它们与 gridview 绑定。数据实际上绑定并且有效,但它仅显示 table 的第一行。 这是我的网络表单中的 gridview
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="false" Width="100%" GridLines="None">
<Fields>
<asp:TemplateField ShowHeader="false">
<ItemTemplate>
<tr>
<div>
<h2>
<asp:Label ID="lblPostTitle" runat="server" Text='<%#Eval("posttitle") %>'></asp:Label></h2>
<div>
<span>
<asp:Label ID="lblPostUser" runat="server" Text='<%#Eval("postuser") %>'></asp:Label></span>
<span>
<asp:Label ID="lblPostTime" runat="server" Text='<%#Eval("posttime") %>'></asp:Label></span>
</div>
<div style="text-align: justify;">
<p>
<asp:Label ID="lblPostContent" runat="server" Text='<%#Eval("postcontent") %>'></asp:Label></p>
</div>
</div>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
这是绑定代码
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.PostUpd();
}
}
public void PostUpd()
{
MaconOpen();
MACONNEW.Open();
MySqlCommand Postcmd = new MySqlCommand("SELECT * FROM postretv", MACONNEW);
MySqlDataAdapter adp = new MySqlDataAdapter(Postcmd);
DataSet ds = new DataSet();
adp.Fill(ds);
DetailsView1.DataSource = ds;
DetailsView1.DataBind();
Postcmd.Dispose();
}
但是,我的 gridview 只显示数据的第一行table。 这里可能出了什么问题,如何解决?
我尝试将详细视图更改为 ListView
<asp:ListView ID="DetailsView12" runat="server" AutoGenerateRows="false" GridLines="None">
<ItemTemplate>
<tr>
<div>
<h2>
<asp:Label ID="lblPostTitle" runat="server" Text='<%#Eval("posttitle") %>'></asp:Label></h2>
<div>
<span>
<asp:Label ID="lblPostUser" runat="server" Text='<%#Eval("postuser") %>'></asp:Label></span>
<span>
<asp:Label ID="lblPostTime" runat="server" Text='<%#Eval("posttime") %>'></asp:Label></span>
</div>
<div style="text-align: justify;">
<p>
<asp:Label ID="lblPostContent" runat="server" Text='<%#Eval("postcontent") %>'></asp:Label></p>
</div>
</div>
</tr>
</ItemTemplate>
</asp:ListView>
它奏效了。 无论如何谢谢你!