我有问题在gridview中显示不同列中的数据,但数据显示在一列中。
设计
<asp:GridView ID="GridView1" runat="server" class="international_news" AutoGenerateColumns="False" DataKeyNames="news_id" onrowcommand="GridView1_RowCommand">
<Columns>
<asp:BoundField DataField="news_id"/>
<asp:BoundField DataField="news_title"/>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="ReadMore" CommandArgument='<%#Eval("news_id")%>'>
Read More
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
背后的代码
if (!this.IsPostBack)
{
dt.Columns.AddRange(new DataColumn[2] { new DataColumn("news_id", typeof(string)),
new DataColumn("news_title", typeof(string))});
while (dr.Read())
{
if (dr[1].ToString() != "yes")
{
dt.Rows.Add(dr[0].ToString());
dt.Rows.Add(dr[1].ToString());
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
答案 0 :(得分:1)
我不肯定你正在遇到什么 - 你是说在HTML页面上显示时gridview控件只显示一列?如果是这样,你能告诉我们列中的内容吗?
另外,我发现你的“代码背后”存在问题 - 你不应该在while循环中设置和绑定gridview。在循环之后移动它,看看这是否会影响你所看到的。
好的,所以你在这一点上看到两列 - 而不是一列(从我能说的)。在这一点上,担心的是链接按钮不会出现,对吗?您是否在页面上看到任何HTML,如果您查看页面源,可能是链接按钮?如果是这样,你可以发布你看到的内容吗?
另外,如果在while循环之外绑定gridview时发生任何变化,请告诉我们。
根据您最近的评论,听起来您现在正在查看所有三列。还有其他问题吗?你期待看到不同的东西吗?你能告诉我们你期望看到的与你实际看到的一样吗?