【发布时间】:2011-07-21 08:41:10
【问题描述】:
有没有一种方法可以在下面的代码中动态地将 Image1 添加到 while 循环中(包含在 div 中)我的意思是实际上将 asp 图像添加到 div 中?通过代码。目前,当我看到它时,代码会寻找一个 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("<div id=test>");
divHtml.Append(String.Format("{0}", reader.GetString(0)));
divHtml.Append("</div>");
}
test1.InnerHtml = divHtml.ToString();
}
}
我以为我有这个:
var divHtml = new System.Text.StringBuilder();
while (reader.Read())
{
divHtml.Append("<div id=test>");
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("</div>");
}
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("<div id=test>");
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("</div>");
}
test1.InnerHtml = divHtml.ToString();
}
}
}
}
但是 RenderHtmlString 没有定义?
【问题讨论】:
-
是的,你为什么不能呢?您真的应该说出您对此的疑问,以帮助我们更好地与您一起解决它们
-
Garrith:一般来说,您应该使用新信息更新您的原始问题,而不是开始一个全新的问题。请关闭它并更新您在 20 分钟前开始的问题。
-
不,根本不是重复的?我收到一个答案,你不能通过 css 添加 asp 图像现在我必须找到一条新路线,因此上面的问题!
-
更新代码的问题是
Image.ToString()(你在做什么)返回System.Web.UI.WebControls.Image,所以你得到了预期的结果。您需要将其呈现为文本。请参阅下面的我的答案以获取包含通用方法的链接(您将其放入任何类中,然后调用为img.RenderHtmlString(),这样您就可以使用您所拥有的并将divHtml.Append(img);更改为divHtml.Append(img.RenderHtmlString());,如果您在其中包含该Generic 方法你的项目。