C# 下面的代码给了我一个问题,图像在文本后面

C# 下面的代码给了我一个问题,图像在文本后面,c#,asp.net,html,css,C#,Asp.net,Html,Css,下面的代码给了我一个问题,图像出现在我尝试改变的文本之后,但如果我将div.innerhtml放在靠近末尾的位置,则在加载页面时没有图像。正如你在我上传的图片中所看到的,Img被设置在文本的末尾,我也在想,有没有办法把尺寸缩小 public partial class UserProfileWall : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {

下面的代码给了我一个问题,图像出现在我尝试改变的文本之后,但如果我将div.innerhtml放在靠近末尾的位置,则在加载页面时没有图像。正如你在我上传的图片中所看到的,Img被设置在文本的末尾,我也在想,有没有办法把尺寸缩小

        public partial class UserProfileWall : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        string theUserId = Session["UserID"].ToString();
        PopulateWallPosts(theUserId);
    }
    private void PopulateWallPosts(string userId)
    {

        using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=****; Password=****;"))
        {
            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())
                    {
                        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 = "~/userdata/2/uploadedimage/batman-for-facebook.jpg";
                        img.AlternateText = "Test image";
                        div.Controls.Add(img);
                        test1.Controls.Add(div);

                    }
                }
            }
        }
    }





    protected void Button1_Click(object sender, EventArgs e)
    {
        string theUserId = Session["UserID"].ToString();
        using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=<REMOVED>; Database=<REMOVED>; User=<REMOVED>; Password=<REMOVED>;"))
        {
            cn.Open();
            using (OdbcCommand cmd = new OdbcCommand("INSERT INTO WallPosting (UserID, Wallpostings) VALUES (" + theUserId + ", '" + TextBox1.Text + "')", cn))
            {
                cmd.ExecuteNonQuery();
            }
        }
        PopulateWallPosts(theUserId);
    }
}
试图这样做却没有成功

firebug的代码片段:

<div id="ctl00_ContentPlaceHolder1_ContentPlaceHolder2_test">weeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee<img style="border-width: 0px;" alt="Test image" src="userdata/2/uploadedimage/batman-for-facebook.jpg"></div>

图像和文本是内联元素,这意味着它们从左向右流动

如果要强制图像到新行,请使用以下命令:

div.InnerHtml = String.Format("{0}<br />", reader.GetString(0));

至于图像大小,您需要上传大小合适的图像,或者在上传图像时可以使用C中的image对象来调整图像大小。

图像和文本是内联元素,意味着它们从左向右流动

如果要强制图像到新行,请使用以下命令:

div.InnerHtml = String.Format("{0}<br />", reader.GetString(0));

至于图像大小,您需要上传大小合适的图像,或者在上传图像时可以使用C中的image对象来调整其大小。

以编程方式插入div的具体原因是什么?有数据绑定控件来执行您正在执行的任务。例如,使用Repeater2.0+或ListView3.5+控件。

下面是一个比较复杂的方法,看看它是否有帮助:

System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div.Style["float"] = "left";
            Image img = new Image();
            img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg";
            img.AlternateText = "Test image";
            div.Controls.Add(img);
            test1.Controls.Add(div);

            System.Web.UI.HtmlControls.HtmlGenericControl div1 = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div1.InnerText = String.Format("{0}", reader.GetString(0));

            div1.Style["float"] = "left";
            test1.Controls.Add(div1);

            System.Web.UI.HtmlControls.HtmlGenericControl div2 = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div2.Style["clear"] = "both";
            test1.Controls.Add(div2);

当然,使用css可以减少上面的几行。

以编程方式注入div有什么具体原因吗?有数据绑定控件来执行您正在执行的任务。例如,使用Repeater2.0+或ListView3.5+控件。

下面是一个比较复杂的方法,看看它是否有帮助:

