GridView列中Visible="False"的异同

<asp:TemplateField Visible="False">
<ItemTemplate>
<asp:Label ID="LblGoodsID" runat="server" Text='<%# bind("cGoodsID") %>'></asp:Label>
</ItemTemplate>
 </asp:TemplateField>
<asp:BoundField DataField="cGoodsID" Visible="False" />


    protected void OnUpdate(object sender, EventArgs e)
    {
        GridViewRow t = (GridViewRow)(((ImageButton)sender).Parent.Parent);
        Label LblGoodsID = (Label)t.FindControl("LblGoodsID");
        Response.Write(LblGoodsID.Text);
        Response.Write(t.Cells[1].Text);
    }

同是Visible="False"第一个可以打印出来.第二个则没有被打印出来
 

如果要在GridView 控件中隐藏不必要的列,使用visible="false"后 你就无法取得这列的值了.

解决问题的方法很简单:

--------------------------------------------------
 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //隐藏不必要的列
            if ((e.Row.RowType == DataControlRowType.DataRow) || (e.Row.RowType == DataControlRowType.Header) || (e.Row.RowType == DataControlRowType.Footer))
            {
                e.Row.Cells[0].Visible=false;
                e.Row.Cells[3].Visible=false;
           
            }

}

posted @ 2008-07-29 19:20  chinaifne  阅读(1272)  评论(0编辑  收藏  举报