将HTML Div代码转换为控件

时间:2010-01-18 18:38:52

标签: c# asp.net html

我有大量的HTML代码用于在我的控件上创建圆边框。有没有办法把这个代码转换成某种控制或其他东西所以我不必在我所做的每一件事上粘贴10行HTML代码?

<div id="BottomBody">
    <div class="box1024" >
        <div class="content1024">
            <div class="top1024"></div>
            <h1>My Header Information</h1>
            <hr />
            <p>Some text for everyone!</p>
        </div>
        <div class="bottom1024">
            <div></div>
        </div>
    </div>
</div>

需要注意的另一件事是,内部大多数DIV中使用的HTML标记数量将根据我在网站中使用的位置而改变。所以在某些情况下我只有1个标签和1个

标签,但在其他情况下我可以有1个标签,1个

标签,3个标签和一个HTML表格。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:3)

是的,你在想UserControl。提取相关的HTML,将其粘贴到UserControl .ascx模板中。

现在,在您的情况下,您可能希望文本可自定义,我是对的吗?因此,您需要使用ASP.NET标签替换<h1></p>位。生成的.ascx HTML(不包括@Control指令)将类似于:

<div id="BottomBody">
    <div class="box1024" >
        <div class="content1024">
            <div class="top1024"></div>
            <asp:Label runat="Server" id="label1" />
        </div>
        <div class="bottom1024">
            <div></div>
        </div>
    </div>
</div>

或者,你可以做两个标签 - 一个用于标题,一个用于主要文本。或者甚至只是标题为runat="Server"本身。

接下来,您将在.ascx代码隐藏文件中编写一些代码来公开标签(或标签',视情况而定)Text属性。这可能看起来像:

public string Text
{
    get { return label1.Text; }
    set { label1.Text = value; }
}

如果您在ASP.NET MVC世界中,请使用Model数据而不是标签,并将所需的显示文本string作为模型数据传递。

修改

解决问题的更新:

  

另外需要注意的是,   内部使用的数字HTML标签   大多数DIV会根据不同而改变   我在我的网站上使用它。所以在某些方面   我将只有1个标签和1个

     

标签,但在其他情况下,我可以有1   tag,1

     

标签,3个标签和HTML表格。怎么能   我做了那个工作?

完全相同的技术,假设您所指的内容是<div class="content1024">内的内容。标签的Text属性可以包含任何所需的任意HTML,当然,如果您正在使用MVC,则可以将任意数量的HTML作为字符串传递给模型。

答案 1 :(得分:1)

另一种左侧字段方法 - 创建用户控件但为您使用jQuery to round角落:

<div class="roundcorner">
    <h1>My Header Information</h1>
    <hr />
    <asp:Label runat="Server" id="label1" />
</div>

在javascript中发出以下内容:

$(document).ready(function(){
   $('div.roundedcorner').corner();
 });

这消除了所有额外的div,你仍然可以拥有在服务器上随意使用的用​​户控件。

答案 2 :(得分:0)

(我知道我会因此而遇到麻烦)

如果只是静态内容,您可以将其放在单独的文件中INCLUDE

<!--#INCLUDE VIRTUAL="/_includes/i_yourfile.htm" -->

(文件名,扩展名和位置是任意的)