아마존 검색 결과로 gridview를 채우려고합니다. 페이지가로드되는 순간에 데이터 소스는 데이터로 채워집니다. 내가하려는 것은 검색 버튼을 눌러 데이터를 보여 주지만 "발견 된 레코드 없음"을 표시합니다. 나는 여러 가지 방법을 시도했는데, 그것이 작동하는 유일한 방법은 포스트 백이 아니지만, 문제는 gridview에서 페이지를 변경할 때마다 GetProducts ("Playstation") 명령이 다시 시작된다는 것입니다.Gridview는 Gridview 페이지를 변경 한 후 데이터를 리 바인드하지 않습니다.
해결 방법 : 페이지로드 -> 클릭 버튼 -> 데이터로 gridview 채우기 -> gridview에서 새 페이지를 선택하면 데이터가 표시되지만 Getproducts ("Playstation")가 다시 시작되지 않습니다.
이 방법이 있습니까?
protected void Page_Load(object sender, EventArgs e) {
Button1.Click += new EventHandler(this.GreetingBtn_Click);
if (!Page.IsPostBack) {
AmazonSearch us = new Amazon.PAAPI.AmazonSearch();
GridView1.DataSource = us.GetProducts("Playstation");
}
}
void Search(Object sender, EventArgs e) {
Button clickedButton = (Button) sender;
GridView1.DataBind();
}
protected void grid_PageIndexChanging(object sender, GridViewPageEventArgs e) {
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
편집
나는 FastGeeks anwser 덕분에 그것을 알아 냈다. 코드에 변수 ds를 추가했습니다. 다음과 같이 변경했다 :
DataSet ds = new DataSet();
protected void Page_Load(object sender, EventArgs e) {
Button1.Click += new EventHandler(this.GreetingBtn_Click);
}
void Search(Object sender, EventArgs e) {
Button clickedButton = (Button) sender;
AmazonSearch us = new Amazon.PAAPI.AmazonSearch();
ds.Tables.Add(us.GetProducts("Playstation"));
GridView1.DataSource = ds;
Session["ds"] = ds;
GridView1.DataBind();
}
protected void grid_PageIndexChanging(object sender, GridViewPageEventArgs e) {
GridView1.PageIndex = e.NewPageIndex;
ds = (DataSet)Session["ds"];
GridView1.DataSource = ds;
GridView1.DataBind();;
}
감사합니다! 이것은 나를 위해 일했으며 데이터 세트 변수를 만들었습니다. 검색 버튼을 클릭하면 데이터가 추가됩니다. – Suprsonic