(200分请教)ObjectDataSource绑定GridView 的问题~有请|思归|等高手光临!
问题如下:
我用了俩ObjectDataSource 数据源。 动态绑定到一个GridView !!!
代码下:
if (radBtnRole.Checked)
{
this.gvFill.DataSourceID = this.objRole.ID;
this.gvFill.DataKeyNames = dataKey;
this.gvFill.AutoGenerateColumns = true;
this.gvFill.DataBind();
this.gvFill.HeaderRow.Cells[0].Text = "编辑";
this.gvFill.HeaderRow.Cells[1].Text = "编号";
this.gvFill.HeaderRow.Cells[2].Text = "角色名称";
this.gvFill.HeaderRow.Cells[3].Text = "角色ID";
Page.ClientScript.RegisterStartupScript(this.GetType(), "hideUser", strJS);
}
else
{
this.gvFill.DataSourceID = this.objUser.ID;
this.gvFill.DataKeyNames = dataKey1;
this.gvFill.AutoGenerateColumns = true;
this.gvFill.DataBind();
this.gvFill.HeaderRow.Cells[0].Text = "编辑";
this.gvFill.HeaderRow.Cells[1].Text = "编号";
this.gvFill.HeaderRow.Cells[2].Text = "用户名";
this.gvFill.HeaderRow.Cells[3].Text = "密码";
this.gvFill.HeaderRow.Cells[4].Text = "角色";
this.gvFill.HeaderRow.Cells[5].Text = "呢称";
Page.ClientScript.RegisterStartupScript(this.GetType(), "hideRole", strJS1);
}
因为需要, 我要动态的使用代码 将其列的标题修改掉,或者将其列隐藏掉!!!
正常情况下应该是这样就能 改掉的 !(以上代码 也能改,但是不能访问列!)
this.gvFill.Columns[0].HeaderText = "ceshi";
但是报错了``` 我也知道错误 出在哪里!(测试得到结果this.gvFill.Columns.Count这个值居然为0,但是GridView 显示出来的列远远大于0啊);
请问哪位 达人 来解决这个问题呀``` 怎么才能动态的 隐藏列啊~~~(代码都是动态绑定,动态生成字段的)!
谢谢了!
(处女帖)只能给100 不好意思,解决了加啊~
------解决方案--------------------datagrid隐藏一列
// ItemCreated 事件中
protected void DataGrid1_ItemCreated(Object sender, DataGridItemEventArgs e)
{
e.Item.Cells[1].Attributs.Add("style","display:none");
}
------解决方案--------------------晕死,都不知道你两个裤衩怎么来的,两个GV的话,还不是一样,DATAVIEW应该也有个DATAMANBER的属性吧,我英语不好,可能会拼错,你自己查下MSDN,有详细说明的
------解决方案--------------------晕,一下代码,执行成功。。。
-------------------------------
C# code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.GridView3.DataSourceID = ObjectDataSource1.ID;
//this.GridView3.DataKeyNames = dataKey;
this.GridView3.AutoGenerateColumns = true;
this.GridView3.DataBind();
}
}
protected void GridView3_RowCreated(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Visible = false;
}