ASP.NET 은 gridview 를 사용 하여 현재 줄 의 색인 값 을 가 져 옵 니 다.
실례:
① 목적:GridView 에서 RowCommand 의 현재 색인 줄 을 가 져 옵 니 다.
② 프론트 페이지:GridView 에 모드 열 을 추가 하고 LinkButton 컨트롤 을 추가 합 니 다.
코드:
<asp:TemplateField HeaderText=" ">
<ItemTemplate>
<asp:LinkButton ID="lbtnQianRu" runat="server" CommandName="QianRu"
CommandArgument='<%# Eval("Id") %>'> </asp:LinkButton>
<asp:LinkButton ID="lbtnQianChu " runat="server" CommandName="QianChu"> </asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
알림:배경 코드 에서 e.CommandArgument 로 값 을 추출 하면 프론트 코드 는 단추 에 CommandArgument 의 값 을 설정 해 야 합 니 다.값 은 연 결 된 데이터베이스 필드 입 니 다.예://클 라 이언 트 에서 LinkButton 의 CommandArgument 와 메 인 키 Id 를 연결 하 였 기 때문에 여기 서 e.CommandArgument 로 메 인 키 ID 의 값 을 직접 얻 을 수 있 습 니 다.
int id = Convert.ToInt32(e.CommandArgument.ToString());
③ GridView 에 LinkButton 을 이벤트 처리 버튼 으로 설정 하여 다음 과 같은 방법 으로 색인 을 가 져 옵 니 다.
protected void gv_Company_RowCommand(object sender, GridViewCommandEventArgs e){
if (e.CommandName == "QianRu")
{
[방법 1]
GridViewRow drv = ((GridViewRow)(((LinkButton)(e.CommandSource)).Parent.Parent)); //
inf id=Convert.ToInt32(GridView1.DataKeys[drv.RowIndex].Value); // GridView
메모:이 방법 을 사용 하려 면 GridView 의 DataKeyNames 속성 을 설정 해 야 합 니 다.이 경우 홈 키 필드 로 설정 합 니 다.[방법 2]
GridViewRow drv = (GridViewRow)((LinkButton)e.CommandSource).NamingContainer;//
int id = Convert.ToInt32(GridView1.Rows[drv.RowIndex].Cells[0].Text); // GridView , ,drv.RowIndex
}
}
현재 줄 의 색인 값 을 얻 을 수 있 는 방법 도 있다.[방법 3]
링크 button 컨트롤 의 Command 이벤트 에서 sender 의 Parent 를 이용 하여 GridView 의 현재 줄 을 가 져 옵 니 다.
protected void lbtnQianChu_Command(object sender, CommandEventArgs e)
{
LinkButton lb = (LinkButton)sender;
DataControlFieldCell dcf = (DataControlFieldCell)lb.Parent;
GridViewRow gvr = (GridViewRow)dcf.Parent; //
lbtnQianChu.SelectedIndex = gvr.RowIndex;
}
[방법 4]링크 button 컨트롤 의 Click 이벤트 에서 GridView 의 현재 줄 을 가 져 옵 니 다.
protected void LinkButton1_Click(object sender, EventArgs e)
{
//
int row = ((GridViewRow)((LinkButton)sender).NamingContainer).RowIndex;
}
[방법 5]템 플 릿 열 에 DropDownlList 컨트롤 을 추가 하고 AutoPostback 속성 을 열 면 DropDownlList 의 Selected IndexChanged 이벤트 에서 GridView 의 현재 줄 을 가 져 옵 니 다.
다음은 Selected IndexChanged 이벤트 의 코드 요약 입 니 다.
DropDownList ddl = (DropDownList)sender;
GridViewRow gvr = (GridViewRow)ddl.NamingContainer;
int id = int.Parse(GridView1.DataKeys[gvr.RowIndex][0].ToString());
int num = int.Parse(ddl.Text);
첫 번 째 문장 은 이 벤트 를 촉발 하 는 DropDownlList 컨트롤 을 가 져 오 는 데 사 용 됩 니 다.두 번 째 문장 은 이 컨트롤 의 Naming Container 속성 을 이용 하여 용기,즉 GridViewRow 대상 을 가 져 옵 니 다.
알림:DropDowList 는 button 과 다 르 기 때문에 CommandName 을 지정 할 수 없 기 때문에 NamingContainer 속성 으로 문 제 를 해결 합 니 다.
먼저 마이크로소프트 가 이 Naming Container 속성 에 대한 설명 을 살 펴 보 자.
서버 컨트롤 의 이름 용기 에 대한 인용 을 가 져 옵 니 다.이 인용 은 같은 Control.ID 속성 값 을 가 진 서버 컨트롤 을 구분 하기 위해 유일한 이름 공간 을 만 듭 니 다.
ASP.NET 웹 프로그램의 모든 페이지 에는 컨트롤 의 계층 구조 가 포함 되 어 있 습 니 다.이 계층 구 조 는 컨트롤 이 사용자 가 볼 수 있 는 UI 를 생 성 할 지 여부 와 무관 합 니 다.주어진 컨트롤 의 이름 용 기 는 계층 구조 에서 이 컨트롤 위의 부모 컨트롤 입 니 다.이 부모 컨트롤 은 INaming Container 인 터 페 이 스 를 실현 합 니 다.이 인 터 페 이 스 를 구현 하 는 서버 컨트롤 은 하위 서버 컨트롤 의 ID 속성 값 에 유일한 네 임 스페이스 를 만 듭 니 다.
목록 웹 서버 컨트롤(예 를 들 어 Repeater 와 DataList 서버 컨트롤)을 데이터 로 연결 할 때 서버 컨트롤 에 유일한 네 임 스페이스 를 만 드 는 것 이 특히 중요 합 니 다.데이터 원본 의 여러 항목 이 서버 컨트롤 을 만 드 는 여러 인 스 턴 스 이 고 이 서버 컨트롤 이 중복 컨트롤 의 하위 단계 일 때 이름 용 기 는 이 하위 컨트롤 의 모든 인 스 턴 스 가 충돌 하지 않 는 UniqueID 속성 값 을 확보 합 니 다.페이지 의 기본 이름 용 기 는 이 페이지 를 요청 할 때 생 성 된 페이지 클래스 의 인 스 턴 스 입 니 다.
이 속성 을 사용 하여 특정 서버 컨트롤 이 있 는 이름 용 기 를 확인 할 수 있 습 니 다.
[방법 6]
템 플 릿 열 에 CheckBox 컨트롤 이 있 는 경우 CheckBox 1 을 통 해CheckedChanged 이벤트 에서 GridView 의 현재 줄 을 가 져 옵 니 다.
CheckBox chk = (CheckBox)sender;
DataControlFieldCell dcf = (DataControlFieldCell)chk.Parent;
GridViewRow gvr = (GridViewRow)dcf.Parent;
[방법 7]
<asp:GridView ID="gvTest" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
DisplayIndex : <%# Container.DisplayIndex %> || DataItemIndex : <%# Container.DataItemIndex %><br />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
[방법 8]컨트롤 의 ID 와 Name 이름 은 위의 방법 과 같 습 니 다.RowCommand()방법 을 통 해 선택 한 열 이 어떤 열 인지 판단 해 야 합 니 다.이 방법 을 사용 하려 면 e.CommandArgument 라 는 속성(GridView 에서 줄 색인 이 CommandArgument 에 있 는 지 먼저 알 아야 합 니 다)을 사용 해 야 합 니 다.현재 작업 은 이러한 속성 을 얻 는 것 입 니 다.자 료 를 찾 아 보면 GridView 컨트롤 의 모든 줄 을 만 들 때 RowCreated 사건 이 발생 한 다 는 것 을 알 수 있 습 니 다.이 방법 을 통 해 linkButton 이 선택 한 줄 번 호 를 CommandArgument 에 기록 할 수 있 습 니 다.
protected void gvInfo_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lk1 = (LinkButton)e.Row.FindControl("lkbtn");//LinkButton ID
lk1.CommandArgument = e.Row.RowIndex.ToString();
}
}
protected void gvInfo_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "ADD")// LinkButton CommandName
{
int index = Convert.ToInt32(e.CommandArgument);
string aa = gvInfo.Rows[index].Cells[1].Text.ToString();// , 0
}
}
이상 에서 말 한 것 이 바로 본문의 전체 내용 이 니 여러분 들 이 좋아 하 시 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java PowerPoint에서 텍스트 가져오기이번에는 Spire.Presentation for Java라는 무료 라이브러리를 사용하여 PowerPoint에서 텍스트를 얻는 방법을 소개합니다. 아래 준비 1.E-iceblue 공식 사이트에서 무료 버전을 다운로드...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.