행 선택으로 포스트 백이 생성 된 후에 다시 gridview 행에 포커스를 놓을 수 있습니까?다시 게시 후 gridview의 선택된 행에 포커스 다시 넣기
탐색을 위해 키보드를 사용하기 위해 gridview 행에 onkeydown 처리기를 추가하려고합니다. 내 문제는 첫 번째 포스트 백 후에 선택한 셀이 포커스를 잃어 버리고 다음 키 스트로크가 셀에 걸리지 않는다는 것입니다.
나는 숨겨진 입력 필드에 셀의 ID를 복사 한 다음 코드
당신의 onKeyDown에 스크립트 코드에
protected void Page_Load(object sender, EventArgs e)
{
var persons = new List<Person> {new Person() {Name = "Fikre", Age = 24},
new Person() {Name = "Mike", Age = 29},
new Person() {Name = "Mark", Age = 35}};
gdvPersons.DataSource = persons;
gdvPersons.DataBind();
}
protected void gdvPersons_RowCreated(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
e.Row.Attributes.Add("onkeydown", ClientScript.GetPostBackEventReference((Control)sender, "Select$" + e.Row.DataItemIndex));
}
protected void gdvPersons_SelectedIndexChanged(object sender, EventArgs e)
{
gdvPersons.SelectedRow.Focus();
}
귀하의 솔루션에가 있지만 im은 gridview의 행 ID에 문제가 있습니다. 질문에 내 원본 코드 포함 – Fikre
게시 한 코드에 편집 필드가 없습니다. 그렇다면 네비게이션을 어떻게 할 계획입니까? 보다 완벽한 샘플을 제공하고 .net3.5 또는 4.0을 사용하고 있습니까? –
gem의 onewydown 이벤트를 gdvPersons_RowCreated 이벤트의 각 행에 추가합니다. 내 코드의 문제점은 포커스가 가능하도록 테이블 행에 탭 인덱스가 필요하다는 것입니다. 또한 gdvPersons.SelectedRow.Focus()를 변경했습니다. 행에 초점을 맞추기위한 코드로, 답으로 표시했습니다. 감사 – Fikre