如何在ASP.NET中的GridView中使用隐藏的Boundfield?

时间:2011-02-11 22:00:49

标签: asp.net gridview boundfield

我在asp.net中使用DataSource绑定了一个GridView,我希望有一些隐藏的BoundFields,所以我可以在我的RowDataBound函数中访问这些值。但是,当我在这些BoundFields上设置Visible =“False”时,值不会被设置,并且在RowDataBound函数中始终为空。

有办法做到这一点吗?我已经看到了一些关于将BoundField上的样式设置为隐藏的建议,但这对我来说也不起作用。理想情况下,我甚至不想在gridview中创建一个列,我只想隐藏这些值,以便我可以访问它们。谢谢!

3 个答案:

答案 0 :(得分:2)

奇怪,你好吗?我知道在使用之前我已经完成了这个:

<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("ColumnName")%>'/>

答案 1 :(得分:2)

为此,我建议您使用DataKey。

请参阅此链接http://www.codeproject.com/KB/grid/Data_presentation.aspx

例如:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"

的DataKeyNames = “EMP_ID,代码” &GT;

int EmployeeID = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Values[0]);
  int DepartementID = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Values[1]);
DataRow绑定中的

((GridView)sender).DataKeys[e.Row.RowIndex].Value.ToString();

Geetha

答案 2 :(得分:1)

您是否尝试过DataItem传递给GridViewRowEventArgs方法的RowDataBound

像:

protected void MyGridView_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRowView rowView = (DataRowView)e.Row.DataItem;
        // do something with rowView["myHiddenField"]
    }
}

Check MSDN here.