这是我做的一个模板列,隐藏的.
<asp:TemplateColumn Visible="False" SortExpression="scoreID" HeaderText="成绩编号">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label id="Label26" Width="50" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "scoreID") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="edit_scoreID" Width="50" Runat="server" CssClass="input" Text='<%# DataBinder.Eval(Container.DataItem, "scoreID") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn Visible="False" SortExpression="scoreID" HeaderText="成绩编号">
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:Label id="Label26" Width="50" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "scoreID") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="edit_scoreID" Width="50" Runat="server" CssClass="input" Text='<%# DataBinder.Eval(Container.DataItem, "scoreID") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
其中第5列是隐藏列,注意.net是从0开始的。
strRt = CType(e.Item.Cells(e.Item.Cells.Count - 1).Controls(1), Label).Text 我在这里建议你把隐藏的,要取值的列放在最后,这样就有很大的灵活性.strRt就是你要的值了.这里只是提供了一种方式,你类似的可以做很多的变换处理.
不过哦,这里如果是有<EditItemTemplate>,你简单的替换掉其中的Label ,用TextBox可是不行的哦!
这是我象session中传第九列的值,它是隐藏列
只是开始写的时候是需要修改的,后来也就没改回来.
for(int i=0;i<grid1.items.count;i++)
{
for(int j=0;j<grid1.columns.count;j++)
{
if(grid1.item[i].cells[j].text!=="")
{
ss=grid1.item[i].cells[j].text;
}
}
}