複数のテーブルを結合して構築されたグリッドビューがあります。各テーブルには、Pkey と呼ばれる主キーがあります。私の問題は、データを表示するときに同じ Pkey 番号に遭遇すると、グリッドビューがエラーになることです。
Here is the query
SELECT Pkey, Status, EffectiveDate, 'Budget Element' as RequestType, DescribeRequest
FROM tblBudgetElement
union
SELECT Pkey, Status, EffectiveDate, 'Expense Element' as RequestType, DescribeRequest
FROM tblExpenseElement
union
SELECT Pkey, Status, EffectiveDate, 'Expense Hl' as RequestType, DescribeRequest
FROM tblExpenseHLevel
単純なバインド フィールドを使用してみました。コードビハインドでハイパーリンクフィールドを作成してみました。
ここにグリッドビューがあります
<asp:BoundField DataField="Pkey" HeaderText="Pkey">
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="RequestType" HeaderText="Request Type">
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Status" HeaderText="Status">
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="EffectiveDate" HeaderText="Effective Date" DataFormatString = "{0:d}" >
<HeaderStyle HorizontalAlign="center" />
<ItemStyle HorizontalAlign="center" />
</asp:BoundField>
<asp:BoundField DataField="DescribeRequest" HeaderText="Describe Request">
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:TemplateField>
<HeaderStyle VerticalAlign="Top" BorderWidth="0"/>
<ItemStyle BorderWidth="0"/>
<ItemTemplate>
<asp:Image runat="server" BorderStyle="None" ID="Image1" ImageUrl="~/Images/MagnifyingClass.gif" />
<cc1:PopupControlExtender ID="PopupControlExtender1" runat="server"
PopupControlID="Panel1"
TargetControlID="Image1"
DynamicContextKey='<%# Eval("Pkey") %>'
DynamicControlID="Panel1"
DynamicServiceMethod="GetRequest" Position="right">
</cc1:PopupControlExtender>
<asp:Panel ID="Panel1" runat="server"></asp:Panel>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="Silver" Font-Bold="True" ForeColor="Black" />
<AlternatingRowStyle BackColor="#CCCCCC" />
</asp:GridView>