C# 有没有办法让div在服务器上运行?所以我可以把它变成一个控件?

C# 有没有办法让div在服务器上运行?所以我可以把它变成一个控件?,c#,asp.net,html,C#,Asp.net,Html,有没有办法让div在服务器上运行?所以我可以把它变成一个控件?在asp.net中 编辑: 如果是这样,我如何告诉下面的代码使div ID=test在服务器上运行 while (reader.Read()) { System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("di

有没有办法让div在服务器上运行?所以我可以把它变成一个控件?在asp.net中

编辑:

如果是这样,我如何告诉下面的代码使div ID=test在服务器上运行

            while (reader.Read())
            {
                System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
                div.Attributes["class"] = "test";
        //div.Style["float"] = "left";

                div.ID = "test";
                Image img = new Image();
                img.ImageUrl = String.Format("{0}", reader.GetString(1));
                // this line needs to be represented in sql syntax
                //img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg";
                img.AlternateText = "Test image";

                div.Controls.Add(img);
                div.Controls.Add(ParseControl(String.Format("&nbsp&nbsp "+"{0}", reader.GetString(0))));
                div.Style["clear"] = "both";
                test1.Controls.Add(div);

            }

你可以制作一个div runat=“server”,给它一个id和来自C#的引用,如果你想要的话。但是,为什么不直接使用asp:panel呢?它们基本上做相同的工作,并且在大多数场景中,该面板渲染一个div

asp:panel在渲染时是一个div

<div runat="server"></div>
编辑:您生成的是服务器端控件,不需要添加
runat=“server”

按评论编辑:

<div onclick="alert('hello')" runat="server"></div>

这肯定不是最优雅的解决方案,但是添加一个文本控件并从代码构建div就可以了。

ASPX代码

<div id="alert" runat="server" style="float: left">

</div>

虽然asp:panel在大多数浏览器中都会创建div,但并不能保证在所有浏览器中都会创建div。这取决于web.config或machine.config中browserCaps元素内的设置。我忘记了browserCaps在2.0之后被弃用,并被浏览器定义文件(*.Browser)替换。然而,同样的警告仍然适用于他们。我来这里是想在runat=server时使用div,但最终使用了runat=server的span,这样我就不会在容器中的内容和我控制范围之外的一些文本之间出现中断。这帮助我找到了解决方案,非常感谢。
var myDiv = new HtmlGenericControl("div");
myDiv.Attributes.Add("onclick", "alert('hello');");
<div id="alert" runat="server" style="float: left">

</div>
alert.InnerHtml= ANY HTML CODE  ;