System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div.Style["float"] = "left";
            Image img = new Image();
            img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg";
            img.AlternateText = "Test image";
            div.Controls.Add(img);
            test1.Controls.Add(div);

            System.Web.UI.HtmlControls.HtmlGenericControl div1 = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div1.InnerText = String.Format("{0}", reader.GetString(0));

            div1.Style["float"] = "left";
            test1.Controls.Add(div1);

            System.Web.UI.HtmlControls.HtmlGenericControl div2 = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div2.Style["clear"] = "both";
            test1.Controls.Add(div2);

当然,使用css可以减少上面的几行。

为什么不添加一些css使图像向左浮动

#test img {
  float: left;
  padding: 5px 10px 5px 0;
}

为什么不添加一些CSS使图像向左浮动

#test img {
  float: left;
  padding: 5px 10px 5px 0;
}
看在上帝的份上,不要把你的密码放在你的帖子里。 不要纯粹通过字符串连接执行查询!使用一个。如果我能够将数据写入会话,例如使用UserId,我可以很容易地将SQL注入会话。请考虑使用ORM工具,如NHiBiNess或微软的实体框架。 如果希望图像位于左侧,旁边有文本,请使用更新的代码。基本上,在图像上,您希望将float属性设置为left。 如果要更改代码,可以将其更改为:

System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");

HtmlGenericControl literal = new HtmlGenericControl("div");
literal.InnerHtml = reader.GetString(0);

Image img = new Image();
img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg";
img.AlternateText = "Test image";
div.Controls.Add(img);
div.Controls.Add(literal);
test1.Controls.Add(div);
看在上帝的份上,不要把你的密码放在你的帖子里。 不要纯粹通过字符串连接执行查询!使用一个。如果我能够将数据写入会话,例如使用UserId,我可以很容易地将SQL注入会话。请考虑使用ORM工具,如NHiBiNess或微软的实体框架。 如果希望图像位于左侧,旁边有文本,请使用更新的代码。基本上,在图像上,您希望将float属性设置为left。 如果要更改代码,可以将其更改为:

System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");

HtmlGenericControl literal = new HtmlGenericControl("div");
literal.InnerHtml = reader.GetString(0);

Image img = new Image();
img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg";
img.AlternateText = "Test image";
div.Controls.Add(img);
div.Controls.Add(literal);
test1.Controls.Add(div);

尝试此操作,将ASP:placeholder控件添加到页面中,而不是添加一个div。然后在代码隐藏中构造三个div,一个用于图像,一个用于文本,另一个用于包含这两个div

//create container
        System.Web.UI.HtmlControls.HtmlGenericControl container = new System.Web.UI.HtmlControls.HtmlGenericControl("div");

        //create div to hold the image
        System.Web.UI.HtmlControls.HtmlGenericControl imgDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
        imgDiv.Attributes.Add("class","imgDiv");

        //build the image and set properties.
        Image img = new Image();
        img.Width = new Unit(60);//pixels
        img.Height = new Unit(60);
        img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg";
        img.AlternateText = "Test image";

        //add image to image div
        imgDiv.Controls.Add(img);

        //create div to hold text
        System.Web.UI.HtmlControls.HtmlGenericControl postText = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
        postText.Attributes.Add("class", "postText");
        postText.InnerHtml = String.Format("{0}", reader.GetString(0));

        //now add the two divs to the page
        test1.Controls.Add(imgDiv);
        test1.Controls.Add(postText);
现在,这将以HTML呈现:

<div>
    <div id="imgDiv">
        //image

    </div>
    <div id="postText">
        //text    
    </div>    
</div>

如果窗口变小,文本可能会跳转到新行。您可以通过设置容器div的最小宽度来解决此问题。

尝试一下,将ASP:placeholder控件添加到页面而不是div。然后在代码隐藏中构造三个div,一个用于图像,一个用于文本,另一个包含这两个div

