2013-04-05 3 views
0

Google & Telerik 포럼을 검색했지만 해결책을 찾지 못했습니다.radGrid 컨트롤이 날짜 매개 변수가 변경된 후 빈 격자를 표시합니다.

RadGrid 컨트롤을 채우는 저장 프로 시저를 호출하는 기존 응용 프로그램 (이전 개발자가 작성)이 있습니다. 처음으로 잘 채 웁니다.

그러나 날짜 매개 변수를 변경하고 "검색"버튼을 클릭하면 빈 RadGrid 컨트롤이 나타납니다. 두 번째로 검색을 클릭하면 표가 채워집니다. 코드를 살펴볼 때 오류 메시지가 표시됩니다.

'ID'열이 테이블 테이블에 속하지 않습니다.

데이터를 표시하기 위해 검색을 두 번 클릭해야하는 문제를 어떻게 해결할 수 있습니까?

내 코드 뒤에입니다 : 코드에서

protected void btnSubmit_OnClick(object sender, EventArgs e) 
{ 
    try 
    { 
     ViewState["newset"] = null; 
     CreateDatasource(); 
     this.RadGrid1.DataBind(); 
     this.RadGrid1.CurrentPageIndex = 0; 
     ViewState["newset"] = "new";  

     string idex = this.hdnindex.Value; 
     if (idex != string.Empty) 
      this.RadGrid1.MasterTableView.Items[int.Parse(idex)].Selected = true; 

    } 
    catch (Exception ex) { 
     this.lblMessage.Text = ex.Message; 
    }   
} 

protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) 
{ 
    try 
    { 
     if (e.Item is GridDataItem) 
     { 
      GridDataItem item = (GridDataItem)e.Item; 
      HyperLink hLink = (HyperLink)item["ViewHyperLink"].Controls[0]; 
      if (hLink != null) 
       hLink.Attributes.Add("onclick", "selectMe('" + item.ItemIndex + "');"); 
     } 
    } 
    catch (Exception ex) 
    { 
     this.lblMessage.Text = ex.Message; 
    } 
} 

뒤에 위, this.RadGrid1.DataBind()가 호출 될 때 if 문을 통해 RadGrid1_ItemCreated 루프에 코드 단계를 몇 번, 그들로 전환 if 문이 함수에서 나온 다음 btnSubmit의 catch 문이 호출되어 "열 ID가 테이블 테이블에 속하지 않습니다"라는 오류 메시지가 표시됩니다.

해결 방법에 대한 아이디어가 있으십니까?

+0

그런 예외 메시지가 있으면 RadGrid와 데이터 소스간에 바인딩 문제가있는 것처럼 들립니다. –

+0

답변 해 주셔서 감사합니다. 확장 할 수 있습니까 (또는 제안 사항이 있습니까)? 나는 내가 생각할 수있는 바인딩의 모든 방법을 시도했다. – Csharp

+0

저장 프로 시저와 RadGrid를 채우는 논리를 포함 할 수 있습니까? –

답변

2

아마도 Grid - Simple Data Binding을 시도해야합니다. 또한 telerik 포럼의이 스레드 (RadGrid NeedDataSource Page load)는 Simple Data binding에 대해 자세히 이야기합니다. NeedDataSource를 사용하려고하는지 모르겠지만 비슷한 문제가 있었고 Simple Data 바인딩이 완벽하게 작동했습니다.

+0

링크를 제공해 주셔서 감사합니다. 그 정보는 매우 도움이됩니다. – Csharp

0

어쨌든 RadGrid1.Rebind()를 호출해야합니다. btnSubmit_OnClick 내의 try 블록에서 마지막 행을 호출 해보십시오.

또한이 검색 버튼은 무엇을합니까? 날짜를 기준으로 결과를 필터링합니까?

+0

제안을 시도한 후 행운이 없습니다. – Csharp

관련 문제