1

リソースのオンライン データベースのように機能する単純な C# Web アプリを構築しています。

私のテーブルには、カテゴリと著者の列があります。

テーブル内のカテゴリ値をクリックすると、テーブルが更新され、選択されたカテゴリのみが表示されます。

これを行うには、次のコードを使用しました。

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");

これは、カテゴリ/作成者を初めてクリックしたときに正常に機能します。しかし、テーブルが更新された後、別のカテゴリまたは著者を選択すると、テーブルに間違ったレコードが表示されます。

どうすればこれを解決できますか?

ここでページを表示できます: カテゴリ'Health'をクリックしてから をクリックしてみてください'Puvent, Kevin'。期待していた結果とは違う。おもう

あなたがページを見ると、質問はおそらくもっと理にかなっています:)

編集 - これは gridview バインディング コードです。

<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>
4

2 に答える 2

0

カテゴリをクリックすると、下のコントロールが変更されます。管理番号が変わります。その番号を参照しますが、それは間違っています。定数であり、テーブルのIDが「メイン」である必要があります。対応する番号をselectedCategoryに適切に割り当てる方法を見つける必要があります。カテゴリラベルに属性を追加するか、クリックされたものを確認することで、これを行うことができます。財務=>selectedCategory= 2、Health = 3、Family=4などのように。お役に立てば幸いです。

于 2012-10-16T17:47:19.067 に答える
0

if (!IsPostBack)inを使用するPage_Loadと、問題が解決したようです:)

于 2012-10-20T20:26:38.517 に答える