3

我正在使用 asp.net 中的 DataSource 绑定 GridView,并且我想要一些隐藏的 BoundFields,以便我可以在我的 RowDataBound 函数中访问这些值。但是,当我在这些 BoundFields 上设置 Visible="False" 时,值不会被设置,并且在 RowDataBound 函数中始终为空白。

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

4

3 回答 3

2

奇怪,你是怎么做到的?我知道我在使用之前已经这样做了:

<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("ColumnName")%>'/>
于 2011-02-11T22:03:46.440 回答
2

为此,我建议您使用 DataKey。

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

例如:

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

DataKeyNames="emp_id,代码">

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();

吉萨

于 2011-02-12T05:12:29.233 回答
1

您是否尝试过使用DataItemfromGridViewRowEventArgs传递给您的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"]
    }
}

在此处查看 MSDN。

于 2011-02-11T22:09:32.927 回答