Как добавить теги asp с помощью xmldocument? - PullRequest
0 голосов
/ 16 августа 2011
<asp:TableCell>
      <asp:Localize ID="lblPlntnextOneCtrlRes" meta:resourcekey="lblPlntnextOneCtrlRes" runat="server" />
      <asp:Button ID="cmdPlntAcceptnextOneCtrlRes" meta:resourcekey="cmdPlntAcceptnextOneCtrlRes" OnClick="cmdQualAccept_Click" runat="server" Text="Accept" Visible="True" />
    </asp:TableCell>
  </asp:TableRow>
</asp:Table>

Я хотел бы получить такой вывод, используя xmldocument, но я продолжаю получать ошибку пространства имен для asp: и meta:

в настоящее время, когда я создаю разметку, я получаю это(но хотелось бы, чтобы это выглядело как выше):

<TableCell>
      <Localize ID="lblPlntnextOneCtrlRes" resourcekey="lblPlntnextOneCtrlRes" runat="server" />
      <Button ID="cmdPlntAcceptnextOneCtrlRes" resourcekey="cmdPlntAcceptnextOneCtrlRes" OnClick="cmdQualAccept_Click" runat="server" Text="Accept" Visible="True" />
    </TableCell>
  </TableRow>
</Table>

Вот код, который я использую для создания разметки:

Dim markupRoot As XmlElement = markup.DocumentElement

Dim rowElement As XmlElement = markup.CreateElement("TableRow")
Dim cellElement As XmlElement = markup.CreateElement("TableCell")
Dim contentElement As XmlElement = markup.CreateElement("Localize")
contentElement.SetAttribute("ID", "tag" & ctrlName & "DescRes")
contentElement.SetAttribute("resourcekey", "tag" & ctrlName & "DescRes")
contentElement.SetAttribute("runat", "server")

cellElement.AppendChild(contentElement)
rowElement.AppendChild(cellElement)

cellElement = markup.CreateElement("TableCell")
contentElement = markup.CreateElement("Localize")
contentElement.SetAttribute("ID", "tag" & ctrlName & "NoteRes")
contentElement.SetAttribute("resourcekey", "tag" & ctrlName & "NoteRes")
contentElement.SetAttribute("runat", "server")

cellElement.AppendChild(contentElement)
rowElement.AppendChild(cellElement)

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Попробуйте:

cellElement = markup.CreateElement("asp:TableCell","asp")
0 голосов
/ 18 августа 2011

Я нашел способ установки пространств имен по умолчанию:

Результирующий xml (примечание: пространства имен в корневом узле были добавлены вручную) -

<?xml version="1.0" encoding="utf-8"?>
<Root xmlns:asp="http://admin.test.com/asp" xmlns:meta="http://admin.test.com/meta" xmlns:cc1="http://admin.test.com/cc1">
<cc1:TabContainer ID="wfwContainer" runat="server" AutoPostBack="True" ActiveTabIndex="0">
    <cc1:TabPanel ID="wfwTab" runat="server" HeaderText="">
      <HeaderTemplate>
        <asp:Localize ID="tagwfwRes" meta:resourcekey="tagwfwRes" runat="server" />
      </HeaderTemplate>
      <ContentTemplate />
    </cc1:TabPanel>
  </cc1:TabContainer>
</Root>

Кодкоторый производит XML -

Protected Sub createMarkupForTabs()

    Dim markup As XmlDocument = New XmlDocument()
    Dim truePath As String = Server.MapPath("Test.xml")

    markup.Load(truePath)

    Dim markupRoot As XmlElement = markup.DocumentElement

    Dim tabContainerElement As XmlElement = markup.CreateElement("cc1", "TabContainer", "http://admin.test.com/cc1")
    Dim tabElement As XmlElement = markup.CreateElement("cc1", "TabPanel", "http://admin.test.com/cc1")

    Dim headTempElement As XmlElement = markup.CreateElement("HeaderTemplate")
    Dim headerContentElement As XmlElement = markup.CreateElement("asp", "Localize", "http://admin.test.com/asp")
    Dim contentTempElement As XmlElement = markup.CreateElement("ContentTemplate")

    headerContentElement.SetAttribute("ID", "tag" & mainTabName.Text & "" & "Res")
    headerContentElement.SetAttribute("resourcekey", "http://admin.test.com/meta", "tag" & mainTabName.Text & "" & "Res")
    headerContentElement.SetAttribute("runat", "server")

    headTempElement.AppendChild(headerContentElement)

    tabElement.SetAttribute("ID", mainTabName.Text & "" & "Tab")
    tabElement.SetAttribute("runat", "server")
    tabElement.SetAttribute("HeaderText", "")

    tabElement.AppendChild(headTempElement)
    tabElement.AppendChild(contentTempElement)

    tabContainerElement.SetAttribute("ID", mainTabName.Text & "Container")
    tabContainerElement.SetAttribute("runat", "server")
    tabContainerElement.SetAttribute("AutoPostBack", "True")
    tabContainerElement.SetAttribute("ActiveTabIndex", "0")

    tabContainerElement.AppendChild(tabElement)

    markupRoot.AppendChild(tabContainerElement)

    markup.Save(truePath)
End Sub
...