2013-01-09 24 views
0

我需要完全動態地創建UI。要求是頁面上有大約100個控件(可能更多),並且當你填寫表單時,表單本身就會改變。例如,當你填寫你的年齡時,如果年齡在30歲以上但是在50歲以下,那麼接下來的3個問題將會不同 - 如果你超過50歲,那麼只會有2個問題,他們也會完全不同。該頁面將繼續以這種動態方式流動,並且與您相關的控件應該只在您回答它們時顯示問題 - 顯然 - 因爲它們可能與您無關,因此我們必須將它們隱藏起來直到最後一個時刻。如何生成完全動態的UI? MVC或WebForms

我可以使用ASP.NET WebForms或MVC。我意識到,MVC沒有服務器控件的概念,這需要使用JS來完成。我願意使用任何一種技術,但我應該注意到,這將是第一次開發MVC應用程序。我也可以訪問任何我想要的第三方UI API - Telerik,Component Art,Dev Express - 我只需要讓它運行起來,讓它變得非常漂亮。

你會怎樣動態生成這個UI?有沒有設計模式/方法可以讓我看看?

+1

而不是讓他們都在一個頁面上,你有沒有考慮像方法一樣的「嚮導」 - 回答網關問題,然後直接進入帶有下一組相關問題的頁面? – Paddy

+0

我已經考慮過這種方法 - 但是要求業務全部在一個頁面上 – dferraro

+1

對業務的所有應有的尊重,但他們告訴你他們需要什麼,然後告訴他們你將如何去做做它? – Paddy

回答

1

你可以做的是創建每個動態元素集並將它們放在div中。取決於現在的答案,你可以注入這些div,或者已經排隊但隱藏,並使他們在正確的答案可見。所有這些邏輯將進入你的控制器,你只需要有一個起始視圖,其中一個元素有ID

document.getElementById(elementID) 

if ((correctAnswer)&&(element.style.display=='none')) 
    element.style.display="block" 
+0

你可以爲你描述的內容提供一些僞代碼..我不完全是一個JS/HTML專家(我被這些年的WebForms寵壞了)。謝謝 – dferraro

1

您的index.html可以有以下的結構,

<html> 
    <head....... 
    ............ 
    ............ 
    </head> 
    <body> 
    <form> 
     <div id='staticFields1'>.....</div> 
     <div id='staticFields2'>.....</div> 
     <div id='dynamicFields21' display='none'>.....</div> 
     <div id='dynamicFields22' display='none'>.....</div> 
     <div id='staticFields3'>.....</div> 
    </form> 
    </body> 
</html> 

所以根據你的邏輯使顯示器=「塊」

+0

你能提供更多細節嗎?剃鬚刀在哪裏進來,我如何動態地插入控件? (對不起,多年來HTML/JS技能使WebForms變得非常糟糕) – dferraro