2009-07-06 7 views
0

GridView에서 사용할 수있는 asp : HiddenField가 없으므로 이와 비슷한 결과가 나올지 궁금했습니다.GridView에 대한 asp : HiddenField의 동일성

내가 원하는 이유는 OnRowCommand를 트리거하는 ButtonField가 있기 때문입니다. 거기에서 어떤 행을 선택했는지 알 수 있지만 DataTextField를 통해 바인딩 된 데이터를 보려면 ButtonField에서 텍스트 값을 가져올 수 없습니다.

이 솔루션은 BoundField가 있고 이미 선택된 행을 알고 있기 때문에 BoundField 대신 텍스트 값을 검색하는 것입니다. 이것은 효과가 있었지만 숨겨져 있어야합니다.

누군가가 TemplateField 내에 중첩 된 HiddenField를 사용하도록 제안했지만 그 HiddenField에서 텍스트 값을 가져 오는 데 문제가있었습니다. TemplateField 내의 컨트롤에 액세스하여 HiddenField의 텍스트 값을 가져올 수있는 방법이 있습니까?

다른 사람에게 좋은 대안이 있다면 누구에게나 좋습니다.

감사
매트

답변

1

당신은 GRIDVIEW에 DataKeyNames 속성을 사용할 수 있습니다.

gridView.DataKeyNames = { "values", "you", "want "}; 

다음은 다음과 같이 액세스 할 수 있습니다 :

gridView.DataKeys[rowId].Values["value"]; 
0

그것은 레코드 (행)에 대한 고유 대표 다른 ID 항목을 추가 할 수있다? 해당 ID 열은 style : display = none으로 설정하여 숨길 수 있지만 ID는 HTML 양식 안에 있습니다.

그런 다음 해당 ID 열의 값을 검색하여 추가로 처리 할 수 ​​있습니다. 이 도움이

희망,

하디는

2

당신은 기록/행의 아이디와 동일한 commandArgument에 템플릿 필드를 사용할 수 있습니다.

<ItemTemplate> 
    <asp:Button ID="Button1" runat="server" CausesValidation="false" 
     CommandName="SomeCommand" Text="Button" CommandArgument='<%# Eval("SomeID") %'></asp:LinkButton> 
</ItemTemplate> 

그런 다음 행 명령을 처리하는 경우에 당신은 e.CommandArgument

에 의해 그 값을 얻을 수 있습니다