2013-07-08 3 views
0

Я уже разместил это для поддержки DevExpress, но, честно говоря, у меня нет уверенности в возможности решить проблему, я размещаю ее здесь.ASPxGridView в User Control вызывает проблему кеширования?

У меня есть элемент управления пользователя, содержащий ASPxGridView, чей первый столбец мне нужно скрыть в зависимости от значения свойства, определенного в элементе управления. Свойство принимает переданное значение и присваивает его видимому свойству сетки.

На одной странице у меня есть свойство True; другой, False. Когда я посещаю страницу, где столбец должен быть скрыт первым и перейти на другую страницу, столбец остается скрытым. Когда я захожу на страницу, где он должен быть виден первый, а затем перемещаться на другую страницу, он выдает ошибку б/с столбец определен как таковой:

<dx:GridViewDataTextColumn Caption="Employee" FieldName="TSLinkText" VisibleIndex="0"> 
    <DataItemTemplate> 
     <a href='<%#GlobalHelper.GetTimesheetURL(Eval("TimesheetID"), Eval("EmployeeID"), Eval("HasTSLink")) %>' 
      title='View the current timesheet for <%#Eval("TSLinkText")%>'> 
     <%#IIf(Eval("HasTSLink") = -1, Eval("TSLinkText"), "")%></a> 
     <%#IIf(Eval("HasTSLink") = 0, Eval("TSLinkText"), "")%> 
    </DataItemTemplate> 
    <CellStyle Wrap="False" /> 
</dx:GridViewDataTextColumn> 
         ​ 

у меня есть другой источник данных, определенный на каждом страницы и на странице, где скрыт столбец, процедура, которая извлекает данные, не имеет поля «HasTSLink», поэтому возникает ошибка.

Мне кажется, что пользовательский элемент управления кэшируется. Я попробовал несколько разных подходов, включая настройку свойства VaryByControls для частичного кэширования, но до сих пор ничего не работало.

+0

Почему бы вам не связаться напрямую с официальным каналом поддержки DevExpress? – Mikhail

+0

«Я уже разместил это для поддержки DevExpress, но, честно говоря, у меня нет уверенности в их способности решать проблему, я размещаю ее здесь». - Как и ожидалось, они не помогли. – Ryan

ответ

0

Очевидно, проблема заключалась в том, что на обоих страницах был одинаковый идентификатор на UserControl. Кажется, что элемент управления был кэширован и перезагружен, как если бы это был тот же самый контроль, несмотря на то, что он находился на другой странице.

Я не уверен, что это относится ко всему, кроме моей конкретной проблемы, но если вы когда-нибудь сталкиваетесь с чем-то подобным в своих проектах, стоит попробовать.