首先动态添加了选项卡,
然后给每个选项卡里添加一个DataGridView
用 DataGridView 显示数据
我在给DataGridView 指定数据源后,想隐藏掉其中的一列怎么做阿。。?foreach (DataRow dr in dtComputerType.Rows)
{
TabPage tabpag = new TabPage();
tabpag.Text = dr["CTName"].ToString();
tabpag.Tag = dr["CTID"].ToString(); dtComputer = cManage.SelectComputer(); //查询得到电脑信息给DateTable DataGridView dgvComputer = new DataGridView(); //实例一个dgv
dgvComputer.Location = new Point(15,15); //指定显示位置
dgvComputer.Size = new Size(510, 250); //指定大小 dgvComputer.DataSource = dtComputer; //指定数据源
dtComputer.DefaultView.RowFilter = "CTypeID=" + dr["ctid"].ToString(); //筛选 dgvComputer.Columns["CTypeID"].Visible = false; tabpag.Controls.Add(dgvComputer); //把dgv添加到面板里面
tbcArea.TabPages.Add(tabpag); //把TabPag添加进来
}这样子dgvComputer.Columns["CTypeID"].Visible = false;错了。
然后给每个选项卡里添加一个DataGridView
用 DataGridView 显示数据
我在给DataGridView 指定数据源后,想隐藏掉其中的一列怎么做阿。。?foreach (DataRow dr in dtComputerType.Rows)
{
TabPage tabpag = new TabPage();
tabpag.Text = dr["CTName"].ToString();
tabpag.Tag = dr["CTID"].ToString(); dtComputer = cManage.SelectComputer(); //查询得到电脑信息给DateTable DataGridView dgvComputer = new DataGridView(); //实例一个dgv
dgvComputer.Location = new Point(15,15); //指定显示位置
dgvComputer.Size = new Size(510, 250); //指定大小 dgvComputer.DataSource = dtComputer; //指定数据源
dtComputer.DefaultView.RowFilter = "CTypeID=" + dr["ctid"].ToString(); //筛选 dgvComputer.Columns["CTypeID"].Visible = false; tabpag.Controls.Add(dgvComputer); //把dgv添加到面板里面
tbcArea.TabPages.Add(tabpag); //把TabPag添加进来
}这样子dgvComputer.Columns["CTypeID"].Visible = false;错了。
比如 dgvComputer.Columns[0].Visible=false
dgvComputer.Columns[0].Visible = false;
索引超出范围。必须为非负值并小于集合大小。
参数名: index用列名则是
dgvComputer.Columns["CTypeID"].Visible = false;
未将对象引用设置到对象的实例。
dgvComputer.Columns["字段名"].Visible = false
或者
dgvComputer.Columns["列索引"].Visible = false
dgvComputer.Columns[0].Visible = false;
索引超出范围。必须为非负值并小于集合大小。
参数名: index
这一句加一个条件
if(!String.IsNullOrEmpty(dr["ctid"].ToString()))
dtComputer.DefaultView.RowFilter = "CTypeID=" + dr["ctid"].ToString(); //筛选
dgvComputer.Columns[0].Visible = false;
null.Visible=false;出现空指针错误……
自然就找不到Columns["CTypeID"]的值
同样Columns[0]也是不存在的,所以会出现这一系列的错误
void BindData()
{
this.GridView1.DataSource = ds;
this.GridView1.DataBind(); this.GridView1.Columns[0].Visible = false;
}
建义楼主不要用自动生成列,直接
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Title" >
<ItemTemplate>
<%# Eval("Title") %>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="名称" DataField="Title" />
</Columns>
</asp:GridView>
void dgvComputer_DataBindingComplete(object sender, EventArgs e)
{
((DataGridView)sender).Columns["CTypeID"].Visible = false;
}