DataKeyNames проблема с моим GridView - PullRequest
       31

DataKeyNames проблема с моим GridView

1 голос
/ 17 сентября 2011

У меня возникла эта проблема с моим значением DataKeyNames.Первичный ключ каждой строки - GameID, но всякий раз, когда я устанавливаю DataKeyNames равным GameID, он не работает.

Я включаю выбор в моем виде сетки, потому что мне нужна дополнительная информациябыть помещенным в форму просмотра.Поэтому, когда пользователь нажимает Select, в форме появляется дополнительная информация о строке.

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
    AutoGenerateColumns="False" CellPadding="4" DataSourceID="SqlDataSource1" DataKeyNames="Team, Opponent"
    ForeColor="#333333" GridLines="None" Height="360px" Width="641px" 
    onselectedindexchanged="GridView1_SelectedIndexChanged" >
<AlternatingRowStyle BackColor="White" />

<Columns>
    <asp:BoundField DataField="Team" HeaderText="Team" SortExpression="Team" />
    <asp:BoundField DataField="Opponent" HeaderText="Opponent" 
        SortExpression="Opponent" />
    <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
</Columns>

<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<SortedAscendingCellStyle BackColor="#FDF5AC" />
<SortedAscendingHeaderStyle BackColor="#4D0000" />
<SortedDescendingCellStyle BackColor="#FCF6C0" />
<SortedDescendingHeaderStyle BackColor="#820000" />
</asp:GridView>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT [Team], [Opponent], [Date] FROM [game] WHERE ([Team] = @Team)">
    <SelectParameters>
        <asp:ControlParameter ControlID="GridView1" DefaultValue="Arsenal" Name="Team" 
            PropertyName="SelectedValue" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

1 Ответ

0 голосов
/ 18 сентября 2011

Вы имеете в виду изменение
DataKeyNames="Team, Opponent" до DataKeyNames="GameID"? Если это так, вы также должны добавить GameID в ваш запрос выбора из SqlDatasource. Ваш вставленный код появляется только для Team и `` Противник.

Изменение
SelectCommand="SELECT [Team], [Opponent], [Date] FROM [game] WHERE ([Team] = @Team)">
до
SelectCommand="SELECT [GameID], [Team], [Opponent], [Date] FROM [game] WHERE ([Team] = @Team)">

Предполагается, что именем поля в таблице являются GameID.

...