C# 如何在ASP.NET数据列表中放置列表

C# 如何在ASP.NET数据列表中放置列表,c#,asp.net,list,datalist,C#,Asp.net,List,Datalist,如果这个问题的答案看起来很明显,我很抱歉,但我自己就是想不出来。 我正在构建一个web应用程序,现在我需要从数据库中获取数据并将其显示在数据列表中 我的目标是数据列表中的以下输出: 问题1姓名 答案1 答案2 … 答案8 问题2姓名 答案1 答案2 … 答案8 问题3姓名 答案1 .. 你明白了。 我已经写了一个基本的数据列表,从问题(下面的代码)开始,这在某种程度上是有效的,但是我不太确定如何获得答案,然后重复这个过程,直到所有的数据都被获取。 这是代码。 确认.aspx <asp:Da

如果这个问题的答案看起来很明显,我很抱歉,但我自己就是想不出来。 我正在构建一个web应用程序,现在我需要从数据库中获取数据并将其显示在数据列表中

我的目标是数据列表中的以下输出:

问题1姓名
答案1
答案2

答案8
问题2姓名
答案1
答案2

答案8
问题3姓名
答案1
..

你明白了。 我已经写了一个基本的数据列表,从问题(下面的代码)开始,这在某种程度上是有效的,但是我不太确定如何获得答案,然后重复这个过程,直到所有的数据都被获取。 这是代码。 确认.aspx

<asp:DataList runat="server" id="dgQuestionnaire">
                    <ItemTemplate>
                        <asp:Label ID="Name" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "QuestionText") %>' />
                    </ItemTemplate>
                </asp:DataList>
inventory.cs(应用程序代码)

我知道我遗漏了一些东西,但我不确定为了显示每个问题的答案,应该包括哪些内容

谢谢
Idny,

基本上,您可以将一个
数据列表
放在另一个
数据列表
项目模板

您可以使用
DataKeyField
属性链接它们


这将引导您完成它。

我不确定是否正确理解了您的问题。 我想你要做的是从数据库中获取所有问题,然后在该问题下方显示与某个问题对应的所有答案


你可以尝试使用中继器。基本上会有两个中继器,一个在另一个里面。外部中继器将显示来自数据源的问题,而内部中继器将显示该特定问题的答案。

是的,OP面临的问题需要嵌套的数据绑定控件。外部
数据列表
中的
中继器
也可能是一个不错的选择。教程提供了正确的方法。只是尝试将数据读取器移动到App_代码中的.cs,同时保持aspx.cs页面上的数据绑定。有什么想法吗?好问题,结构良好的代码。您可能可以删除数据访问层代码,因为它的功能是隐含的,不是问题的直接部分,并且使问题比需要的长得多。
public partial class Confirm_Questionnaire : System.Web.UI.Page
    {
        OsqarSQL GetData;
        DataTable DT;

        protected void Page_Load(object sender, EventArgs e)
        {
            GetData = new OsqarSQL();
            int questionnaireId = (int)Session["QuestionnaireID"];
            string questionnaireName = (string)Session["QuestionnaireName"];
            ReturnQnrName.Text = questionnaireName + "   (ID: " + questionnaireId.ToString() + ")";
            int questionId = GetData.GetQuestionID(questionnaireId);
            DT = GetData.GetQuestionName(questionnaireId);
            dgQuestionnaire.DataSource = DT;
            dgQuestionnaire.DataBind();

        } // End Page_Load

    } // Emd Class Confirm_Questionnaire
public class OsqarSQL
    {
        private string _productConnectionString;
        private SqlConnection _productConn;

        public OsqarSQL()
        {
            _productConn = new SqlConnection();
            _productConnectionString += "data source=mssql.database.co.uk; Initial Catalog=devworks_oscar;User ID=me;Password=you";
            _productConn.ConnectionString = _productConnectionString;
        }
        public DataTable GetQuestionName(int QuestionnaireID)
        {
            string returnValue = string.Empty;
            SqlCommand myCommand = new SqlCommand("GetQuestion", _productConn);
            myCommand.CommandType = CommandType.StoredProcedure;
            myCommand.Parameters.Add(new SqlParameter("@QUEST_ID", SqlDbType.Int));
            myCommand.Parameters[0].Value = QuestionnaireID;
            return createDataTable(getData(myCommand));
        }
        public DataTable GetAnswerTitle(int QuestionnaireID)
        {
            string returnValue = string.Empty;
            SqlCommand myCommand = new SqlCommand("GetAnswer", _productConn);
            myCommand.CommandType = CommandType.StoredProcedure;
            myCommand.Parameters.Add(new SqlParameter("@QUEST_ID", SqlDbType.Int));
            myCommand.Parameters[0].Value = QuestionnaireID;
            return createDataTable(getData(myCommand));
        }