首页 > 解决方案 > 如何使用 C# 在 XML 文档中添加特殊符号?

问题描述

我正在尝试根据表名动态构建网格视图。所以,我得到了列、长度、数据类型以及主键和外键。然后我根据提供的列确定使用开发的 UI 类型的 TemplateField。

我使用两个 XML 文档。其中之一具有正式的 TemplateField,具有多种类型的控件,例如带有文本框的 TemplateField,带有下拉列表,..等。另一个 XML 文档是构建网格视图本身。

我成功地将我需要的内容从一个 XML 转移到另一个。但是,有些和平不能传输-->尤其是数据绑定的部分,例如像这样 (checked='<%# Bind("IsRegistered") %>')

我只需要知道如何在 XML 文档中包含类似'<%# Bind("IsRegistered") %>' 的内容

我的 C# 代码(没问题,但要知道如何在 XML 文档中注入数据绑定标签)

    XmlDocument Formal_TemplateField = new XmlDocument();
    XmlDocument BuildMyGridView = new XmlDocument(); 
    bool first_Use = false;
    private void Build_XML(string TemplateField, string Field_Name)
    {
        Formal_TemplateField.Load(Server.MapPath("~/Formal_TemplateField.xml"));
        BuildMyGridView.Load(Server.MapPath("~/BuildMyGridView.xml"));
        if (first_Use == false) // clean all xml old data
        {
            XmlNode root = BuildMyGridView.DocumentElement.GetElementsByTagName("Columns")[0];
            root.RemoveAll();
            first_Use = true;
        }

        XmlNode NEW_NOOD = BuildMyGridView.ImportNode(Formal_TemplateField.DocumentElement[TemplateField].FirstChild, true);
        if (Field_Name != null)
        {
            NEW_NOOD.Attributes["HeaderText"].Value = "Header_" + Field_Name;
            NEW_NOOD.Attributes["SortExpression"].Value = Field_Name;
            NEW_NOOD["EditItemTemplate"].FirstChild.Attributes["Text"].Value = "&lt;%# Bind(&apos;" + Field_Name + "&apos;)%&gt;";   // '<%# Bind("DateOfBirth")%>' 
            NEW_NOOD["HeaderTemplate"].FirstChild.Attributes["Text"].Value = Field_Name;
            NEW_NOOD["ItemTemplate"].FirstChild.Attributes["Text"].Value = "&lt;%# Bind(&apos;" + Field_Name + "&apos;)%&gt;";
        }
        BuildMyGridView.DocumentElement.GetElementsByTagName("Columns")[0].AppendChild(NEW_NOOD);

        BuildMyGridView.Save(Server.MapPath("~/BuildMyGridView.xml"));
    }

这是 XmlDocument Formal_TemplateField 的缩小视图

 <Formal_TemplateField>
      <TextBox_Dates>
         <asp:TemplateField>
              bla bla bla
         </asp:TemplateField>
      </TextBox_Dates>

      <CheckBox>
        <asp:TemplateField>
              bla bla bla
        </asp:TemplateField>
      </CheckBox>

      <DropDownList>
        <asp:TemplateField>
          <EditItemTemplate>
              bla bla bla
          </EditItemTemplate>
          <HeaderTemplate>
               bla bla bla
          </HeaderTemplate>
          <ItemTemplate>
            <asp:Label ID="Label4" runat="server" Text=''></asp:Label>  <-- look at this for example
          </ItemTemplate>
        </asp:TemplateField>
      </DropDownList>

简单地说,我想将例如 DropDownList 部分转换为具有数据绑定的下一个示例

      <DropDownList>
        <asp:TemplateField HeaderText="Gender_ID" SortExpression="Gender_ID">
          <EditItemTemplate>
             bla bla bla
          </EditItemTemplate>
          <HeaderTemplate>
             bla bla bla
          </HeaderTemplate>
          <ItemTemplate>
            <asp:Label ID="Label4" runat="server" Text='<%# Bind("Gender_ID") %>'></asp:Label>
          </ItemTemplate>
        </asp:TemplateField>
      </DropDownList>

标签: c#asp.netxml

解决方案


推荐阅读