如何取得GridView隐藏的第一列的值

OICQshenshi 2008-07-19 05:18:07


正常的非隐藏时,测试时显示的GridView字段为
开课编号 状态 课数 操作
KK001 满 24 提交按钮
KK0.. .. .. .......
KK... .. .. .......
.
.
.
============================

我的GridView第一列是标准的BoundField
[code=c#] <Columns>
<asp:BoundField DataField="开课编号" HeaderText="开课编号" Visible="false">
<ItemStyle Wrap="False" />
<HeaderStyle Wrap="False" />
</asp:BoundField>[/code]


现在是隐藏“开课编号”时,测试时显示的GridView字段为
状态 课数 操作
满 24 提交按钮
.
.
.

求解:当单击“提交按钮”如何获取隐藏后的“开课编号”得值?

...全文
394 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qishouzwh 2008-07-20
  • 打赏
  • 举报
回复
在<Column>下加
<asp:TemplateField Visible="False">
<ItemTemplate>
<asp:Label ID="lblId" runat="server" Text='<%# Bind("Id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
在后台随便在一个方法体里用循环
for (int i = 0; i < this.gridview1.Rows.Count; i++)
{
int id=Convert.ToInt32((gridview1.Rows[i].FindControl("lblId") as Label).Text);
}
这是取得全部的隐藏Id,适合GridView里有个用于全选或多选的复选框时同时对多行进行操作;如果是对某一行进行增或编辑操作,则在该事件里把i改成e.Rowindex即可,不需要循环。
mymamxfx 2008-07-20
  • 打赏
  • 举报
回复
RowDataBound 事件里处理

if(e.Row.RowType == DataControlRowType.Header)
{
//隐藏表头
e.Row.Cells[13].Visible = false;
}
if (e.Row.RowType == DataControlRowType.DataRow)//如果行类型是"数据行"
//隐藏数据
e.Row.Cells[13].Visible = false;
sntyy 2008-07-19
  • 打赏
  • 举报
回复
以前我也想去取隐藏列的值,但后来我不用了,,也许是没有找到取值的方法吧,现在我在绑定前指定DataKeyNames的值,然后去取DataKeys就可以了:
.....
GridView1.DataKeyNames = new string[] { "id","name" };//这样绑定每列的值
GridView1.DataBind();
GridView1.DataKeys[e.rowindex].values[0].tostring()//这样取值
shadowjl 2008-07-19
  • 打赏
  • 举报
回复
GridView_RowCommand=<%Eval("开课号")%>
Maxlusune 2008-07-19
  • 打赏
  • 举报
回复
RowDataBound 事件里处理

if(e.Row.RowType == DataControlRowType.Header)
{
//隐藏表头
e.Row.Cells[13].Visible = false;
}
if (e.Row.RowType == DataControlRowType.DataRow)//如果行类型是"数据行"
//隐藏数据
e.Row.Cells[13].Visible = false;
jizhikuan 2008-07-19
  • 打赏
  • 举报
回复
gridview隐藏列后应该是取不到值的,建议用hidden,然后需要时就从hidden里取值。
Adechen 2008-07-19
  • 打赏
  • 举报
回复
gridwiew.DataKeys[e.rowindex].value.tostring()
gjczxl 2008-07-19
  • 打赏
  • 举报
回复
看你要实现什么功能了,如果想点击提交按钮打开一个页面,并传递一个开课编号的话,可以在模版列中拖一个HyperLink,在HyperLink中加上"某某页面.aspx?id="+DataBinder.Eval(Container.DataItem,"开课编号的字段名称")就可以了
gjczxl 2008-07-19
  • 打赏
  • 举报
回复
DataBinder.Eval(Container.DataItem,"开课编号的字段名称")
grearo 2008-07-19
  • 打赏
  • 举报
回复
GridView1.Columns[0].Visible = false;
levenwood 2008-07-19
  • 打赏
  • 举报
回复
gridwiew.rows[e.index][0].innertext
试试
namhyuk 2008-07-19
  • 打赏
  • 举报
回复
css
.xx { display: none; }
GridView->编辑列->选中你要隐藏的列:FooterStyle, ItemStyle, HeaderStyle的CssClass: xx


提交按钮如果是ItemTemplate里的Button,那么用CommandArgument传开课编号,然后在GridView_RowCommand里取出来。

62,243

社区成员

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

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

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

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