데이터 원본의 항목 순서가 변경되지 않았는지 확인할 수있는 경우 CommandEventArgs의 CommandArgument 속성을 사용할 수 있습니다.
그러나보다 강력한 방법은 GridView의 DataKeys/SelectedDataKey 속성을 사용하는 것입니다. 유일한주의 사항은 명령에 "Select"유형이 있어야한다는 것입니다 (기본적으로 RowCommand는 DataKey에 액세스 할 수 없습니다).
목록을 구성하는 엔티티에 고유성이 있다고 가정하면 GridView의 DataKeys 속성에 하나 이상의 키 속성 이름을 설정할 수 있습니다. GridView에서 선택한 항목이 설정되면 키 값을 검색하고 바운드 목록에서 항목을 찾을 수 있습니다. 이 메서드는 GridView에서 서수 위치가 데이터 소스에서 요소의 서수 위치와 일치하지 않는 문제를 해결합니다.
예 :
<asp:GridView ID="GridView1" runat="server" AutoGenerateSelectButton="True"
DataKeyNames="Name" onrowcommand="GridView1_RowCommand1"
onselectedindexchanged="GridView1_SelectedIndexChanged">
</asp:GridView>
다음과 같은 페이지에 대한 코드 숨김 (또는 인라인) 볼 수있는 작품 : 다른 선택의 Rows 컬렉션에서 동굴 탐험 갈 것
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
// Value is the Name property of the selected row's bound object.
string foo = GridView1.SelectedDataKey.Value as string;
}
GridView는 컨트롤 값을 가져 와서 한 번에 하나의 열을 가져 오지만 필요하지 않으면 그렇게하지 않는 것이 좋습니다.
희망이 도움이됩니다.