2012-10-16 2 views
1

저는 리소스를위한 온라인 데이터베이스처럼 작동 할 간단한 C# 웹 응용 프로그램을 작성합니다.GridViewRow FindControl 쿼리 C#

내 테이블에는 카테고리와 작성자 열이 있습니다.

테이블에서 범주 값을 클릭하면 표가 새로 고쳐지며 선택한 범주 만 표시됩니다.

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

이 내가 카테고리/저자을 클릭 처음으로 잘 작동 :

는이 작업을 수행하려면 다음 코드를 사용했다. 그러나 테이블이 새로 고쳐지고 다른 카테고리 나 작성자를 선택하면 테이블에 잘못된 레코드가 표시됩니다.

어떻게 해결할 수 있습니까?

here 페이지를 볼 수 있습니다. '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> 
+1

이 문제의 원인을 찾으려면을 해결 한 것 같았다. 코드를 게시 할 수 있습니까? – jams

+0

나는 gridview 바인딩 코드 –

답변

0

는 우리가 당신의 GridView 바인딩 코드를 필요로하는 문제 :

0

이이 컨트롤을 변경 아래에. 제어 번호가 변경됩니다. 이 번호를 참조하면 틀리며 상수와 테이블 "주"의 ID가 필요합니다. 해당 번호를 selectedCategory에 올바르게 할당하는 방법을 찾아야합니다. 카테고리 라벨에 속성을 추가하거나 클릭 한 내용을 확인하면됩니다. Finance => selectedCategory = 2, Health = 3, Family = 4 등 좋아요. 도움이 되길 바랍니다. Page_Loadif (!IsPostBack)를 사용

+0

을 attatched있다. 성명서의 첫 부분은 의미가 있습니다. 하지만 범주 레이블에 특성을 추가하여 의미를 따르는 지 확신 할 수 없습니다. 명확히 해 주시겠습니까? 감사 –