1

我是 .net 的新手,我正在开发办公室中的一些功能,如下所示

Jobs.aspx.cs

protected void gvActionItems_RowEditing(object sender, GridViewEditEventArgs e)
{
    //setting the value of the user control property 
}

JobUserControl.ascx.cs

public int _usrcontrolproperty
{
  get{return _usrcontrolproperty;}
  set{
    //depending on the value of the property fetch the data from the database and binding those data on the user controls FormView
    }
}

protected void fvJob_DataBound(object sender, EventArgs e)
{
   //Making the dynamic UI changes that is setting properties of controls  depending upon the values of binding data
}

这就是我在表单视图的数据绑定事件中进行所需 UI 更改的方式,但一位资深人士说“这是糟糕的架构代码设计,它有额外的内存问题,并在数据绑定后在 _usrcontrolproperty 设置方法中进行 UI 更改。” . 所以我想知道

1) Is this really bad architectural code ? If bad then why ?
2) And if my seniors way is bad then also Why ? 

因为我认为 UI 更改应该在绑定数据时完成

4

2 回答 2

1

如果您的上级无法支持他/她的主张..那么他/她并不是您应该尝试学习的人。我不确定他/她所指的“内存问题”是什么,但是很难用您的精简代码来判断。

话虽如此,我会重新考虑属性集中的数据绑定,纯粹是因为当人们开始设置此属性时,您会在稍后的轨道上打开自己的“陷阱”。

相反,我会有一个Refresh()方法。因此,调用代码将是:

UserControl.Property = value;
UserControl.RefreshData();

这为调用 API 提供了在该点刷新或推迟决定的选项。

于 2013-08-22T05:50:05.363 回答
0

我和@Simon 在一起,但我会有一个 RefreshData(value) 方法。因此,调用代码将是:

UserControl.RefreshData(value);

这为调用 API 提供了在该点刷新或推迟决定的选项。在这种方法中,您可以使用 as ,

 Public static RefreshData(<datatype>data)
 {
   //Assign the value to the property 
   //Get the data from database 
   //Bind the data 
 }

如果您不想将属性公开给其他类,您还可以将您的属性设为私有或受保护。

于 2013-08-22T07:19:59.853 回答