我页面上放了一个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为什么
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为什么
</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>
这样
<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>
这样
<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>
不可以这样会出现2组数据