Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Gridview获取设置为Visible=False的BoundField值_C#_Asp.net - Fatal编程技术网

C# Gridview获取设置为Visible=False的BoundField值

C# Gridview获取设置为Visible=False的BoundField值,c#,asp.net,C#,Asp.net,如何获取设置为Visible=false的字段的值?详情如下: <asp:BoundField DataField="ItemID" HeaderText="Line Item ID" Visible="false"/> 它找不到它并抛出异常,但如果我让它可见=“true”,它就会工作 如果visible=false,如何检索该值?尝试添加该属性 runat="Server" 在GridView的定义中,添加 <asp:GridView .... DataKeyName

如何获取设置为Visible=false的字段的值?详情如下:

 <asp:BoundField DataField="ItemID" HeaderText="Line Item ID" Visible="false"/> 
它找不到它并抛出异常,但如果我让它可见=“true”,它就会工作


如果visible=false,如何检索该值?

尝试添加该属性

runat="Server"

在GridView的定义中,添加

<asp:GridView .... DataKeyNames="ItemID" ...>

我在发布之前没有测试这个代码。但这是你需要做的一般想法。它可以按原样工作,也可以不按原样工作。

如果您有
IsVisible=false
控件根本不会呈现给客户端,因此您将无法在回发时获取值。您可以使用style
display:none
在客户端上不显示,但仍在渲染

<asp:BoundField DataField="ItemID" HeaderText="Line Item ID" style="display:none;"/> 

在这种情况下,您将能够恢复该值


另一种方法是使用
控件。

我对此进行了一些尝试,但最终(不是添加RowDataBound事件),只需在需要时从数据键中获取值,例如(在VB中):


显然,这适用于值为数据键的情况。。。如果没有,这可能不是一个好主意。

没有这些代码的另一种方法是:

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

隐藏
{
显示:无;
}
在页面或css文件中。 并将该类设置为您的边界字段:

<asp:BoundField DataField="Id" ItemStyle-CssClass="Hide" HeaderStyle-CssClass="Hide" />


希望有此帮助。

ItemID是数据集中的主键吗?在什么时候需要ItemID的值?当数据绑定或在行事件上时?我当前正在GridView上对其进行编码。\u DataBoundOnDataBound是整个GridView的事件-您想要特定行的信息,请在数据绑定行时获取它。唯一的问题是,它与int.Parse(字符串)的混合具有一些无效参数是否使用TryParse?不确定您的DataKey将如何导致这样的消息-它永远不应该为null或空,因为它是主键。它不是在抱怨它的内容,而是在前面提到的等号之后的语句格式。我没有测试代码。“System.Web.UI.WebControl.BoundField”没有名为“style”的公共属性。如果将其放在aspx页面中,它将在最终html控件中呈现。”。如果您想从服务器端执行此操作,可以通过
yourbundfield.Attributes[“style”]=“display:none”
执行。另外,
System.Web.UI.WebControls.BoundField
确实有一个
ControlStyle
属性,尽管我认为它不会有一个
display
属性。
<asp:BoundField DataField="ItemID" HeaderText="Line Item ID" style="display:none;"/> 
x = MyGrid.DataKeys(oRow.RowIndex).Values(0).ToString)
<style type="text/css">
    .Hide
    {
        display: none;
    }
</style>
<asp:BoundField DataField="Id" ItemStyle-CssClass="Hide" HeaderStyle-CssClass="Hide" />