我在Fast Survey Project工作!!
我没有时间设计数据库和所有这些东西,我只有一张桌子,我必须填写答案,我必须在两天内完成。
问题是我有超过50个问题,我将它们分成3组,我将每个问题组放在用户控件中,我试图保存每个用户控件的值。
我希望在每个用户控件之后临时保存主题,当用户到达最后一个用户控件并单击“完成”按钮时,它应该保存所有答案一次。
所以有什么想法?我当时想要使用像global file !!
这样的东西但我不知道它是否有效,但我现在正在努力,我希望能从你们这里找到任何想法。
答案 0 :(得分:0)
您可以暂时保存在会话中:
var survey = new Survey();
Survey.Name = textBoxName.Text;
Session["answer"] = survey.
然后以各种形式使用:
var survey = Session["answer"] as Survey;
if (survey == null)
//error, redirect to start
Survey类是class,包含所有调查信息。
其他例子,
//Form1, question 1
List<string> survey = new List<string>();
survey.Add(textBox1.Text);
Session["survey"] = survey;
//Form2, question2
var survey = Session["survey"] as List<string>;
survey.Add(textBox1.Text);
//Form...n... final save
var survey = Session["survey"] as List<string>;
for(int i=0; i< survey.Count;i++)
{
SaveAnswer("someId", i, survey(i));
}
答案 1 :(得分:0)
这是一个解决方案
如果要在每个页面上显示最多包含三个问题的组的页面,则会变得稍微复杂一些。然后将使用groupID instaed引用问题页面。
如果您的实施时间只有2天,那么我肯定会满足于每页简单的一个问题解决方案。
答案 2 :(得分:0)
这可以通过UserControl公共属性轻松解决。
以下是我将如何解决这个问题:
// this dictionary will eventually be serialized and kept in session
// throughout the whole Q&A session
var questionsAndAnswers = new Dictionary();
foreach(var control in MyUserControls)
{
questionsAndAnswers.Add(control.Question, control.Answer);
}
this.Session["q&a"] = questionsAndAnswers;
这样的事情应该做的工作。
这里的要点是强调通过子控件中的公开属性获取所需信息(相同的概念可以应用于代码中的任何父/子级别)。