У меня есть DataGrid, который динамически связан с запросом базы данных. Пользователь вводит текст поиска в текстовое поле, нажимает на поиск, а код позади создает соответствующий запрос базы данных с помощью LINQ (ищет таблицу на основе строки и возвращает ограниченный набор столбцов).Gridview пуст, когда SelectedIndexChanged называется
Затем он задает источник данных GridView для запроса и вызывает DataBind().
protected void btnSearch_Click(object sender, EventArgs e)
{
var query = from record in DB.Table
where record.Name.Contains(txtSearch.Text) //Extra string checking etc. removed.
select new
{
record.ID,
record.Name,
record.Date
};
gvResults.DataSource = query;
gvResults.DataBind();
}
Это прекрасно работает.
Когда пользователь выбирает строку в сетке, обработчик события SelectedIndexChanged получает идентификатор из строки в сетке (одно из полей), запрашивает полную запись из БД и затем заполняет набор редакторов/деталей поля с полной информацией о записях.
protected void gvResults_SelectedIndexChanged(object sender, EventArgs e)
{
int id = int.Parse(gvResults.SelectedRow.Cells[1].Text);
DisplayDetails(id);
}
Это прекрасно работает на моей локальной машине, где я разрабатываю код. Однако на производственном сервере функция вызывается успешно, но число строк и столбцов на gvResults
, griview равно 0 - таблица пуста.
Включено в viewstate gridview, и я не вижу очевидных различий. Я сделал некоторые наивные предположения, или я полагаюсь на то, что, вероятно, будет настроено по-разному в отладке?
Локально я запускаю пустой веб-проект asp.net в VS2008, чтобы ускорить разработку. На рабочем сервере работает CMS sitecore, поэтому он настроен по-разному.
Любые мысли или предложения были бы наиболее желанными. Заранее спасибо!
Ах да, это также может быть причиной. Это связано с тем, как Sitecore подключается к жизненному циклу страницы, что, по моему мнению, не полностью понято очень многим людям и, вероятно, также является одной из их торговых секретов. Я написал статью, но я не знаю ничего подобного. –
Hahah! Я на самом деле не смотрел ваше имя пользователя SO! Приветствует много за блог хедз-ап!В этой статье также есть статья об SDN, но она недоступна, если у вас нет учетной записи. – xan