这一列我必须可以访问,如下:
string selectCmd="select id,name,no from table1";
string conn="server=ip;database=test;uid=sa;pwd";
SqlConnection myConn=new Connection(conn);
DataSet ds=new DataSet();
SqlDataAdapter myAdapter=new SqlDataAdaper(selectCmd,myConn);
myAdatper.Fill(ds,"table1");
MyDataGrid.DataSource=ds.Tables["table1"].DefaultView;
MyDataGrid.DataBind();
源代码如上,我想隐藏id那一列,他只是不可见,
在服务器端我还必须能取到他的值,只是对用户不可见
这样能办到么?
31 个解决方案
#1
你可以设置:MyDataGrid..Columns[0].Visible=false;
就是第一列为不可视,其他列以此类推。
就是第一列为不可视,其他列以此类推。
#2
对,就是楼上说的那样,补充一点,这句必须在.DataBind()之前,.DataSource()=..之后。
#3
错误:
索引超出范围。必须为非负值并小于集合大小。参数名:index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名:index
代码:
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.DataBind();
MyDataGrid.Columns[1].Visible=false;
注:我第一列加了LinkButton的
索引超出范围。必须为非负值并小于集合大小。参数名:index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名:index
代码:
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.DataBind();
MyDataGrid.Columns[1].Visible=false;
注:我第一列加了LinkButton的
#4
我刚看到,sorry
#5
但是,错误提示是一样的阿
无论是上面的代码,还是下面的代码都是那个提示,难道是index错了?
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.Columns[1].Visible=false;
MyDataGrid.DataBind();
无论是上面的代码,还是下面的代码都是那个提示,难道是index错了?
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.Columns[1].Visible=false;
MyDataGrid.DataBind();
#6
你不加这行code"MyDataGrid.Columns[1].Visible=false;"会有错误吗?
或者你试一试:MyDataGrid.Columns[0].Visible=false;
或者你试一试:MyDataGrid.Columns[0].Visible=false;
#7
没有肯定是正常的,因为一直以来都是这样的,
昨天老板说要隐藏那一列,所以就要隐藏,但是
服务器端还必须要访问得到
昨天老板说要隐藏那一列,所以就要隐藏,但是
服务器端还必须要访问得到
#8
有没有什么属性要设置的
只有我自己加的那一列可以隐藏掉,其他的都报错
只有我自己加的那一列可以隐藏掉,其他的都报错
#9
AutoGenerateColumns属性设置为False后再试试...
#10
阿甘,还记得我把,谢谢你寄个代码给我,虽然没用上:)
index错误我是这样解决的
:string fri=e.Item.Cells[1].Text;
index错误我是这样解决的
:string fri=e.Item.Cells[1].Text;
#11
当然索引会超出范围,因为在datagrid创建之前你的列并不存在,你可以这样解决,用datagrid的属性生成器创建几个邦定列,分别邦定到id,name,no,然后再属性生成器中有一个复选框决定该列是否可见,将邦定到id的那一列隐藏就行了,当然还要设置表格的数据源。你比我幸运,我的表格是动态显示字段,所以这个办法不灵,你的如果固定要显示这几个字段就肯定行
#12
顺便说一句,如果用你的代码,AutoGenerateColumns属性设置为False是不行的,我好像式过
#13
然索引会超出范围,因为在datagrid创建之前你的列并不存在,你可以这样解决,用datagrid的属性生成器创建几个邦定列,分别邦定到id,name,no,然后再属性生成器中有一个复选框决定该列是否可见,将邦定到id的那一列隐藏就行了,当然还要设置表格的数据源。你比我幸运,我的表格是动态显示字段,所以这个办法不灵,你的如果固定要显示这几个字段就肯定行
对不起,你说的我不太明白.
如何做到这"用datagrid的属性生成器创建几个邦定列,分别邦定到id,name,no,然后再属性生成器中有一个复选框决定该列是否可见,将邦定到id的那一列隐藏就行了,当然还要设置表格的数据源。"
能把代码写给我么或者vs.net的操作步骤?
对datagrid的其他操作我没有用过,不知从何下手
谢谢
对不起,你说的我不太明白.
如何做到这"用datagrid的属性生成器创建几个邦定列,分别邦定到id,name,no,然后再属性生成器中有一个复选框决定该列是否可见,将邦定到id的那一列隐藏就行了,当然还要设置表格的数据源。"
能把代码写给我么或者vs.net的操作步骤?
对datagrid的其他操作我没有用过,不知从何下手
谢谢
#14
这种问题必须在DataGrid中控制才可以解决
<Columns>
<asp:BoundColumn DataField="Stu_ID" HeaderText="学" Visible =False ></asp:BoundColumn>
</Columns>
向上面那样就可以了,没有问题的我都使用过的
<Columns>
<asp:BoundColumn DataField="Stu_ID" HeaderText="学" Visible =False ></asp:BoundColumn>
</Columns>
向上面那样就可以了,没有问题的我都使用过的
#15
使用绑定列
不绑定就可以了,不过还是可以访问
不绑定就可以了,不过还是可以访问
#16
to:exhx
<asp:DataGrid id="DataGrid1" runat="server" Width="100%">
<Columns>
<asp:BoundColumn DataField="au_id" HeaderText="学"
Visible="False"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
string conn="server=(local);database=pubs;uid=sa;pwd=";
string selectCmd="select au_id,au_lname from authors";
SqlConnection myConn=new SqlConnection(conn);
DataSet ds=new DataSet();
SqlDataAdapter myAdapter=new SqlDataAdapter(selectCmd,myConn);
myAdapter.Fill(ds,"authors");
DataGrid1.DataSource=ds.Tables["authors"].DefaultView;
DataGrid1.DataBind();
但是au_id那一列还是照常显示的?
why?
<asp:DataGrid id="DataGrid1" runat="server" Width="100%">
<Columns>
<asp:BoundColumn DataField="au_id" HeaderText="学"
Visible="False"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
string conn="server=(local);database=pubs;uid=sa;pwd=";
string selectCmd="select au_id,au_lname from authors";
SqlConnection myConn=new SqlConnection(conn);
DataSet ds=new DataSet();
SqlDataAdapter myAdapter=new SqlDataAdapter(selectCmd,myConn);
myAdapter.Fill(ds,"authors");
DataGrid1.DataSource=ds.Tables["authors"].DefaultView;
DataGrid1.DataBind();
但是au_id那一列还是照常显示的?
why?
#17
use
DataGrid.DataKeyField &
DataGrid.DataKeys
DataGrid.DataKeyField &
DataGrid.DataKeys
#18
to: Inyoureyes(最深的蓝)
通过各位的指点,DataGrid必须加上AutoGenerateColumns=false属性
才能隐藏列
<asp:DataGrid id="DataGrid1" runat="server" Width="100%"
AutoGenerateColumns="False">
<Columns> <asp:BoundColumn DataField="au_id" HeaderText="学"
Visible="false"></asp:BoundColumn>
</Columns>
</asp:datagrid>
这样设置就隐藏了au_id列,
我也没你那么幸运,我的datagrid也是动态的,列不是固定的,所以
还要向你请教如何处理.
通过各位的指点,DataGrid必须加上AutoGenerateColumns=false属性
才能隐藏列
<asp:DataGrid id="DataGrid1" runat="server" Width="100%"
AutoGenerateColumns="False">
<Columns> <asp:BoundColumn DataField="au_id" HeaderText="学"
Visible="false"></asp:BoundColumn>
</Columns>
</asp:datagrid>
这样设置就隐藏了au_id列,
我也没你那么幸运,我的datagrid也是动态的,列不是固定的,所以
还要向你请教如何处理.
#19
AutoGenerateColumns=false当然可以隐藏列,你只要不把那烈绑定到DataGrid中就行了,就是在<Columns>中只绑定你需要显示的列,其他列就不会显示了。没必要设置Visible属性
#20
那么我是不是还可以访问没有bind的列?就是不显示的列?
还有如果我的列并不是固定的,该怎么办?
还有如果我的列并不是固定的,该怎么办?
#21
当然可以访问
模版列功能更强大
模版列功能更强大
#22
那么如果我的列不固定如何band呢?
请教了
请教了
#23
en
看来你是想在自动生成列的时候隐藏数据源的某些字段
那就在DataGrid1_ItemCreated事件中
加上这个
if (e.Item.Cells.Count>1)
e.Item.Cells[1].Visible=false;
看来你是想在自动生成列的时候隐藏数据源的某些字段
那就在DataGrid1_ItemCreated事件中
加上这个
if (e.Item.Cells.Count>1)
e.Item.Cells[1].Visible=false;
#24
你的DataBind出来后,datagrid上有值吗?datasource的来源是不能为null的,但是可以为空。你找yxrj的办法试一下。
或者,把代码mail给我,帮你看看:juqiang@Genersoft.com
或者,把代码mail给我,帮你看看:juqiang@Genersoft.com
#25
<asp:datagrid id="MyDataGrid" AutoGenerateColumns=False
runat="server" AllowPaging="True" PageSize="6" Width="100%"
DataKeyField="fileid" Height="82px"> <Columns>
<asp:TemplateColumn>
<HeaderTemplate>
查看
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="SeeIt"
CommandName="Select" Runat="server">查看</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<Columns> <asp:BoundColumn DataField="fileid"
HeaderText="fileid" Visible="false"></asp:BoundColumn>
<asp:BoundColumn DataField="文件标题" HeaderText="文件标题" Visible="true"></asp:BoundColumn>
<asp:BoundColumn DataField="文件类型" HeaderText="文件类型" Visible="true"></asp:BoundColumn>
<asp:BoundColumn DataField="当前流程" HeaderText="当前流程" Visible="false"></asp:BoundColumn>
</Columns>
<PagerStyle NextPageText="下一页" PrevPageText="上一页" HorizontalAlign="Center"></PagerStyle>
</asp:datagrid>
"查看"列触发的事件
private void MyDataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (e.CommandName.ToString()=="Select")
{
}
}
如上代码,我实现了隐藏"fileid"和="当前流程"两列而又可以访问到他们,
但是下一次我的datagrid所邦定的数据源要变,列也要便,
那么:
<asp:BoundColumn DataField="" HeaderText=""
Visible="">
</asp:BoundColumn>
这部分代码如何反映当前datagrid所bind的数据呢?
runat="server" AllowPaging="True" PageSize="6" Width="100%"
DataKeyField="fileid" Height="82px"> <Columns>
<asp:TemplateColumn>
<HeaderTemplate>
查看
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="SeeIt"
CommandName="Select" Runat="server">查看</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<Columns> <asp:BoundColumn DataField="fileid"
HeaderText="fileid" Visible="false"></asp:BoundColumn>
<asp:BoundColumn DataField="文件标题" HeaderText="文件标题" Visible="true"></asp:BoundColumn>
<asp:BoundColumn DataField="文件类型" HeaderText="文件类型" Visible="true"></asp:BoundColumn>
<asp:BoundColumn DataField="当前流程" HeaderText="当前流程" Visible="false"></asp:BoundColumn>
</Columns>
<PagerStyle NextPageText="下一页" PrevPageText="上一页" HorizontalAlign="Center"></PagerStyle>
</asp:datagrid>
"查看"列触发的事件
private void MyDataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (e.CommandName.ToString()=="Select")
{
}
}
如上代码,我实现了隐藏"fileid"和="当前流程"两列而又可以访问到他们,
但是下一次我的datagrid所邦定的数据源要变,列也要便,
那么:
<asp:BoundColumn DataField="" HeaderText=""
Visible="">
</asp:BoundColumn>
这部分代码如何反映当前datagrid所bind的数据呢?
#26
上面就是我的代码中的关键部分,请大家指教!
谢谢各位
谢谢各位
#27
这样写试试
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.DataBind();
MyDataGrid.Columns[1].Visible=false;
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.DataBind();
MyDataGrid.Columns[1].Visible=false;
#28
使用DataGrid一般有2种办法
1.AutoGenerateColumns=Ture
2.AutoGenerateColumns=False
a.在aspx里设好列
b.在cs里动态添加列
对于1,自动产生的列不在DataGrid.Columns集合里,我目前想到的办法在前面提过了。
对于2,不论a或b,都可以从DataGrid.Columns入手,设定每个Column的Visible属性。
1.AutoGenerateColumns=Ture
2.AutoGenerateColumns=False
a.在aspx里设好列
b.在cs里动态添加列
对于1,自动产生的列不在DataGrid.Columns集合里,我目前想到的办法在前面提过了。
对于2,不论a或b,都可以从DataGrid.Columns入手,设定每个Column的Visible属性。
#29
这就好说都了
谢谢指点!
谢谢指点!
#30
怎么现在看见大部分的都喜欢用GridView。。其实介意lz用repeater。。功能强大扩展性好
#31
怎么现在看见大部分的都喜欢用GridView。。其实介意lz用repeater。。功能强大扩展性好
#1
你可以设置:MyDataGrid..Columns[0].Visible=false;
就是第一列为不可视,其他列以此类推。
就是第一列为不可视,其他列以此类推。
#2
对,就是楼上说的那样,补充一点,这句必须在.DataBind()之前,.DataSource()=..之后。
#3
错误:
索引超出范围。必须为非负值并小于集合大小。参数名:index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名:index
代码:
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.DataBind();
MyDataGrid.Columns[1].Visible=false;
注:我第一列加了LinkButton的
索引超出范围。必须为非负值并小于集合大小。参数名:index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名:index
代码:
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.DataBind();
MyDataGrid.Columns[1].Visible=false;
注:我第一列加了LinkButton的
#4
我刚看到,sorry
#5
但是,错误提示是一样的阿
无论是上面的代码,还是下面的代码都是那个提示,难道是index错了?
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.Columns[1].Visible=false;
MyDataGrid.DataBind();
无论是上面的代码,还是下面的代码都是那个提示,难道是index错了?
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.Columns[1].Visible=false;
MyDataGrid.DataBind();
#6
你不加这行code"MyDataGrid.Columns[1].Visible=false;"会有错误吗?
或者你试一试:MyDataGrid.Columns[0].Visible=false;
或者你试一试:MyDataGrid.Columns[0].Visible=false;
#7
没有肯定是正常的,因为一直以来都是这样的,
昨天老板说要隐藏那一列,所以就要隐藏,但是
服务器端还必须要访问得到
昨天老板说要隐藏那一列,所以就要隐藏,但是
服务器端还必须要访问得到
#8
有没有什么属性要设置的
只有我自己加的那一列可以隐藏掉,其他的都报错
只有我自己加的那一列可以隐藏掉,其他的都报错
#9
AutoGenerateColumns属性设置为False后再试试...
#10
阿甘,还记得我把,谢谢你寄个代码给我,虽然没用上:)
index错误我是这样解决的
:string fri=e.Item.Cells[1].Text;
index错误我是这样解决的
:string fri=e.Item.Cells[1].Text;
#11
当然索引会超出范围,因为在datagrid创建之前你的列并不存在,你可以这样解决,用datagrid的属性生成器创建几个邦定列,分别邦定到id,name,no,然后再属性生成器中有一个复选框决定该列是否可见,将邦定到id的那一列隐藏就行了,当然还要设置表格的数据源。你比我幸运,我的表格是动态显示字段,所以这个办法不灵,你的如果固定要显示这几个字段就肯定行
#12
顺便说一句,如果用你的代码,AutoGenerateColumns属性设置为False是不行的,我好像式过
#13
然索引会超出范围,因为在datagrid创建之前你的列并不存在,你可以这样解决,用datagrid的属性生成器创建几个邦定列,分别邦定到id,name,no,然后再属性生成器中有一个复选框决定该列是否可见,将邦定到id的那一列隐藏就行了,当然还要设置表格的数据源。你比我幸运,我的表格是动态显示字段,所以这个办法不灵,你的如果固定要显示这几个字段就肯定行
对不起,你说的我不太明白.
如何做到这"用datagrid的属性生成器创建几个邦定列,分别邦定到id,name,no,然后再属性生成器中有一个复选框决定该列是否可见,将邦定到id的那一列隐藏就行了,当然还要设置表格的数据源。"
能把代码写给我么或者vs.net的操作步骤?
对datagrid的其他操作我没有用过,不知从何下手
谢谢
对不起,你说的我不太明白.
如何做到这"用datagrid的属性生成器创建几个邦定列,分别邦定到id,name,no,然后再属性生成器中有一个复选框决定该列是否可见,将邦定到id的那一列隐藏就行了,当然还要设置表格的数据源。"
能把代码写给我么或者vs.net的操作步骤?
对datagrid的其他操作我没有用过,不知从何下手
谢谢
#14
这种问题必须在DataGrid中控制才可以解决
<Columns>
<asp:BoundColumn DataField="Stu_ID" HeaderText="学" Visible =False ></asp:BoundColumn>
</Columns>
向上面那样就可以了,没有问题的我都使用过的
<Columns>
<asp:BoundColumn DataField="Stu_ID" HeaderText="学" Visible =False ></asp:BoundColumn>
</Columns>
向上面那样就可以了,没有问题的我都使用过的
#15
使用绑定列
不绑定就可以了,不过还是可以访问
不绑定就可以了,不过还是可以访问
#16
to:exhx
<asp:DataGrid id="DataGrid1" runat="server" Width="100%">
<Columns>
<asp:BoundColumn DataField="au_id" HeaderText="学"
Visible="False"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
string conn="server=(local);database=pubs;uid=sa;pwd=";
string selectCmd="select au_id,au_lname from authors";
SqlConnection myConn=new SqlConnection(conn);
DataSet ds=new DataSet();
SqlDataAdapter myAdapter=new SqlDataAdapter(selectCmd,myConn);
myAdapter.Fill(ds,"authors");
DataGrid1.DataSource=ds.Tables["authors"].DefaultView;
DataGrid1.DataBind();
但是au_id那一列还是照常显示的?
why?
<asp:DataGrid id="DataGrid1" runat="server" Width="100%">
<Columns>
<asp:BoundColumn DataField="au_id" HeaderText="学"
Visible="False"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
string conn="server=(local);database=pubs;uid=sa;pwd=";
string selectCmd="select au_id,au_lname from authors";
SqlConnection myConn=new SqlConnection(conn);
DataSet ds=new DataSet();
SqlDataAdapter myAdapter=new SqlDataAdapter(selectCmd,myConn);
myAdapter.Fill(ds,"authors");
DataGrid1.DataSource=ds.Tables["authors"].DefaultView;
DataGrid1.DataBind();
但是au_id那一列还是照常显示的?
why?
#17
use
DataGrid.DataKeyField &
DataGrid.DataKeys
DataGrid.DataKeyField &
DataGrid.DataKeys
#18
to: Inyoureyes(最深的蓝)
通过各位的指点,DataGrid必须加上AutoGenerateColumns=false属性
才能隐藏列
<asp:DataGrid id="DataGrid1" runat="server" Width="100%"
AutoGenerateColumns="False">
<Columns> <asp:BoundColumn DataField="au_id" HeaderText="学"
Visible="false"></asp:BoundColumn>
</Columns>
</asp:datagrid>
这样设置就隐藏了au_id列,
我也没你那么幸运,我的datagrid也是动态的,列不是固定的,所以
还要向你请教如何处理.
通过各位的指点,DataGrid必须加上AutoGenerateColumns=false属性
才能隐藏列
<asp:DataGrid id="DataGrid1" runat="server" Width="100%"
AutoGenerateColumns="False">
<Columns> <asp:BoundColumn DataField="au_id" HeaderText="学"
Visible="false"></asp:BoundColumn>
</Columns>
</asp:datagrid>
这样设置就隐藏了au_id列,
我也没你那么幸运,我的datagrid也是动态的,列不是固定的,所以
还要向你请教如何处理.
#19
AutoGenerateColumns=false当然可以隐藏列,你只要不把那烈绑定到DataGrid中就行了,就是在<Columns>中只绑定你需要显示的列,其他列就不会显示了。没必要设置Visible属性
#20
那么我是不是还可以访问没有bind的列?就是不显示的列?
还有如果我的列并不是固定的,该怎么办?
还有如果我的列并不是固定的,该怎么办?
#21
当然可以访问
模版列功能更强大
模版列功能更强大
#22
那么如果我的列不固定如何band呢?
请教了
请教了
#23
en
看来你是想在自动生成列的时候隐藏数据源的某些字段
那就在DataGrid1_ItemCreated事件中
加上这个
if (e.Item.Cells.Count>1)
e.Item.Cells[1].Visible=false;
看来你是想在自动生成列的时候隐藏数据源的某些字段
那就在DataGrid1_ItemCreated事件中
加上这个
if (e.Item.Cells.Count>1)
e.Item.Cells[1].Visible=false;
#24
你的DataBind出来后,datagrid上有值吗?datasource的来源是不能为null的,但是可以为空。你找yxrj的办法试一下。
或者,把代码mail给我,帮你看看:juqiang@Genersoft.com
或者,把代码mail给我,帮你看看:juqiang@Genersoft.com
#25
<asp:datagrid id="MyDataGrid" AutoGenerateColumns=False
runat="server" AllowPaging="True" PageSize="6" Width="100%"
DataKeyField="fileid" Height="82px"> <Columns>
<asp:TemplateColumn>
<HeaderTemplate>
查看
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="SeeIt"
CommandName="Select" Runat="server">查看</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<Columns> <asp:BoundColumn DataField="fileid"
HeaderText="fileid" Visible="false"></asp:BoundColumn>
<asp:BoundColumn DataField="文件标题" HeaderText="文件标题" Visible="true"></asp:BoundColumn>
<asp:BoundColumn DataField="文件类型" HeaderText="文件类型" Visible="true"></asp:BoundColumn>
<asp:BoundColumn DataField="当前流程" HeaderText="当前流程" Visible="false"></asp:BoundColumn>
</Columns>
<PagerStyle NextPageText="下一页" PrevPageText="上一页" HorizontalAlign="Center"></PagerStyle>
</asp:datagrid>
"查看"列触发的事件
private void MyDataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (e.CommandName.ToString()=="Select")
{
}
}
如上代码,我实现了隐藏"fileid"和="当前流程"两列而又可以访问到他们,
但是下一次我的datagrid所邦定的数据源要变,列也要便,
那么:
<asp:BoundColumn DataField="" HeaderText=""
Visible="">
</asp:BoundColumn>
这部分代码如何反映当前datagrid所bind的数据呢?
runat="server" AllowPaging="True" PageSize="6" Width="100%"
DataKeyField="fileid" Height="82px"> <Columns>
<asp:TemplateColumn>
<HeaderTemplate>
查看
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="SeeIt"
CommandName="Select" Runat="server">查看</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<Columns> <asp:BoundColumn DataField="fileid"
HeaderText="fileid" Visible="false"></asp:BoundColumn>
<asp:BoundColumn DataField="文件标题" HeaderText="文件标题" Visible="true"></asp:BoundColumn>
<asp:BoundColumn DataField="文件类型" HeaderText="文件类型" Visible="true"></asp:BoundColumn>
<asp:BoundColumn DataField="当前流程" HeaderText="当前流程" Visible="false"></asp:BoundColumn>
</Columns>
<PagerStyle NextPageText="下一页" PrevPageText="上一页" HorizontalAlign="Center"></PagerStyle>
</asp:datagrid>
"查看"列触发的事件
private void MyDataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (e.CommandName.ToString()=="Select")
{
}
}
如上代码,我实现了隐藏"fileid"和="当前流程"两列而又可以访问到他们,
但是下一次我的datagrid所邦定的数据源要变,列也要便,
那么:
<asp:BoundColumn DataField="" HeaderText=""
Visible="">
</asp:BoundColumn>
这部分代码如何反映当前datagrid所bind的数据呢?
#26
上面就是我的代码中的关键部分,请大家指教!
谢谢各位
谢谢各位
#27
这样写试试
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.DataBind();
MyDataGrid.Columns[1].Visible=false;
MyDataGrid.DataSource=ds.Tables["myTable"].DefaultView;
MyDataGrid.DataBind();
MyDataGrid.Columns[1].Visible=false;
#28
使用DataGrid一般有2种办法
1.AutoGenerateColumns=Ture
2.AutoGenerateColumns=False
a.在aspx里设好列
b.在cs里动态添加列
对于1,自动产生的列不在DataGrid.Columns集合里,我目前想到的办法在前面提过了。
对于2,不论a或b,都可以从DataGrid.Columns入手,设定每个Column的Visible属性。
1.AutoGenerateColumns=Ture
2.AutoGenerateColumns=False
a.在aspx里设好列
b.在cs里动态添加列
对于1,自动产生的列不在DataGrid.Columns集合里,我目前想到的办法在前面提过了。
对于2,不论a或b,都可以从DataGrid.Columns入手,设定每个Column的Visible属性。
#29
这就好说都了
谢谢指点!
谢谢指点!
#30
怎么现在看见大部分的都喜欢用GridView。。其实介意lz用repeater。。功能强大扩展性好
#31
怎么现在看见大部分的都喜欢用GridView。。其实介意lz用repeater。。功能强大扩展性好