ASP.NET在循环中添加控件

时间:2009-12-23 06:04:19

标签: asp.net loops

对不起,这真的是一个noob问题,但请理解我没有太多的ASP.NET经验。我需要做的就是:

1)打开以下SQL查询:

SELECT myid FROM mytable

2)对于每条记录,生成HTML片段:

<a href="#mynameanchor" onClick="myfunction( '__myid comes here__' );"><img src="http://someurl/__myid comes here as well__/small.png" /></a>

我很容易使用经典的ASP <% do until recordset.eof ... loop %>样式循环但我需要它在ASP.NET样式中,可能在Page_Load事件中执行操作并使用内部ASP.NET控件。

3 个答案:

答案 0 :(得分:4)

使用转发器控件。在ItemTemplate中,您可以为查询返回的每条记录添加您想要生成的内容。

http://articles.sitepoint.com/article/asp-net-repeater-control

答案 1 :(得分:3)

在aspx页面源中添加它

   <td id="urLink" runat="server">

   </td>

在Page_Load事件中添加此内容

 SqlConnection con = new SqlConnection();
 con.connectionstring = "your connection database";
 SqlDataReader reader;
 SqlCommand command = new SqlCommand(con);
 command.Commandtext = "SELECT myid FROM mytable";
 command.CommandType = CommandType.Text;
 reader = command.ExecuteReader();
 while(reader.Read())
 {
      urLink.innerHTML += "<a   href="#mynameanchor" onClick="myfunction( " + reader["myid"].tostring() + " );">
    <img src="http://someurl/" + reader["myid"].tostring() + "/small.png" /></a>";
 }

答案 2 :(得分:2)

看起来onclick是一个javascript事件,这意味着您可以将HTML标记写入字符串,然后将其全部附加到文字控件中。记得使用stringbuilder:)

这是一个非常基本的例子:

// get data from database and into a reader before

StringBuilder links = New StringBuilder();

while(reader.read())
{
    links.appendFormat("<a HREF='id_{0}'>{0}</a>", reader["ID"]);
}

ltlLinks.Text = links.ToString();