Отображение данных из XMLDataSource в TextBox - PullRequest
0 голосов
/ 09 сентября 2008

Может кто-нибудь дать мне несколько советов о том, как отображать результаты запроса XPath в текстовом поле с использованием кода (C #)? Мой источник данных кажется для (повторного) правильного связывания после применения запроса XPath, но я не могу найти способ получения полученных данных.

Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

1 голос
/ 09 сентября 2008

XMLDataSource предназначен для использования с элементами управления с привязкой к данным. TextBox в ASP.NET не является элементом управления с привязкой к данным. Таким образом, чтобы выполнить то, что вы хотите, вам нужно либо найти элемент управления textbox с привязкой данных, либо отобразить результат каким-либо другим способом.

Например, вы можете использовать Repeater control и создать для него собственный шаблон рендеринга.

<asp:Repeater id="Repeater1" runat="server" datasource="XMLds">
  <ItemTemplate>
    <input type="text" value="<%# XPath("<path to display field>")%>" />
  </ItemTemplate>
</asp:Repeater>
0 голосов
/ 09 сентября 2008

В зависимости от наличия в DropDownList при возникновении события SelectedIndexChanged XPath для объекта XMLDataSource обновляется:

protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
    XMLds.XPath = "/controls/control[@id='AuthorityType']/item[@text='" + ddl.SelectedValue + "']/linkedValue";
    XMLds.DataBind();
}

Строка XPath в порядке, я могу вывести и проверить, что она работает правильно и разрешается на правильные узлы. У меня проблемы с получением данных, которые предположительно хранятся в XmlDataSource; в частности, получение данных и вывод их в TextBox. Я хотел бы иметь возможность сделать это как часть функции выше, то есть

protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
    XMLds.XPath = "/controls/control[@id='AuthorityType']/item[@text='" + ddl.SelectedValue + "']/linkedValue";
    XMLds.DataBind();
    myTextBox.Text = <FieldFromXMLDataSource>;
}

Спасибо за ваше время.

0 голосов
/ 09 сентября 2008

Хотелось бы получить дополнительную информацию, чтобы иметь возможность дать вам достойный ответ. У вас есть какие-нибудь фрагменты кода, которые вы можете опубликовать здесь?

Общая идея состоит в том, чтобы использовать свойство XmlDataSource.XPath в качестве фильтра для свойства XmlDataSource.Data. Вы пытались отобразить содержимое базы данных в текстовом поле?

...