如何开发这个依赖于另一个ListView的ListView?
我是一名新的ASP.NET开发人员,我正在尝试开发一个简单的测验引擎,允许系统管理员使用两个ListView创建测验。 第一个ListView用于插入测验标题和描述,第二个ListView用于插入问题,答案(答案数量不同),正确答案,答案解释,问题顺序。
我有以下数据库设计:
Quiz Table: QuizID, Title, Description Question Table: QuestionID, Question, QuestionOrder, AnswerExplanation QuestionImage Table: ID, QuestionID, URL Answer Table: AnswerID, Answer QuizContent Table: ID, QuizID, QuestionID, AnswerID
我的要求让我对第二个ListView与数据的绑定感到困惑:
- 每个测验都有不同数量的问题,每个问题都有不同数量的可能答案。 例如,在其中一个测验中,我有两个问题。 在第一个问题中,我有四个可能的答案,第二个问题是真或假的问题。
- 一些问题可能有一些图像。
此ListView应支持CRUDE操作。 那怎么做?
我的第一个ListView的ASP.NET代码:
<asp:TextBox ID="TitleTextBox" runat="server" Text='' /> <asp:TextBox ID="DescriptionTextBox" runat="server" Text='' /> No data was returned.
<%-- --%> <asp:TextBox ID="TitleTextBox" runat="server" Text='' /> <asp:TextBox ID="DescriptionTextBox" runat="server" Text='' /> <%----%> <%-- <asp:Label ID="QuizIDLabel" runat="server" Text='' /> --%> <asp:Label ID="TitleLabel" runat="server" Text='' /> <asp:Label ID="DescriptionLabel" runat="server" Text='' /> ... Title Description
<%-- <asp:Label ID="QuizIDLabel" runat="server" Text='' /> --%> <asp:Label ID="TitleLabel" runat="server" Text='' /> <asp:Label ID="DescriptionLabel" runat="server" Text='' /> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="" SelectCommand="SELECT * FROM [Quiz]" DeleteCommand="DELETE FROM [Quiz] WHERE [QuizID] = @QuizID" InsertCommand="INSERT INTO [Quiz] ([Title], [Description]) VALUES (@Title, @Description)" UpdateCommand="UPDATE [Quiz] SET [Title] = @Title, [Description] = @Description WHERE [QuizID] = @QuizID">
我的第二个ListView的代码:
<%-- <asp:Label ID="QuestionIDLabel1" runat="server" Text='' /> --%> <asp:TextBox ID="QuestionTextBox" runat="server" Text='' CssClass="textbox" /> <asp:TextBox ID="Answer1TextBox" runat="server" Text='' CssClass="textbox" /> <asp:TextBox ID="CorrectAnswerTextBox" runat="server" Text='' CssClass="textbox" /> <asp:TextBox ID="AnswerExplanationTextBox" runat="server" Text='' CssClass="textbox" /> <asp:TextBox ID="QuestionOrderTextBox" runat="server" Text='' CssClass="textbox" /> No data was returned.
<%-- --%> <asp:TextBox ID="QuestionTextBox" runat="server" Text='' CssClass="textbox" /> <asp:TextBox ID="AnswerTextBox" runat="server" Text='' CssClass="textbox" /> <asp:TextBox ID="CorrectAnswerTextBox" runat="server" Text='' CssClass="textbox"/> <asp:TextBox ID="AnswerExplanationTextBox" runat="server" Text='' CssClass="textbox" /> <asp:TextBox ID="QuestionOrderTextBox" runat="server" Text='' CssClass="textbox" /> Please enter the letter of the correct answer A, B, C, D. <asp:Label ID="QuestionLabel" runat="server" Text='' /> <asp:Label ID="Answer1Label" runat="server" Text='' /> <asp:Label ID="CorrectAnswerLabel" runat="server" Text='' /> <asp:Label ID="AnswerExplanationLabel" runat="server" Text='' /> <asp:Label ID="QuestionOrderLabel" runat="server" Text='' /> ... Question Answer Correct Answer Answer Explanation Question Order Image
<%----%> <%----%> <asp:Label ID="QuestionLabel" runat="server" Text='' /> <asp:Label ID="Answer1Label" runat="server" Text='' /> <asp:Label ID="CorrectAnswerLabel" runat="server" Text='' /> <asp:Label ID="AnswerExplanationLabel" runat="server" Text='' /> <asp:Label ID="QuestionOrderLabel" runat="server" Text='' /> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="" SelectCommand="SELECT dbo.Question.Question, dbo.Question.QuestionOrder, dbo.Question.AnswerExplanation, dbo.Answers.Answer, dbo.QuestionImage.URL FROM dbo.Question INNER JOIN dbo.QuizContent ON dbo.Question.QuestionID = dbo.QuizContent.QuestionID INNER JOIN dbo.Answers ON dbo.QuizContent.AnswerID = dbo.Answers.AnswerID INNER JOIN dbo.Quiz ON dbo.QuizContent.QuizID = dbo.Quiz.QuizID LEFT OUTER JOIN dbo.QuestionImage ON dbo.Question.QuestionID = dbo.QuestionImage.QuestionID WHERE (dbo.QuizContent.QuizID = @QuizID)">