2012-03-28 4 views
3

그리드보기 숨겨진 필드의 차수는 7어떻게 격자보기에서 숨겨진 필드의 값을 얻을 수 있습니까?

내가 버튼 라인

가 에러 제공

string sValue = ((HiddenField)GridView1.SelectedRow.Cells[7].FindControl("HiddenField1")).Value; 
누르면 "개체의 인스턴스로 설정되지 Object 참조."

  <asp:TemplateField> 
      <ItemTemplate> 

       <asp:HiddenField ID="HiddenField1" runat="server" 
        Value='<%#Eval("RSS_ID")%>'/> 

      </ItemTemplate> 
      </asp:TemplateField> 

C#을 측면

else if (e.CommandName == "View") 
{ 
    string sValue = ((HiddenField)GridView1.SelectedRow.Cells[7].FindControl("HiddenField1")).Value;     
} 
+0

당신이 당신의 전체 이벤트 코드 ...뿐만 아니라 그리드 마크 업을 게시 할 수 있습니까? – NiK

답변

6

당신이 이것을 시도 했습니까?

HiddenField field = (HiddenField)GridView.Rows[GridView.SelectedIndex].FindControl("HiddenField1"); 

그렇다면이 중 어떨까요? 여기

HiddenField field = GridView1.Rows[e.RowIndex].FindControl("HiddenField1") as HiddenField; 

은 ... 응원이 도움이

if(e.Row.RowType == DataControlRowType.DataRow) 
{  
    HiddenField field = e.Row.FindControl("HiddenField1") as HiddenField; 
} 

희망 당신이 시도 할 수있는 또 다른 하나입니다

+0

@leventkalayz 위의 방법 중 하나를 시도 했습니까? – NiK

+0

그러나이 코드로 할 수는 없지만 @Dave D 코드가 작동합니다. 나는 그것을 내 프로젝트에 많이 고맙다. – leventkalayz

+0

너무 많은 시간이 낭비되어 그런 간단한 해결책을 찾지 못했다. 감사! – Josh

2

드롭의 셀 부분

선택한 행이있는 경우 :

string sValue = ((HiddenField)GridView1.SelectedRow.FindControl("HiddenField1")).Value; 

명령 인수에서 e.rowIndex이있는 경우 :

string sValue = ((HiddenField)GridView1.Rows[e.rowIndex].FindControl("HiddenField1")).Value; 
1

실제로 행을 선택할 때 코드가 표시되지 않더라도 SelectedRow에 액세스하려고합니다. 내 생각 엔 선택한 명령 행을 실제로 설정하지 않는 일부 사용자 정의 명령 버튼 만 사용하고있는 것입니다. 문제를 해결하면 제대로 작동합니다.

당신은 /는 당신이 ... 당신이 원하는 행과 값을 받고, 숨겨진 필드에 액세스 할 수 후 적용 FindControl 메서드를 찾기 위해 자신에게 몇 가지 방법을 쓸 필요하지 않으 수없는 경우

또는 더 완전한 소스 코드를 게시하려고 ....

관련 문제