用户控件在回发时丢失属性

本文关键字:属性 控件 用户 | 更新日期: 2023-09-27 18:03:54

我有一个用户控件,它有许多属性。这个用户控件被放置在GridView的TemplateField中,属性是从网格的数据源绑定的。在用户控件上,我有一些LinkButton's执行操作,使用一些属性作为属性(例如,我传入一行的ID)

值进入它很好,但是一旦在用户控件上单击LinkButton,属性重置为null,因此LinkButton动作不起作用。是什么导致的呢?我已经确保ViewState是启用的。

编辑:一些代码

属性:

public long? _InvoiceID;
[PersistenceMode(PersistenceMode.Attribute)]
[Bindable(BindableSupport.Yes)]
public long? InvoiceID {get { return _InvoiceID; } set { _InvoiceID = value; } }

用户控件在回发时丢失属性

尝试将传递给用户控件的值保存到用户控件的隐藏字段中,当您单击LinkButton时读取隐藏字段值

变量long? _InvoiceID是无状态的,所以你可以试试

[PersistenceMode(PersistenceMode.Attribute)]
[Bindable(BindableSupport.Yes)]
public long? InvoiceID 
{
   get { 
         return (long?)_InvoiceIDHiddenn.Value; 
       } 
   set {
          _InvoiceIDHiddenn.Value = value; 
       } 
}