Я пытаюсь построить вид сетки динамически на основе имени таблицы. Итак, я получаю столбцы, длину, тип данных, а также первичные и внешние ключи. Затем я определяю использование разработанного пользовательского интерфейса типа TemplateField на основе предоставленных столбцов.
Я использую два XML документа. один из них имеет формальный TemplateField со многими типами элементов управления, такими как TemplateField с текстовым полем, с раскрывающимся списком, ..et c. другой документ XML предназначен для построения самого вида сетки.
Я успешно перевел то, что мне нужно, из одного XML в другое. однако, некоторый мир не может быть в состоянии передать -> особенно части привязки данных, например, вот так (флажок = '<% # Bind ("IsRegistered")%>')
Все, что мне нужно, это знать, как включить что-то вроде этого '<% # Bind ("IsRegistered")%>' внутри XML документа
My C# код (и никаких проблем с ним, но знать, как внедрить теги привязки данных в XML do c)
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 = "<%# Bind('" + Field_Name + "')%>"; // '<%# Bind("DateOfBirth")%>'
NEW_NOOD["HeaderTemplate"].FirstChild.Attributes["Text"].Value = Field_Name;
NEW_NOOD["ItemTemplate"].FirstChild.Attributes["Text"].Value = "<%# Bind('" + Field_Name + "')%>";
}
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>