为什么是0?

qzyf1992 2013-06-04 10:54:16
我页面上放了一个gridview
 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("GrupName");
dt.Columns.Add("safe");
dt.Rows.Add(new object[] { 0, "营业部", "安全" });
dt.Rows.Add(new object[] { 1, "市场部", "安全" });
dt.Rows.Add(new object[] { 2, "研发部","安全" });
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}


}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(GridView1.Columns.Count);

}

点击按钮输出是0为什么
...全文
117 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qzyf1992 2013-06-04
  • 打赏
  • 举报
回复
引用 10 楼 Chinajiyong 的回复:
设置GridView1的属性AutoGenerateColumns="false"
搞定谢谢叻。
EnForGrass 2013-06-04
  • 打赏
  • 举报
回复
设置GridView1的属性AutoGenerateColumns="false"
qzyf1992 2013-06-04
  • 打赏
  • 举报
回复
引用 6 楼 Chinajiyong 的回复:
[quote=引用 4 楼 qzyf1992 的回复:]
[quote=引用 2 楼 Kim_Du 的回复:]
因为你是给DataTable加的Column,而GridView绑定DT,相当于是引用DataTable,所以GridView的Column.Count为0.

那如果我想隐藏这样动态绑定的列怎么办。[/quote]
这样


<asp:GridView ID="GridView1" runat="server">

<Columns>
<asp:BoundField DataField="id" HeaderText="编号"/>
<asp:BoundField DataField="GrupName" HeaderText="分组名" />
<asp:BoundField DataField="safe" HeaderText="。。。。" />
</Columns>
</asp:GridView>
[/quote]
不可以这样会出现2组数据
Kim_Du 2013-06-04
  • 打赏
  • 举报
回复
引用 4 楼 qzyf1992 的回复:
那如果我想隐藏这样动态绑定的列怎么办。
就像斑竹说的那样,在前台进行列的绑定,你要显示那些列就绑定那些列,但是要注意列名的匹配
qzyf1992 2013-06-04
  • 打赏
  • 举报
回复
引用 5 楼 Chinajiyong 的回复:
<asp:GridView ID="GridView1" runat="server"> </asp:GridView> 前台这样写,是没有给GridView1定义列的,默认DataTable(数据源)的列名,所以为0 这样写,就可以自定义列

 
 <asp:GridView ID="GridView1" runat="server">

<Columns>
                <asp:BoundField DataField="id" />
                <asp:BoundField DataField="GrupName" />
                <asp:BoundField DataField="safe" />
            </Columns>
这个我知道可以可是动态绑定为仨不能呢? 如果我想隐藏动态绑定的列可以做到么?
EnForGrass 2013-06-04
  • 打赏
  • 举报
回复
引用 4 楼 qzyf1992 的回复:
[quote=引用 2 楼 Kim_Du 的回复:] 因为你是给DataTable加的Column,而GridView绑定DT,相当于是引用DataTable,所以GridView的Column.Count为0.
那如果我想隐藏这样动态绑定的列怎么办。[/quote] 这样


 <asp:GridView ID="GridView1" runat="server">

<Columns>
                <asp:BoundField DataField="id"   HeaderText="编号"/>
                <asp:BoundField DataField="GrupName" HeaderText="分组名" />
                <asp:BoundField DataField="safe" HeaderText="。。。。" />
            </Columns>
  </asp:GridView>
EnForGrass 2013-06-04
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server"> </asp:GridView> 前台这样写,是没有给GridView1定义列的,默认DataTable(数据源)的列名,所以为0 这样写,就可以自定义列

 
 <asp:GridView ID="GridView1" runat="server">

<Columns>
                <asp:BoundField DataField="id" />
                <asp:BoundField DataField="GrupName" />
                <asp:BoundField DataField="safe" />
            </Columns>
  </asp:GridView>
qzyf1992 2013-06-04
  • 打赏
  • 举报
回复
引用 2 楼 Kim_Du 的回复:
因为你是给DataTable加的Column,而GridView绑定DT,相当于是引用DataTable,所以GridView的Column.Count为0.
那如果我想隐藏这样动态绑定的列怎么办。
qzyf1992 2013-06-04
  • 打赏
  • 举报
回复
引用 2 楼 Kim_Du 的回复:
因为你是给DataTable加的Column,而GridView绑定DT,相当于是引用DataTable,所以GridView的Column.Count为0.
这样为什么就是0我明明给girdview绑定了列的。
Kim_Du 2013-06-04
  • 打赏
  • 举报
回复
因为你是给DataTable加的Column,而GridView绑定DT,相当于是引用DataTable,所以GridView的Column.Count为0.
快乐的小二兔 2013-06-04
  • 打赏
  • 举报
回复
提高结贴率谢谢

62,243

社区成员

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

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

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

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