본문 바로가기
ASP.NET

ASP.NET Gridview 컨트롤의 DataKeyNames의 활용

by Hwoarang757 2013. 2. 6.

Object DataSource나 DataSource를 이용하여 GridView 바인딩시

DataKeyNames 의 프로퍼티를 이용하여 Key 값을 불러올수 있다.

예를들면

 

<asp:GridView ID="grdSelectSche" runat="server" CellPadding="4"

ForeColor="#333333" GridLines="Both" AutoGenerateColumns="false"

onrowcommand="grdSelectSche_RowCommand" onrowcreated="grdSelectSche_RowCreated"

onrowdatabound="grdSelectSche_RowDataBound"

DataKeyNames="CODE" onselectedindexchanged="grdSelectSche_SelectedIndexChanged">

 

<Columns>

<asp:BoundField HeaderText="캠페인코드" DataField="CODE" >

<ItemStyle HorizontalAlign="Center" />

</asp:BoundField>

                                                                                                                          

<asp:BoundField HeaderText="캠페인명" DataField="NAME" >

<ItemStyle HorizontalAlign="Center" />

</asp:BoundField>

                                                                                                                          

<asp:BoundField HeaderText="전체수량" DataField="ALL_COUNT" >

 <ItemStyle HorizontalAlign="Center" />

 </asp:BoundField>

                                                                                                                          

</Columns>

                                                                                                </asp:GridView>

 

 

DataKeyNames의 값을 CODE 컬럼으로 잡았을시

 

Behind 비하인드 코드에서 GridView에서 선택한(Select) 한 Row의 접근시 선택한 로우로 접근 하지 않고도 곧바로 선택한 코드 값을 받아올수 있다.

 

-----  DataKeyNames 미 설정시

 

        GridViewRow gr = grdScheSuc.SelectedRow;

        string key = gr.Cells[0].Text;

 

직접 선택한 GridViewRow 인스턴스를 생성해 로우에 접근 한다.

 

 

------ DataKeyNames 설정시

 

   

string key = grdScheSuc.SelectedValue;

 

곧바로 선택한(Select)  Row에 접근이 가능하다.!!