GridView не обновляет LINQ to XML-данные? - PullRequest
0 голосов
/ 02 июня 2011

Если есть Xml-файл с 3 записями

Название страны = "Дания" InternetTLD = "dk"

Название страны = "Голландия" InternetTLD = "nl"

Название страны = "Великобритания" InternetTLD = "Великобритания"

На моей веб-странице, если есть текстовое поле, gridview и xmlDataSource.Когда я ничего не указываю в текстовом поле, тогда все три страны загружаются с помощью запроса LINQ в xmlDataSource и затем отображаются в виде сетки.Но когда я указываю, например, «Дания» в текстовом поле, тогда я продолжаю видеть все 3 записи, тогда как свойство count запроса LINQ говорит 1, а свойство Data в xmlDataSource также показывает только 1 страну (Дания), как и должнобыть.

Проблема в том, что gridView, кажется, не обновляет новые данные ???

Вот мой код:

    protected void Page_Load(object sender, EventArgs e)
    {
        QueryXml();
    }  // Page_Load()


    private void QueryXml()
    {
        XElement _countries = XElement.Load(Server.MapPath(COUNTRIES_XML));
        IEnumerable<XElement> query = null;

        // extract all countries
        if (txtCountry.Text == "" || txtCountry.Text == "*")
        {
            query = from c in _countries.Elements()
                    select c;
        }
        else
        {
            // Extract all elements where Name has been specified
            query = from c in _countries.Elements()
                    where c.Attribute("Name").Value.ToString().StartsWith(txtCountry.Text, StringComparison.CurrentCultureIgnoreCase)
                    select c;
        }

        // Set xml filtered string data source
        xmlDsCountries.Data =
            "<Countries>" +
            string.Join("", query.Select(country => country.ToString())) +
            "</Countries>";
        // set the data source of the gridview
        gdvwCountries.DataSource = xmlDsCountries;
        // Show the data
        gdvwCountries.DataBind();

        lblMsg.Text = query.Count().ToString();
    }  // QueryXml()

Почему не gridViewосвежает?

спасибо

Крис

1 Ответ

1 голос
/ 02 июня 2011

Попробуйте отключить кеширование на XmlDataSource

protected void Page_Load(object sender, EventArgs e)
{
    xmlDsCountries.EnableCaching = false;
    //...........the rest.............
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...