いくつかの telerik:GridTemplateColumns を持つ RadGrid があります。データソースを取得し、グリッドをバインドします。最初のページ グリッドの動作は一貫しています。ただし、ページ変更後、グリッド内の他の列は新しい値を取得しますが、itemtemplate 列は最初のページの値を保持します。
グリッド設計コード:
<telerik:RadGrid ID="rgvTest" runat="server" AllowFilteringByColumn="false"
AllowPaging="True" AllowSorting="True" MasterTableView-ShowHeadersWhenNoRecords="false"
AllowCustomPaging="false" AutoGenerateDeleteColumn="false" AllowMultiRowSelection="true"
AutoGenerateEditColumn="false" GridLines="None" ShowGroupPanel="True" OnItemDataBound="rgvTest_ItemDataBound"
OnPageIndexChanged="rgvTest_PageIndexChanged" OnSortCommand="rgvTest_SortCommand"
ClientSettings-ClientEvents-OnRowDblClick="GridRowDoubleclick" >
<Columns>
<telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" ItemStyle-Width="20px" HeaderStyle-Width="20px"/>
<telerik:GridTemplateColumn HeaderImageUrl="../Images/priority_icon.png" UniqueName="Priority1"
HeaderTooltip="Priority">
<ItemStyle Width="20px" Wrap="false" />
<HeaderStyle Width="20px" Wrap="false" />
<ItemTemplate>
<asp:Image ID="PriorityImage" runat="server" />
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
ページサイズが10に設定されていることを考慮してください。デバッグ後、ロード時に最初の10レコードに対してOnItemdataBoundイベントが呼び出されることがわかりました。そして、ページ変更後、20回呼び出されますが、最初のページと2ページ目の20レコードに対して挿入され、最初の10レコードに対して2回呼び出されます...奇妙ですが本当です。誰かがこれについて何か考えを持っているなら、私を助けてください。