【问题标题】:dynamically populating div in asp.net在asp.net中动态填充div
【发布时间】:2011-08-10 00:34:41
【问题描述】:

我正在开发一个网页,该网页将显示从数据库表返回的问题和答案(一次可能是 5 个,有时可能是 7 个)。每个问题将显示在一个 div 中,相关答案将显示在另一个 div 中。该问题将有一个图标“显示答案/隐藏答案”

如何创建一个 div,然后用表中的值填充它?

谢谢

【问题讨论】:

    标签: asp.net vb.net html


    【解决方案1】:

    我会为此使用中继器。

    1.创建从数据库中提取数据的数据源

    <asp:sqlDataSource Id="sqldsQuestionsAnswers" ... />
    

    2.创建链接到该数据源的转发器:

    <asp:repeater DataSourceId="sqldsQuestionsAnswers" runat="server">
     <itemTemplate>
      <div>
       <%# Eval("question") %>
       <hr/>
       <%# Eval("answer") %>
      </div>
     </itemTemplate>
    </asp:repeater>
    

    中继器将为您的查询返回的每一行显示&lt;itemTemplate&gt; 标记中的任何内容。
    因此,如果您的查询返回 2 个这样的问题:

    问题-------------答案
    ----------------------------------
    问题1?---------答案1
    问题2?---------答案2

    输出将是:

    <div>
     question1?
     <hr/>
     answer1
    </div>
    <div>
     question2?
     <hr/>
     answer2
    </div>
    

    希望对你有帮助……

    【讨论】:

    • 您的回复非常有帮助,但客户必须单击图像图标“显示答案”才能查看答案。他们可以单击相同的图像来隐藏答案。我可以在中继器控件中显示/隐藏吗?
    • @DotNetRookie - 当然可以,但最好的方法是用 javascript 编写显示/隐藏部分
    • 就像乔尔说的那样。使用 JavaScript 显示/隐藏答案
    【解决方案2】:

    我们需要更多地了解您如何检索问题数据以及页面其余部分的上下文,但您可以在这里做一些事情(大致按偏好顺序):

    • 将您的数据绑定到&lt;asp:Repeater &gt; 控件(甚至是网格控件之一)
    • 构建自定义或用户控件以呈现您的问题并将其放到您的页面上
    • 将所需的 html 构建为代码中的字符串并将其设置为 &lt;asp:Panel &gt; 控件(面板呈现为 div 标签)。如果您希望能够在不重新加载整个页面 (AJAX) 的情况下刷新您的 div,您可以使用 &lt;asp:UpdatePanel &gt;
    • 通过&lt;%= %&gt;&lt;%: %&gt;bee-stings 或Response.Write() 方法在代码中构建您想要的html 并直接写入响应。

    【讨论】:

    • 数据是一个简单的存储过程,其中包含一个包含所有行的表的选择语句。至于从数据库中获取数据,我正在研究那部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多