//create container
        System.Web.UI.HtmlControls.HtmlGenericControl container = new System.Web.UI.HtmlControls.HtmlGenericControl("div");

        //create div to hold the image
        System.Web.UI.HtmlControls.HtmlGenericControl imgDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
        imgDiv.Attributes.Add("class","imgDiv");

        //build the image and set properties.
        Image img = new Image();
        img.Width = new Unit(60);//pixels
        img.Height = new Unit(60);
        img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg";
        img.AlternateText = "Test image";

        //add image to image div
        imgDiv.Controls.Add(img);

        //create div to hold text
        System.Web.UI.HtmlControls.HtmlGenericControl postText = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
        postText.Attributes.Add("class", "postText");
        postText.InnerHtml = String.Format("{0}", reader.GetString(0));

        //now add the two divs to the page
        test1.Controls.Add(imgDiv);
        test1.Controls.Add(postText);
现在,这将以HTML呈现:

<div>
    <div id="imgDiv">
        //image

    </div>
    <div id="postText">
        //text    
    </div>    
</div>

如果窗口变小,文本可能会跳转到新行。您可以通过设置容器分区的最小宽度来解决此问题。

您可以发布您的.aspx标记吗?我扩展了代码,您可以发布您的.aspx标记吗?我扩展了代码,aspNo我需要它位于行的开头,不是在新的一行上,文本必须在后面,而不是在前面。不,我需要它在这行的开头,而不是在新的一行上,文本必须在后面,而不是在前面。接下来我将学习所有的安全措施。我一遍又一遍地听到这一点,但我只想在我清理完之后,先把功能准备好。我需要的不是一句新台词,你只是比我说的完全一样。我还编辑了代码下方的连接信息@Garrith:另外,将连接字符串粘贴到web.config中,而不是分散在代码中。您正在为自己设置一个噩梦般的维护场景。@Garrith-安全应该是第一位的。如果您使用ORM工具,您可以轻松地完成所有这一切,而无需编写单个查询;浮动:左;/>到动态生成的div?每次创建div时都会创建img,该div由我的代码设置。请阅读我在帖子中的cs代码,了解其工作原理。我不确定我能不能把这样的东西放进去?@Garrith-查看更新的链接了解一个通用的方法。我正在学习接下来的所有安全措施。我听了一遍又一遍,但我只想
功能首先是我清理的。我需要的不是一句新台词,你只是比我说的完全一样。我还编辑了代码下方的连接信息@Garrith:另外,将连接字符串粘贴到web.config中,而不是分散在代码中。您正在为自己设置一个噩梦般的维护场景。@Garrith-安全应该是第一位的。如果您使用ORM工具,您可以轻松地完成所有这一切,而无需编写单个查询;浮动:左;/>到动态生成的div?每次创建div时都会创建img,该div由我的代码设置。请阅读我在帖子中的cs代码,了解其工作原理。不确定我是否可以在其中放置这样的东西?@Garrith-查看更新的链接以了解执行此操作的一般方法。我已经有了一个div test css,如何将其添加到其中?我会用css更新我的帖子,我已经尝试过了,只是把它添加到文章的末尾,但是没有用,我已经有了一个div测试css,我怎么把它添加到里面呢?我将用css更新我的帖子,我已经尝试过了,只是在文章末尾添加了css,但没有效果。实际上,你可以在asp页面上保留原始div,并将img a text div添加到该控件中。会减少一些代码。我喜欢占位符。哦,你可能想在CSS中使用类而不是ID,因为你在多篇文章中循环,最终会得到重复的ID。实际上,你可以在asp页面上保留原始div,并将img a文本div添加到该控件中。会减少一些代码。我喜欢占位符。哦,你可能会想在CSS中使用类而不是ID,因为你在多篇文章中循环,最终会得到重复的ID。这是可行的,但出于某种原因,我无法让CSS包装文本?这是可行的,但出于某种原因,我无法让CSS包装文本?