2012-05-18 56 views
1

我有一個包含以下字段的表,我使用EF創建的模型:如何創建一個彈出窗口,顯示一般信息

Event Details 

EventMngID 
Event_name 
Event_location 
Event_Date 
EM_opt1Question1 
EM_opt1Answer1 
EM_opt1Question2 
EM_opt1Answer2 
EM_opt1Question3 
EM_opt1Answer3 
EM_opt1Question4 
EM_opt1Answer4 

我有一個顯示該事件的信息和自定義頁面他們是在分開分裂的問題。正如你所看到的,第二個圖像有一個編輯選擇操作鏈接。當我點擊編輯時,它會彈出一個顯示答案的彈出窗口。從彈出窗口中,我可以修改這些值並保存答案。所有更改應反映在「自定義問題」部分的「答案字段」下拉列表中。我的問題是,使用什麼機制,因爲表中包含4個答案字段 如果我要在彈出式窗口(下面的代碼)中這樣做,那麼Answer2.4.4又如何?我相信它會引發一個錯誤。任何幫助請就如何解決這個問題,或者如果有一個與我的問題有關的鏈接,請發送給我。

 <div class="editor-field"> 
     <%: Html.TextBoxFor(model => model.Answer1) %> 
     <%: Html.ValidationMessageFor(model => model.Answer1) %> 
    </div> 

Event Details Information

Custom Question

enter image description here

+2

爲什麼不使用JQuery UI以及更具體的對話框? http://jqueryui.com/demos/dialog/ – CallumVass

+0

我使用jQuery對話框彈出 – user335160

+0

我不確定你在問什麼。你問每個問題如何存儲多個答案?還是你在問答案的某種驗證? –

回答

0

我看到它的方式,你有兩個選擇。

第一個(我不認爲是最好的選擇)是找出哪個問題和答案編號正在編輯並動態生成您的查詢。我不知道,如果你使用的是一些像ORM實體框架,但如果你是,然後你會需要有一些長期的if/elseif的聲明如下所示:

if (editing question 1) 
    return (query to get question and answer 1) 
else if (editing question 2) 
    return (query to get question and answer 2) 

在另一方面,如果你是隻需動態編寫sql查詢並使用ADO.NET,就可以更輕鬆地生成查詢文本。再次,我不建議這個解決方案。

更好的解決方案是規範化數據庫並將問題和答案分離到自己的表中,而不是將它們存入EventDetails表中。您將需要從表中刪除每個EM_opt1QuestionX和EM_opt1AnswerX列,並創建一個新的表像下面的一些結構:

QuestionAnswer 
-------- 
QuestionAnswerID 
EventMngID 
Question 
Answer 

然後每個問題和答案都有自己的ID,讓您輕鬆地在給定的記錄。這也使您能夠根據需要提供儘可能多的問題和答案,而無需嘗試猜測所需的最大問題數量。

+0

實際上,這也是我的想法,但客戶端設計了它,他們不允許修改表格的結構 – user335160

相關問題