0

私はすでにこれを DevExpress サポートに投稿しましたが、正直に言って、彼らが問題を解決する能力にまったく自信がないので、ここに投稿します。

コントロールで定義されたプロパティの値に応じて最初の列を非表示にする必要がある ASPxGridView を含むユーザー コントロールがあります。このプロパティは、渡された値を受け取り、それをグリッドの Visible プロパティに割り当てます。

あるページでは、このプロパティを True に設定しています。もう 1 つは 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 プロパティを調整するなど、いくつかの異なるアプローチを試みましたが、これまでのところ何も機能していません。

4

1 に答える 1