如何取得gridview隐藏列的值?

jhdxhj 2010-07-12 04:14:37
protected void gdv_RowEditing(object sender, GridViewEditEventArgs e)
{
string s = gdv.Rows[e.NewEditIndex].Cells[1].Text;
}
但是这样取不到,如何才能取到?
...全文
1084 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
breezekey 2010-07-13
  • 打赏
  • 举报
回复

<asp:TemplateField HeaderText="供应商代码" SortExpression="Code">
<ItemTemplate>
<asp:Label ID="lblVendorCode" runat="server" Text='<%#Eval("VendorCode")%>'></asp:Label>
</ItemTemplate>
<ItemStyle CssClass="hidden" />
<HeaderStyle CssClass="hidden" />
</asp:TemplateField>


<style type="text/css">
.hidden
{display:none}
</style>

通过CSS隐藏
这种方式可以通过
Label lbl = GridView.Rows[i].FindContrl("lblVendorCode") as Label
lbl.Text就是你绑定的值
的方式获取
一切为了你 2010-07-12
  • 打赏
  • 举报
回复
<asp:GridView ID="gvd" runat ="server" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField ID="hfield" runat ="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle Wrap="True" />
</asp:GridView>
如果是这样隐藏的话,可以这样写获取值
HiddenField hidId = (HiddenField)this.GridView1.Rows[e.RowIndex].FindControl("hidId");
string id=hidId.Value;
还想懒够 2010-07-12
  • 打赏
  • 举报
回复
如果这个隐藏列的值是在前端需要有变化的,那么在当前页面行模板里面加入一个HiddenField,然后后台去取这个HiddenField的值即可。

如果值是固定不变的,不受前端的影响,比如说该行的ID值,那直接在e.Row.Attributes上直接加入一个attribute即可,后台也就是取Attribute
lo_back___ 2010-07-12
  • 打赏
  • 举报
回复
个人觉得有两种办法,一是用18楼说的隐藏控件 也就是用模板列<HiddenField> 将值写到<HiddenField>中


<asp:GridView ID="gvd" runat ="server" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField ID="hfield" runat ="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle Wrap="True" />
</asp:GridView>

二是对GridView的数据源进行处理 把不显示的数据不绑定在GridView就行了,需要的时候操作数据源就行了.

//增加一列即可 绑定时选择自己需要的列进行绑定
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = Publicdt.NewRow();
dr[0] = dt.Rows[i][0];
dr[1] = dt.Rows[i][1];
dr[2] = dt.Rows[i][2];
dr[3] = dt.Rows[i][3];
dr[4] = dt.Rows[i][4];
dr[5] = dt.Rows[i][5];
dr[6] = dt.Rows[i][6];
dr[7] = FnStateChange(Convert.ToInt32(dt.Rows[i][5].ToString()));
Publicdt.Rows.Add(dr);
}

lishuai1030 2010-07-12
  • 打赏
  • 举报
回复
隐藏控件!!!!!!!!
鸭梨山大帝 2010-07-12
  • 打赏
  • 举报
回复
说取不到值的都是扯蛋的,又不是前端JS取值.

如12楼所说,只要用FindControl即可.

其实所谓的隐藏也只是骗一下客户端的显示而已,真正的资料还是发送到了客户端,被放至在ViewState的那一段里面的.

begintransaction 2010-07-12
  • 打赏
  • 举报
回复
顶个。。
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 joyous_z 的回复:]

你可以用这种隐藏方式

//隐藏字段
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataContro……
[/Quote]

这可以.....
YnSky 2010-07-12
  • 打赏
  • 举报
回复
css隐藏!!!!!!!!!!
abclove 2010-07-12
  • 打赏
  • 举报
回复
先在前台用Label绑定数据字段值
<asp:TemplateField Visible="false">
<ItemTemplate>
<asp:Label ID="slblDesignerID" runat="server" Text='<%# Eval("DesignerID")%>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
在事件里面
Label ctr =((Label)(gdv.Rows[e.NewEditIndex].Cells[1].FindControl("slblDesignerID")));
然后 ctr.Text 就是值了
幻想的天涯 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wybxs2006 的回复:]
引用 6 楼 suiyiminmin 的回复:
把要隐藏的列的值放HiddenField里面,从HiddenField取就可以

是个不错的方法
[/Quote]
不错!
阿彪兄 2010-07-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 suiyiminmin 的回复:]
把要隐藏的列的值放HiddenField里面,从HiddenField取就可以
[/Quote]
是个不错的方法
ye22wen 2010-07-12
  • 打赏
  • 举报
回复
用隐藏控件
daxiang127 2010-07-12
  • 打赏
  • 举报
回复
页面
<asp:TemplateField Visible="False">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("EmailSetId") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
后台
long indexId = Convert.ToInt32(((Label)row.Cells[0].FindControl("Label1")).Text.Trim());
joyous_z 2010-07-12
  • 打赏
  • 举报
回复
你可以用这种隐藏方式

//隐藏字段
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[1].Visible = false;
}
}


然后再取值
string s = gdv.Rows[i].Cells[1].Text.Replace(" ", "");
哈喽Baby 2010-07-12
  • 打赏
  • 举报
回复
把要隐藏的列的值放HiddenField里面,从HiddenField取就可以
nocallstle 2010-07-12
  • 打赏
  • 举报
回复
用input隐藏控件。然后。find找到该项隐藏控件
cyyknvb620 2010-07-12
  • 打赏
  • 举报
回复
最笨的方法,如果没有数据源,可以后台先显隐,取数然后再隐藏哇
klyh1207 2010-07-12
  • 打赏
  • 举报
回复
你要是把控件本身隐藏了 一定会取不到
建议你用CSS 样式去隐藏它
这样不影响你外观
而且后台也能取到值
  • 打赏
  • 举报
回复
如果这个column是隐藏的,使用这种方法是取不到的,试试去数据源中取
加载更多回复(1)

62,046

社区成员

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

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

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

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