2012-05-22 2 views
0

두 BoundFields내있는 gridview에있는

다음 보이지 않는 boundfield의 값을 가져
<asp:BoundField DataField="ProductId" HeaderText="ID" HeaderStyle-HorizontalAlign="Left" Visible = "false" /> 
<asp:BoundField DataField="ProductDescription" HeaderText="product Description" HeaderStyle-HorizontalAlign="Left" /> 
볼에 그 세트의 경우는 false

어떻게 내가 처음 바운드 필드의 값을 얻을 수 있습니다 ? ID가

답변

2

당신은 보이지 않는 BoundField의 값에 액세스 할 수 없습니다 얻을 수 있습니다 뒤에 코드에 다음의 GridView

DataKeyNames="ProductId" 

DataKeyNames 속성을 사용하는 것이 좋습니다 . TemplateField을 사용하고 컨트롤에 HiddenField 컨트롤을 추가하고 Value 속성을 바인딩해야합니다.

마크 업,

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:HiddenField ID="HiddenField1" runat="server" 
        Value='<%# Eval("ProductId") %>' /> 
       .... 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

코드 뒤에 각 행의 첫번째 셀에 HiddenField 컨트롤에서 값을 얻을 수 있습니다.

foreach (GridViewRow row in GridView1.Rows) 
    { 
    if (row.RowType == DataControlRowType.DataRow) 
     { 
     HiddenField productid = row.Cells[0].FindControl("HiddenField1") as HiddenField; 
     ... 
     } 
    } 
1

당신이

GridView1.DataKeys[row_index]["ProductId"] 
관련 문제