将asp.net图像添加到div

有没有办法可以动态地将Image1添加到下面代码中的while循环中(包含在div中)我是说实际上是在div中添加了一个asp图像? 通过代码。 目前,我看到代码寻找一个asp图像,但我看不出你可以“添加”它到我的动态内容:

using (OdbcCommand cmd = new OdbcCommand("SELECT Wallpostings FROM WallPosting WHERE UserID=" + userId + " ORDER BY idWallPosting DESC", cn)) { using (OdbcDataReader reader = cmd.ExecuteReader()) { var divHtml = new System.Text.StringBuilder(); while (reader.Read()) { divHtml.Append("
"); divHtml.Append(String.Format("{0}", reader.GetString(0))); divHtml.Append("
"); } test1.InnerHtml = divHtml.ToString(); } }

以为我有这个:

  var divHtml = new System.Text.StringBuilder(); while (reader.Read()) { divHtml.Append("
"); divHtml.Append(String.Format("{0}", reader.GetString(0))); Image img = new Image(); img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg"; divHtml.Append(img); divHtml.Append("
"); } test1.InnerHtml = divHtml.ToString();

我得到一个时髦的输出?

见图:

在此处输入图像描述

我也试过这个:

  using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.Odbc; using System.Web.UI.WebControls.Image; using System.Web.UI.HtmlControls.HtmlGenericControl; using System.IO; public partial class UserProfileWall : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string theUserId = Session["UserID"].ToString(); PopulateWallPosts(theUserId); } public static string RenderHtmlString(this System.Web.UI.HtmlControls.HtmlGenericControl htmlControl) { string result = string.Empty; using (System.IO.StringWriter sw = new System.IO.StringWriter()) { var writer = new System.Web.UI.HtmlTextWriter(sw); htmlControl.RenderControl(writer); result = sw.ToString(); writer.Close(); } return result; } private void PopulateWallPosts(string userId) { using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=root; Password=commando;")) { cn.Open(); using (OdbcCommand cmd = new OdbcCommand("SELECT Wallpostings FROM WallPosting WHERE UserID=" + userId + " ORDER BY idWallPosting DESC", cn)) { using (OdbcDataReader reader = cmd.ExecuteReader()) { var divHtml = new System.Text.StringBuilder(); while (reader.Read()) { using (StringWriter sw = new StringWriter()) divHtml.Append("
"); divHtml.Append(String.Format("{0}", reader.GetString(0))); Image img = new Image(); img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg"; divHtml.Append(img.RenderHtmlString()); //this line divHtml.Append("
"); } test1.InnerHtml = divHtml.ToString(); } } } }

但是RenderHtmlString没有定义?

不,您无法将服务器控件添加到DOM元素的文字表示中。

我不确定什么类型的控件“test1”,但你应该将它更改为PlaceHolder控件并执行以下操作(未测试!):

  using (OdbcCommand cmd = new OdbcCommand("SELECT Wallpostings FROM WallPosting WHERE UserID=" + userId + " ORDER BY idWallPosting DESC", cn)) { using (OdbcDataReader reader = cmd.ExecuteReader()) { var divHtml = new System.Text.StringBuilder(); while (reader.Read()) { System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div"); div.ID = "test"; div.InnerHtml = String.Format("{0}", reader.GetString(0)); Image img = new Image(); img.ImageUrl = "~/images/test.jpg"; img.AlternateText = "Test image"; div.Controls.Add(img); test1.Controls.Add(div); } test1.InnerHtml = divHtml.ToString(); } } 

希望这可以帮助!

 HtmlGenericControl("div") divHtml = new HtmlGenericControl("div"); divHtml.Controls.Add( HtmlImage image = new HtmlImage{ Src = "pathgoeshere" } ); 

想必你还需要将它作为字符串返回? 如果是这样的话,试试这个方便的Generic http://www.refactory.org/s/render_html_string_from_htmlgenericcontrol/view/latest,但是真的做其他人建议的事情并使用的力量来充分利用它并添加这个返回的控件到占位符的控件集合。

只是有点担心。 您正在动态构建SQL字符串。 确保清理“userid”变量。

您可以通过执行以下操作动态创建图像:

 System.Web.UI.WebControls.Image img = new Image(); img.ImageUrl = "~/img/image1.jpg"; 

你知道你想要使用的图像吗? 图像或图像源是否位于数据库中?

尝试使用占位符

 Image img = new Image(); // instantiating the control img.ImageUrl = "~/myimage.gif"; // setting the path to the image placeholderpicture.Controls.Add(img); 

来自http://forums.asp.net/t/1308158.aspx/1