gridview多出一列怎么去掉

yseks 2010-01-07 04:04:36



gridview代码

<asp:GridView runat="server" ID="G" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="ID" />
<asp:BoundField HeaderText="Content" />
<asp:TemplateField>
<ItemTemplate>
<tr>
<td>
<%#Eval("noticeID") %>
</td>
<td>
<%#Eval("noticeContent") %>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

绑定代码

string str = "Server=IMSASUKE-9B3C13;Integrated Security=SSPI;database=db_18;uid=sa;pwd=sa";
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand cmd = new SqlCommand();
string sql = "select * from 公告信息表";
DataSet ds = new DataSet();
SqlDataAdapter sdr = new SqlDataAdapter(sql,conn);
sdr.Fill(ds);
G.DataSource = ds;
G.DataBind();
...全文
515 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsd123 2010-01-07
  • 打赏
  • 举报
回复
.
yseks 2010-01-07
  • 打赏
  • 举报
回复
大哥,能帮我解释下
TemplateField
ItemTemplate
BoundField是什么意思啊?》
shinyML 2010-01-07
  • 打赏
  • 举报
回复
主要是这个你有没有设置:AutoGenerateColumns="False"
liu_angelkismet 2010-01-07
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField HeaderText="标题">
<ItemTemplate>
<%#Eval("F_Title")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="时间">
<ItemTemplate>
<%#Eval("F_CreateTime")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
HooverHuang 2010-01-07
  • 打赏
  • 举报
回复
这个问题好像很简单:

你可以讲数据控件设置为不自动生成列。。。
然后把你要显示的列全部做成模板列,想怎么显示自己做相应的控制。
图片不能显示的,你把模板列里面放 Image 标签,路径绑定上去就行了
yseks 2010-01-07
  • 打赏
  • 举报
回复
这个就不好绑定了啊,
linkbotton啊像个啊

<asp:LinkButton ID="LinkDel" runat="server" CommandName="Delete" CommandArgument='<%#Eval("noticeID") %>'>删除</asp:LinkButton>
</td>
liu_angelkismet 2010-01-07
  • 打赏
  • 举报
回复
你用的模板的,,
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField HeaderText="F_Title" DataField="F_Title" />
<asp:BoundField HeaderText="F_CreateTime" DataField="F_CreateTime" />
</Columns>
</asp:GridView>
那就用这个呗。。。刚发现一问题。。你吉人天相吧。。。。
yseks 2010-01-07
  • 打赏
  • 举报
回复

大哥你的还是不行啊
成了这样的格式了
标题 标题 我想要的效果是这样的 标题 标题
1 1 1 1
标题 标题 1 1
1 1
标题 标题
1 1
userx 2010-01-07
  • 打赏
  • 举报
回复
liu_angelkismet 2010-01-07
  • 打赏
  • 举报
回复
俺让你两者选其一。。。。。。要不用<asp:BoundField HeaderText="ID" datafield=“”/>



<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField HeaderText="F_Title" DataField="F_Title" />
<asp:BoundField HeaderText="F_CreateTime" DataField="F_CreateTime" />
</Columns>
</asp:GridView>


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<tr>
<th>
F_Title
</th>
<th>
F_CreateTime
</th>
</tr>
<tr>
<td>
<%#Eval("F_Title")%>
</td>
<td>
<%#Eval("F_CreateTime")%>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>


这是我的。。。。两者选其一。。。。。。
yseks 2010-01-07
  • 打赏
  • 举报
回复
大哥,按照你的那样,你没发现每个 ID被显示了两次吗
就像
ID content
1 content1
1 content1
2 content2
2 content2
liu_angelkismet 2010-01-07
  • 打赏
  • 举报
回复
这是你的代码 :
<asp:GridView runat="server" ID="G" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="ID" /> //这里没有设置要显示的值
<asp:BoundField HeaderText="Content" />
<asp:TemplateField>
//这里设置了显示的值,但是没有设置标题
<ItemTemplate>
<tr>
<td>
<%#Eval("noticeID") %>
</td>
<td>
<%#Eval("noticeContent") %>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


如果这样不行,,不知道了。。。至少我这里是正常的。
yseks 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 liu_angelkismet 的回复:]
要不然去掉模板,把前两个附上值,要不然,把前两个去掉。
[/Quote]
大哥,你这个是什么意思啊?
yseks 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 liu_angelkismet 的回复:]
<asp:BoundField HeaderText="ID" DataField="ID" />
<asp:BoundField HeaderText="Content" DataField="Content" />
这样就可以了。

[/Quote]
不是啊,我按你的问题还是没解决啊/
liu_angelkismet 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 liu_angelkismet 的回复:]
<asp:BoundField HeaderText="ID" DataField="ID" />
<asp:BoundField HeaderText="Content" DataField="Content" />
这样就可以了。

[/Quote]

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID" />
<asp:BoundField HeaderText="Content" DataField="Content" />
</Columns>
</asp:GridView>




你都不看。。。。。俺无话可说了。。。
yseks 2010-01-07
  • 打赏
  • 举报
回复
大家看我头像把,图片在我头像上
huooo 2010-01-07
  • 打赏
  • 举报
回复
将自动生成字段前的沟去掉
huooo 2010-01-07
  • 打赏
  • 举报
回复
将自动生成字段前的沟去掉
liu_angelkismet 2010-01-07
  • 打赏
  • 举报
回复
<asp:BoundField HeaderText="ID" DataField="ID" />
<asp:BoundField HeaderText="Content" DataField="Content" />
这样就可以了。
liu_angelkismet 2010-01-07
  • 打赏
  • 举报
回复
要不然去掉模板,把前两个附上值,要不然,把前两个去掉。
加载更多回复(8)

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