I am building a simple C# web app which will act like an online database for resources.
In my table, I have a category and author column.
When I click a category value in the table, the table will refresh showing only the categories that was selected.
To do this I used the following code:
GridViewRow clickedRow = ((LinkButton)sender).NamingContainer as GridViewRow;
Label category = (Label)clickedRow.FindControl("lbl_category");
String selectedCategory = category.Text.ToString();
string query =
("SELECT * FROM main WHERE category='" + selectedCategory + "' ORDER BY ID ASC");
This works fine for the first time I click a category/author. But after the table has refreshed, and select another category or author then the table shows the wrong record.
How can I solve this?
You can view the page here: Try clicking at category 'Health'
and then 'Puvent, Kevin'
. The outcome is different to the one that was expected. I think
The question will probably make more sense once you see the page :)
EDIT - This is the gridview binding code:
<asp:TemplateField HeaderText="Category" ItemStyle-Width="15%">
<ItemTemplate>
<asp:Label ID="lbl_category" Text='<%# Bind("category")%>' runat="server" style="display:none;"></asp:Label>
<asp:LinkButton ID="lbl_linkCategory" Text='<%# Bind("category")%>' runat="server" OnClick="linkCategory" CommandArgument='<%# Bind("category")%>' />
</ItemTemplate>
</asp:TemplateField>
Using
if (!IsPostBack)
inPage_Load
seemed to have solved the problem :)