2013-08-19 22 views
3

我們已經得到了與多個文本框基於MVC的ASP.NET企業要填寫的表單(如用例將是「註冊人」 - >表單包含:姓名, ......,爸爸,媽媽,......)ASP.NET MVC查找表單域

數據錄入員不應該被強制輸入的父親/母親自己,他應該能夠搜索此人在系統中。只有一些自動填充字段或彈出窗口是不夠的,他應該能夠使用我們已經實現的完整搜索頁面(人員控制器具有SearchIndex & SearchPerson操作,用戶具有各種搜索選項)。

最終用戶界面應如下所示:註冊用戶表單有一個用於將用戶界面切換到搜索頁面的「選擇父親」按鈕,用戶可以搜索該用戶,並且可以在結果中的某行上單擊「選擇」將用戶界面返回到註冊人員表格,父數據現在填充到只讀字段中(隱藏ID,名稱&出生日期可見但不可編輯)。

我們的問題/問題:什麼是推薦的方式

a)除已經在原來的形式打開搜索表單時輸入的數據?是否真的有必要在jQuery對話框中打開帶有IFRAME的搜索表單,以保持在同一頁面上,而不會丟失輸入的數據?

b)如何將選定的ID返回到原始表單並預先填充只讀文本框?

我希望你知道我們想要達到的目標,否則請評論,我會澄清問題。

+1

我個人認爲有一個jQuery對話框或iframe在表格上築巢的搜索頁面更賞心悅目,提供比導航離開搜索頁面,並與所選擇的記錄回來了更好的用戶體驗。我認爲實施也更容易。對於局部視圖來說,這是一個很好的用例。 – asymptoticFault

+0

好的,但是,是否有必要使用IFRAME?這裏使用IFRAME有什麼缺點嗎?有些人建議不要使用IFRAME ... –

+0

我沒有親自使用iframe,所以不能評論他們的優點,但我使用了jQuery UI對話框插件,它非常出色。 – asymptoticFault

回答

0

我看到兩個選擇:

  • 您可以利用客戶端技術。您可以打開模式或使用搜索人員操作結果填充div。一旦用戶找到父親,您可以將該數據移至專用容器(只讀文本字段)並關閉搜索容器。
  • 你可以做所有的服務器端。您始終可以使用會話來存儲用戶已輸入的數據,將用戶帶到搜索視圖,並且一旦用戶選擇了父親,您就可以填充存儲在與父數據會話中的信息。初始表單可以查看該會話變量/對象,以填充輸入字段(如果它們可用)。

注意

  • 您可以根據需要隨時結合客戶端/服務器端技術。

  • 您可以使用會話的建議,但對於瞬態數據會做這項工作的任何其它存儲機制(鍵值存儲:Redis的文檔數據庫等)。

+0

如果可能,由於性能/可伸縮性問題,我們不希望使用會話。如果我們使用模式對話框選項並且用戶按下搜索按鈕,整個頁面是不是會被重新加載而不是僅僅是模式對話框? –

+0

如果您使用ajax,則不支持在ASP.MVC(Ajax.BeginForm)中構建的ajax調用,也可以在純jQuery中執行此操作。 –

+0

如果頁面中已有標記,則不必重新加載,只是隱藏起來。或者,您可以使用ajax搜索標記進行搜索。 – asymptoticFault

1

我會實現一些新的東西,並使用Jquery UI對話框來執行搜索和選擇。您可能/應該重構現有的搜索系統來完全支持不同的用戶界面,或者只編寫一個新的用戶界面。