在asp.net中动态生成HTML元素时缺少图像源

时间:2013-03-30 10:05:27

标签: c# javascript asp.net

我在DataTable dt5中有4行。我试图生成某些html元素动态等于dt5中的行数。 Visual Studio代码:

<% for(int i = 0; i < dt5.Rows.Count; i++)
{
%>
<div id="Div1"  class="image_stack" style="margin-left:600px" runat="server" >
<img  class="stackphotos photo1" src="~/Images/3.jpg" clientidmode="static" runat="server" />
<img  class="stackphotos photo2" src="~/Images/4.jpg" clientidmode="static" runat="server"/>
<img   class="stackphotos photo3" src="~/Images/5.jpg" clientidmode="static" runat="server"/>
</div>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<% } %>

我能够生成html,但问题是所需的html,即(在mozilla中查看源代码)应该是.... 第一个迭代代码:

<div id="ContentPlaceHolder1_Div1" class="image_stack" style="margin-left:600px">
<img src="Images/3.jpg" class="stackphotos photo1" />
<img src="Images/4.jpg" class="stackphotos photo2" />
<img src="Images/5.jpg" class="stackphotos photo3" />
</div>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />

但我得到的结果是(浏览器查看源代码)......

<div id="ContentPlaceHolder1_Div1" class="image_stack" style="margin-left:600px">
<img class="stackphotos photo1" />
<img class="stackphotos photo2" />
<img class="stackphotos photo3" />
</div>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><<br /><br />

正如您所看到的,生成的代码中缺少'src'部分.WHy是否缺少src?

好的,现在感谢Code Rider了。 现在我想从datatable获取src。

 for (int i = 0; i < dt5.Rows.Count; i++)
     {
       string   a = dt5.Rows[0]["imageurl"].ToString();
       string b = dt5.Rows[1]["imageurl"].ToString();
       string c = dt5.Rows[2]["imageurl"].ToString();
  %> 
   <div id="Div1"  class="image_stack" style="margin-left:600px" runat="server" >
    <img id="Img1"  class="stackphotos photo1" src="<%a%>"   />
    <img id="Img2"  class="stackphotos photo2" src="<%b%>"  />
      <img id="Img3"   class="stackphotos photo3" src="<%c%>" />
 </div>
     <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
  <% } %>

2 个答案:

答案 0 :(得分:1)

我用下面的代码试过这个。它的工作正常。

      <% for(int i = 0; i < 5; i++)
 {
  %> 
   <div id="Div1"  class="image_stack" style="margin-left:600px" runat="server" >
    <img id="Img1"  class="stackphotos photo1" src="11.png"   />
    <img id="Img2"  class="stackphotos photo2" src="11.png"  />
      <img id="Img3"   class="stackphotos photo3" src="11.png" />
 </div>
     <br /><br /><br /><br /><br />
  <% } %>

答案 1 :(得分:0)

你可以尝试下面的代码..

<% for(int i = 0; i < dt5.Rows.Count; i++)
{
%>
<div id="Div1"  class="image_stack" style="margin-left:600px" runat="server" >
<img  class="stackphotos photo1" src="Images/3.jpg" clientidmode="static" runat="server" />
<img  class="stackphotos photo2" src="Images/4.jpg" clientidmode="static" runat="server"/>
<img   class="stackphotos photo3" src="Images/5.jpg" clientidmode="static" runat="server"/>
</div>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<% } %>

表示只需删除图片网址前的〜符号..