如何在运行时在C#</span>中添加<span>标记

时间:2013-06-26 18:38:31

标签: c# html asp.net

在我的网站上,我有两张桌子 - 专辑和图片。

  

专辑包含援助,alname。同样的图像包含 - imgid,imgname,   imgurl,imgdes and aid [外键]。

这是我的gallery.aspx页面:

<body style="background-image:url('Images/Backgrounds/back.jpg')">
    <form id="form1" runat="server">
        <h1 style="color:White"><i>Gallery - Albums</i></h1>
        <div id="container" runat="server" style="border-style:ridge; border-color:dimgrey; height:565px; padding-left:50px;padding-right:30px;padding-top:20px;padding-bottom:20px;"></div>
    </form>
</body>

这是我的代码隐藏:

con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
con.Open();
com = new SqlCommand("select * from album", con);
reader = com.ExecuteReader();

DataTable dtnew = new DataTable();
dtnew.Load(reader);
DataTable[] dt = new DataTable[6];
con.Close();
if (dtnew.Rows.Count > 0)
{
    for (int i = 0; i < dtnew.Rows.Count; i++)
    {
        con.Open();

        int id = Convert.ToInt32(dtnew.Rows[i]["aid"]);
        DataTable dttemp = new DataTable();
        SqlCommand com1 = new SqlCommand("select * from image where aid=" + id + " ORDER BY aid desc", con);
        SqlDataReader dr = com1.ExecuteReader();
        dttemp.Load(dr);
        dt[i] = dttemp;
        ImageButton img = new ImageButton();
        img.ImageUrl = Convert.ToString(dt[i].Rows[0]["imgurl"]);
        img.ID = Convert.ToString(dtnew.Rows[i]["aid"]);
        img.Click += new ImageClickEventHandler(Img1_Click);
        img.AlternateText = Convert.ToString(dtnew.Rows[i]["alname"]);
        img.ToolTip = Convert.ToString(dtnew.Rows[i]["alname"]);
        img.CssClass = "galimg";

        con.Close();

        container.Controls.Add(img);
    }
}

此代码仅在图像按钮中加载第一张图像并将其显示为相册,点击后将加载另一页,其中包含与该相册相关的所有图像。

现在的样子:

enter image description here

我现在想要的是我希望在循环中的每个图像按钮中添加一个div或div部分。这样的图像按钮将有一些宽度和高度大于图像按钮的背景..我怎样才能实现这一点。

如何在运行时执行此操作?

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找HtmlControl课程:

http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlcontrol.aspx

HtmlControl mySpan = new HtmlControl("span")

答案 1 :(得分:1)

您可以将图片按钮添加到HtmlGenericControl - 所以在每个按钮之前您可以创建一个新的html控件,然后将按钮添加到它并将其添加到您的页面。

HtmlGenericControl类的构造函数采用HTML控件的标记名称,因此很容易将其从span更改为div - 只需传递"div"相反。

您可以使用此HtmlGenericControl类创建您喜欢的任何html元素。

所以...这样的事情:

HtmlGenericControl s = new HtmlGenericControl("span");
s.Attributes.Add("class", "myCssClass");
s.Attributes.Add("id", "myUniqueIdButNotNeeded");
// then your button as normal
ImageButton img = new ImageButton();
// rest of your button code...

// add button to span
s.Controls.Add(img);

// add the span
container.Controls.Add(s);