2012-05-18 49 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

相关问题