0

使用此 XML 文件 -

<Instructions>
  <Admin>
  <Instruction>
    Steps must be completed in order.&lt;/br&gt;
    1. Set dates&lt;/br&gt;
    2. Import.&lt;/br&gt;
    3. Generate.&lt;/br&gt;
  </Instruction>
  <Style>
    <padding-left value="50px"/>
    <padding-right value="0px"/>
  </Style>
  </Admin>
</Instructions>

而这段代码 -

    public void LoadInstructions(String instructionKey) {
        XmlNode instLabel = mPropsDoc.SelectSingleNode("ApplicationProperties/Instructions/Admin/Instruction");
        XmlNode instStyle = mPropsDoc.SelectSingleNode("ApplicationProperties/Instructions/Admin/Style");
        Label ctlInst = new Label();
        ctlInst.Text = instLabel.InnerText;

        foreach (XmlElement styles in instStyle.ChildNodes) {
            ctlInst.Style.Add(styles.Name, styles.Attributes["value"].Value);
        }

        PageContent.Controls.AddAt(0, ctlInst);
    }

其中 PageContent 是我页面上的 ContentPlaceHolder。

该样式仅应用于第一个元素,并且控件呈现为跨度控件。

为什么它不被呈现为标签,为什么样式只应用于第一行?

4

2 回答 2

1

如果要保留格式,则需要将其放入 CDATA 元素中

<Instruction>
<![CDATA[Steps must be completed in order</br>
               1. Set dates</br>
               2. Import</br>     
               3. Generate</br>]]>
</Instruction>

话虽如此,我会标记这个很多,然后在需要时构建演示文稿,它将继续是一个 PIA。

于 2012-06-13T16:23:25.280 回答
0

据我记得,System.Web.UI.Label 元素(我假设您正在使用)总是呈现为 <span>。要创建 <label> - 您需要 System.Web.UI.HtmlGenericControl("label")。

于 2012-06-13T16:32:36.350 回答