У меня есть GridView
, в котором есть Like
и Dislike Button
в каждом Row
.
Что я хочу сделать, так это чтобы пользователь мог click
только один из тех на Row
и Enable
или Disable
, что Button
на row
, когда этот конкретный Button
равен clicked
.
У меня есть Sql Table
tblVote
, у которого есть Field
с Name Vote
. Это сохраняет подсчет для пользователя, если у него есть voted
для этого элемента. Если пользователь clicks
Dislike Button
для первой записи, он запишет 0
в Vote
Column
под itemId
1
. Если пользователь clicks
на Like
, он напишет 1
и так далее для каждой записи. У меня эта часть уже работает. Как я могу прочитать из table
и выдать Button
это состояние в зависимости от value
на Vote Field
на tblVote
.
Table:
ItemId | UserID | Vote
1 | 123 | 0
2 | 123 | 1
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333"
GridLines="None" AutoGenerateColumns="False" DataKeyNames="SwotItemID" AllowPaging="True"
AllowSorting="True" DataSourceID="SqlDataSource1" OnRowCommand="GridViewStrength_RowCommand"
Width="100%" onrowdatabound="GridView1_RowDataBound">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="ItemDesc" HeaderText="Item Description" SortExpression="ItemDesc">
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:TemplateField HeaderText="Like" InsertVisible="False" SortExpression="Vote">
<ItemTemplate>
<asp:Button ID="Btn_thumbs_up" runat="server" Text = "Like"
CommandName="VoteUp" CommandArgument='<%# Bind("SwotItemID") %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Dislike" InsertVisible="False" SortExpression="Vote">
<ItemTemplate>
<asp:Button ID="Btn_thumbs_down" runat="server" Text = "Dislike"
CommandName="VoteDown" CommandArgument='<%# Bind("SwotItemID") %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</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>