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

时间:2011-07-27 10:39:04

标签: c# asp.net user-controls

我有一个具有许多属性的用户控件。此用户控件放在GridView的TemplateField中,属性从网格的数据源中进行数据绑定。在用户控件上我有一些LinkBut​​ton执行操作,使用一些属性作为属性(例如,我传入一行的ID)

值很好,但只要在usercontrol上单击LinkBut​​ton,属性就会重置为null,因此LinkBut​​ton操作不起作用。什么可能导致这个?我确保启用了ViewState。

编辑:一些代码:

属性:

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

1 个答案:

答案 0 :(得分:1)

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

<强>更新

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

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