C# 使用一个页面在ASP.NET中添加和编辑项目
我认为这个问题在这里并不清楚 简单地说,我的系统中有19种类型的项目。我有19页,每一页允许我添加一个特定类型的新项目 “添加新项目”页面和“编辑现有项目”页面彼此非常相似。。我所需要的只是隐藏/显示几个控件 所以我想我应该使用C# 使用一个页面在ASP.NET中添加和编辑项目,c#,asp.net,design-patterns,architecture,C#,Asp.net,Design Patterns,Architecture,我认为这个问题在这里并不清楚 简单地说,我的系统中有19种类型的项目。我有19页,每一页允许我添加一个特定类型的新项目 “添加新项目”页面和“编辑现有项目”页面彼此非常相似。。我所需要的只是隐藏/显示几个控件 所以我想我应该使用QueryString来定义我们将如何使用页面,如果是新的,那么一切都将保持不变,如果它用于“编辑”,那么我将更改一些标签的文本属性,并显示一些额外的文本框和下拉列表 我可以用几种方法来做这件事,但这将是一场混乱。我希望有人能提出一种方法,让我的设计和架构保持良好 感谢您
QueryString
来定义我们将如何使用页面,如果是新的,那么一切都将保持不变,如果它用于“编辑”,那么我将更改一些标签的文本属性,并显示一些额外的文本框和下拉列表
我可以用几种方法来做这件事,但这将是一场混乱。我希望有人能提出一种方法,让我的设计和架构保持良好
感谢您的时间=)您的页面上可以有两个面板,一个用于添加控件,另一个用于编辑控件,两个面板都设置为visible=false 然后,您可以执行page.aspx?do=添加或page.aspx?do=编辑,然后使用:
If Request.QueryString("do") = "add" Then
pnlAdd.Visible = true
ElseIf Request.QueryString("do") = "edit" Then
pnlEdit.Visible = true
Else
'Do some error handling.
End If
页面上可以有两个面板,一个用于添加控件,另一个用于编辑控件,两个面板都设置为visible=false 然后,您可以执行page.aspx?do=添加或page.aspx?do=编辑,然后使用:
If Request.QueryString("do") = "add" Then
pnlAdd.Visible = true
ElseIf Request.QueryString("do") = "edit" Then
pnlEdit.Visible = true
Else
'Do some error handling.
End If
1-声明页或类型的InstanceState属性。如果是针对页面的,则使其读取并将其值写入ViewState变量 2-使用枚举来声明此属性的可能值。可以为此属性声明许多值,如(New、OnEdit、OnRead) 3-声明一些其他布尔属性,以帮助您轻松自定义布局,例如(InstanceInNew、InstanceInRead、InstanceInEdit..)。这些属性依赖于InstanceState属性来返回其值 4-将布局项绑定到这些属性,以根据布局项的值显示、启用和执行其他操作 5-更改相应事件上InstanceState的值以更改布局
注意:当你在第一页上工作时,你可能会发现它有点复杂。但是一旦您理解了它的逻辑,您就可以轻松快速地将其应用于其他对象。1-为页面或类型声明InstanceState属性。如果是针对页面的,则使其读取并将其值写入ViewState变量 2-使用枚举来声明此属性的可能值。可以为此属性声明许多值,如(New、OnEdit、OnRead) 3-声明一些其他布尔属性,以帮助您轻松自定义布局,例如(InstanceInNew、InstanceInRead、InstanceInEdit..)。这些属性依赖于InstanceState属性来返回其值 4-将布局项绑定到这些属性,以根据布局项的值显示、启用和执行其他操作 5-更改相应事件上InstanceState的值以更改布局
注意:当你在第一页上工作时,你可能会发现它有点复杂。但是,一旦你理解了它的逻辑,你就可以轻松快速地将它应用到其他页面上。另一种选择是,让一个页面根据参数同时进行添加/编辑,就是让两个不同的页面共享一个提供公共UI的UserControl。例如,如果您有CustomerAdd.aspx和CustomerEdit.aspx,则thjey可以共享一个CustomerProperties.ascx控件,该控件具有名称、地址等文本框。另一种方法是让一个页面根据参数同时进行添加/编辑,即让两个不同的页面共享一个提供公共UI的UserControl。例如,如果您有CustomerAdd.aspx和CustomerEdit.aspx,则thjey可以共享一个CustomerProperties.ascx控件,该控件具有名称、地址等文本框。好的简单解决方案。。感谢+1好的简单解决方案。。谢谢+1