내 asp.net gridview에서 이미지를 표시하는 템플릿 열을 배치하고 있습니다.asp.net gridview template column
템플릿 열 내에서 이미지 컨트롤을 추가하고 데이터베이스의 이미지를 성공적으로 표시했습니다. 나는 또한 페이징을 사용하고있다.
페이징 또한 일어납니다.하지만 페이징 이미지가 그리드 뷰에 적절한 순서로 오지 않는 경우, 예를 들어 첫 번째 3 페이지는 디플레이션으로 가정하고 a.jpg, b.jpg, c.jpg라고 가정하고 페이지 번호를 클릭하면 반복됩니다. 남은 사진 대신 같은 사진, 나는로드 이벤트에 if(!ispostback)
도 사용하고 있습니다. 제발 도와주세요.
페이지로드 이벤트에서 내 코드는 다음과 같습니다
다 = 새로운 SqlDataAdapter를 ("* T1에서 선택", 사기꾼); ds = new DataSet(); da.Fill (ds); 경로 = Server.MapPath (@ "~ \ images"); if (! IsPostBack) { GridView1.DataSource = ds; GridView1.DataBind();
ASCIIEncoding asc = new ASCIIEncoding();
int j = GridView1.Rows.Count;
for (int i = 0; i < j; i++)
{
GridViewRow r=GridView1.Rows[i];
b = (byte[])ds.Tables[0].Rows[i]["photo"];
string name = asc.GetString(b);
Image img = (Image)r.FindControl("Image1");
img.ImageUrl = path + @"\" + name;
}
}
및 페이징 이벤트에서 내 코드
입니다GridView1.PageIndex = e.NewPageIndex; GridView1.DataSource = ds; GridView1.DataBind(); ASCIIEncoding asc = 새 ASCIIEncoding(); int j = GridView1.Rows.Count; 사전에
for (int i = 0; i < j; i++)
{
GridViewRow r=GridView1.Rows[i];
b = (byte[])ds.Tables[0].Rows[i]["photo"];
string name = asc.GetString(b);
Image img = (Image)r.FindControl("Image1");
img.ImageUrl = path + @"\" + name;
}
감사 상 기타
할 수 있습니다에게 포스트 당신의 gridview 과 데이터를 결합하는 데 사용할 수 있습니다 그리드 및 페이징을 사용하여 데이터를 가져 오는 데 사용하는 코드 - 바인딩? – TheVillageIdiot