2011-04-16 71 views
0

我不認爲這裏的問題是明確的。使用一個頁面在ASP.NET中添加和編輯項目

只是我的系統中有19種類型的項目。我有19頁每一個允許我添加一個特定類型的新項目。

「添加新項目」頁面和「編輯現有項目」頁面,彼此非常相似..我需要的是隱藏/顯示幾個控件。

所以我想我會用QueryString來定義我們如何使用頁面,如果是新的,那麼一切都將保持不變,如果它用於「編輯」,那麼我會改變一對夫婦的文本屬性並顯示一些額外的TextBox和DropDownLists。

我可以用幾種方式做到這一點,但它會一團糟。我希望有人能夠提出一種方法來保持我的良好設計和架構。

感謝您的時間=)

回答

0

1-申報頁面或類型的InstanceState屬性。如果它是針對頁面的,請將其值寫入ViewState變量中。

2-使用enumuration聲明此屬性的可能值。你可以聲明這個屬性的許多值,比如(New,OnEdit,OnRead)。

3-聲明一些其他布爾屬性,以幫助您像自定義佈局一樣(InstanceIsNew,InstanceIsOnRead,InstanceIsOnEdit ..)。這些屬性依賴於InstanceState屬性返回它們的值。

4-將佈局項目綁定到這些屬性以顯示,啓用以及根據其值對佈局項目執行何種操作。

5-更改相應事件上InstanceState的值以更改佈局。


注意:您可能會發現它有點複雜,當你進行這項工作的第一頁。但是一旦你理解了它的邏輯,你就可以輕鬆快速地將其應用於其他人。

1

你可以有你的頁面上有兩個面板,一個用於添加控件和一個用於設置都可見=假編輯控件。

然後你就可以要麼page.aspx做=添加或page.aspx做=編輯,然後使用:??

 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 
2

另一種方法是讓一個頁面既可以根據參數進行添加/編輯,也可以有兩個不同的頁面共享一個提供公共UI的UserControl。例如,如果您有CustomerAdd.aspx和CustomerEdit.aspx,可以共享一個CustomerProperties.ascx控件,該控件具有名稱,地址等文本框。

+0

好的簡單解決方案..謝謝+1 – lKashef 2011-04-17 03:34:57

相關問題