我在C#中有以下代码,它从db中打印图像。通过此代码图像和单选按钮单行显示单行。这是我的代码
foreach (DataRow item in ds.Tables[0].Rows)
{
divs += @" <div style="" position:relative; height:100px; width:400px; margin:10px auto;"">
<div style=""position:absolute; width:80px; height:80px; top: 10px; left: 130px;"">
<a href=""#"" class=""screenshot"" rel=""images/"+item["namee"].ToString()+@".jpg"" ><img src=""images/" + item["namee"].ToString() + @".jpg"" width=""80px"" height=""80px"" /></a>
</div>";
if(id < 1){
divs += @" <div style=""position:absolute; width:231px; left:240px; top:35px; height: 40px;"">
<p style="" margin-top:10px; margin-left:20px; ""><input type=""radio"" name=""SSRI"" value=""" + item["namee"].ToString() + @""" /></p>
</div>";
}
divs += @"<div style=""position:absolute; width:231px; left:100px; bottom:10px; height: 40px;"">
</div>
</div>";
}
Response.Write(divs);
通过此Code Out Put就像这样
Images '' radio
Images '' radio
但是我希望那个输出应该像这样
Images '' radio Images '' radio
Images '' radio Images '' radio
有没有人能帮助我做到这一点。请帮助!
答案 0 :(得分:0)
我不确定您当前的代码是如何尝试做您想要的,但您应该使用 floating divs 。移除您拥有的所有top
left
和position:absolute
,然后使用float
,height
和width
。然后使用clear:left;
到新行。
例如,在您的代码中:
int currLine = 0;
foreach (DataRow item in ds.Tables[0].Rows)
{
if (currLine % 2 == 0)
{
// Every second item, move to a new line
divs += @"<div style=""clear:float;"" />"
}
divs += @" <div style=""float:left; width:400px; margin:10px auto;background:yellow;">
<div style=""width:80px; height:80px;background:red;""
<a href=""#"" class=""screenshot"" rel=""images/"+item["namee"].ToString()+@".jpg"" ><img src=""images/" + item["namee"].ToString() + @".jpg"" width=""80px"" height=""80px"" /></a>
</div>";
if(id < 1){
divs += @" <div style=""width:231px;height: 40px;background:blue;"">
<p style="" margin-top:10px; margin-left:20px; ""><input type=""radio"" name=""SSRI"" value=""" + item["namee"].ToString() + @""" /></p>
</div>";
}
divs += @"<div style=""width:231px; height: 40px;background:green;"">
</div>
</div>";
}
Response.Write(divs);
我冒昧地添加了不同颜色的backgrounds
,这样你就可以更好地了解它的作用。