下面我的code给了我一个问题,拍摄的图像后文 [英] My code below gives me a problem, the image comes after the text
问题描述
我下面的code给了我一个问题,拍摄的图像我tryed改变轮什么先行后的文字,但如果我把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 =http://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>< DIV 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; DIV 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>
</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屋!