下面我的code给了我一个问题,拍摄的图像后文 [英] My code below gives me a problem, the image comes after the text

查看:88
本文介绍了下面我的code给了我一个问题,拍摄的图像后文的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我下面的code给了我一个问题,拍摄的图像我trye​​d改变轮什么先行后的文字,但如果我把div.innerhtml接近尾声我没有得到任何图像时,我加载页面。正如你可以在图像IVE看到上传的图被​​设置为文本IM也想知道到底是我有办法可以减少小一些?

 公共部分类UserProfileWall:System.Web.UI.Page
{    保护无效的Page_Load(对象发件人,EventArgs的发送)
    {
        。字符串theUserId =会话[用户名]的ToString();
        PopulateWallPosts(theUserId);
    }
    私人无效PopulateWallPosts(字符串userid)
    {        使用(OdbcConnection CN =新OdbcConnection(驱动程序= {MySQL的ODBC驱动程序3.51};服务器=本地主机;数据库= gymwebsite2;用户= ****;密码= ****;))
        {
            cn.Open();
            使用(CMD的OdbcCommand =新的OdbcCommand(选择Wallpostings FROM WallPosting其中userid =+用户id +ORDER BY idWallPosting DESC,CN))
            {
                使用(OdbcDataReader读卡器= cmd.ExecuteReader())
                {
                    VAR divHtml =新System.Text.StringBuilder();
                    而(reader.Read())
                    {
                        System.Web.UI.HtmlControls.HtmlGenericControl DIV =新System.Web.UI.HtmlControls.HtmlGenericControl(分区);
                        div.ID =测试;
                        div.InnerHtml =的String.Format({0},reader.GetString(0));
                        图片IMG =新的图像();
                        img.ImageUrl =〜/用户数据/ 2 / uploadedimage /蝙蝠侠换facebook.jpg
                        img.AlternateText =测试图像;
                        div.Controls.Add(IMG);
                        test1.Controls.Add(DIV);                    }
                }
            }
        }
    }    保护无效的button1_Click(对象发件人,EventArgs的发送)
    {
        。字符串theUserId =会话[用户名]的ToString();
        使用(OdbcConnection CN =新OdbcConnection(驱动程序= {MySQL的ODBC 3.51驱动程序};服务器=<免去取代;数据库=<免去取代;用户=<免去取代;密码=<免去取代;))
        {
            cn.Open();
            使用(CMD的OdbcCommand =新的OdbcCommand(INSERT INTO WallPosting(用户ID,Wallpostings)VALUES(+ theUserId +,'+ TextBox1.Text +'),CN))
            {
                cmd.ExecuteNonQuery();
            }
        }
        PopulateWallPosts(theUserId);
    }
}

 < ASP:内容ID =内容1ContentPlaceHolderID =头=服务器>
    <链接HREF =CSS / style.css文件的rel =stylesheet属性类型=文/ CSS/>
< / ASP:内容>
< ASP:内容ID =内容2ContentPlaceHolderID =ContentPlaceHolder2=服务器>
    <脚本SRC =htt​​p://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js类型=文/ JavaScript的>< / SCRIPT>
&所述p为H.;
    < ASP:文本框ID =TextBox1的NAME =TextBox1的=服务器行=3
        高度=47px宽度=638px>&下; / ASP:文本框>
&所述; / P>
&所述p为H.;
    < ASP:按钮的ID =Button1的=服务器文本=发帖子WIDTH =98px
        的onclick =的button1_Click/>
    &所述; / P>
&所述p为H.;
    &放大器; NBSP;&下; / P>< D​​IV ID =测试1=服务器/>< / ASP:内容>

我试着去实现这一目标:(从油漆作物)

忽略Web UI的部分!

  DIV#test1的{
}
#试验> IMG
{
    浮动:左;
    高度:100像素; / *你不应该在这里调整图像。应在C#来完成* /
}
#TEST> DIV
{
宽度:90%;
的z-index:1;
填充:27.5px;
边境顶:细实#736F6E;
下边框:细实#736F6E;
颜色:#FFFFFF;
保证金:0汽车;
空格:pre;
空格:pre-包装;
空格:pre系列;
}

Tryed这没有成功?

从片段萤火虫:

 &LT; D​​IV id=\"ctl00_ContentPlaceHolder1_ContentPlaceHolder2_test\">weeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee<img风格=边界宽度:0像素; ALT =测试图像SRC =的userdata / 2 / uploadedimage /蝙蝠侠换facebook.jpg&GT;&LT; / DIV&GT;


解决方案

任何具体原因以编程方式注入的div?有数据绑定控件做你正在做的工作。例如。使用中继器(2.0+)或ListView(3.5+)控制。
<一href=\"http://weblogs.asp.net/scottgu/archive/2007/08/10/the-asp-listview-control-part-1-building-a-product-listing-page-with-clean-css-ui.aspx\"相对=nofollow> ListView控件

下面是有点复杂的方式看看是否有帮助:

  System.Web.UI.HtmlControls.HtmlGenericControl DIV =新System.Web.UI.HtmlControls.HtmlGenericControl(分区);
            div.Style [飘] =左;
            图片IMG =新的图像();
            img.ImageUrl =〜/用户数据/ 2 / uploadedimage /蝙蝠侠换facebook.jpg
            img.AlternateText =测试图像;
            div.Controls.Add(IMG);
            test1.Controls.Add(DIV);            System.Web.UI.HtmlControls.HtmlGenericControl DIV1 =新System.Web.UI.HtmlControls.HtmlGenericControl(分区);
            div1.InnerText =的String.Format({0},reader.GetString(0));            div1.Style [飘] =左;
            test1.Controls.Add(DIV1);            System.Web.UI.HtmlControls.HtmlGenericControl DIV2 =新System.Web.UI.HtmlControls.HtmlGenericControl(分区);
            div2.Style [清除] =既;
            test1.Controls.Add(DIV2);

当然,使用CSS可以减少上述几行。

My code below gives me a problem, the image comes after the text I tryed changing round what goes first but if I place the div.innerhtml near the end I get no images when I load the page. As you can see in the image ive uploaded the Img is being set to the end of the text im also wondering is there a way I can cut the size down?

        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);
    }
}

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <link href="css/style.css" rel="stylesheet" type="text/css" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js" type="text/javascript"></script>
<p>
    <asp:TextBox ID="TextBox1" name="TextBox1" runat="server" Rows="3" 
        Height="47px" Width="638px"></asp:TextBox>
</p>
<p>
    <asp:Button ID="Button1" runat="server" Text="Post Message" Width="98px" 
        onclick="Button1_Click" />
    </p>
<p>
    &nbsp;</p>

<div id="test1" runat="server" />







</asp:Content>

Im trying to achieve this: (crop from paint)

ignore the web ui parts!

div#test1 {
}
#test> img
{
    float: left;
    height: 100px; /* You shouldn't resize images here. Should be done in C#*/
}
#test > div
{
width:90%; 
z-index:1; 
padding:27.5px; 
border-top: thin solid #736F6E;
border-bottom: thin solid #736F6E;
color:#ffffff;
margin:0 auto;
white-space: pre;
white-space: pre-wrap;
white-space: pre-line;
}

Tryed this to no success?

Snippet from 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>

解决方案

Any specific reason to inject the divs programmatically? There are databound controls to do the job you are doing. E.g. using Repeater(2.0+) or ListView(3.5+) controls. ListView Control

Here is a bit complex way see if it helps:

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);

Surely using css can reduce few lines above.

这篇关于下面我的code给了我一个问题,拍摄的图像后文的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