2010-08-18 4 views
1

ASP.NET 응용 프로그램에 데이터 집합을 표시하려고합니다. 단추 이벤트를 클릭하면 데이터가 눈금에 표시되지 않는 것 같습니다. 나는 다음과 같은 한 뒤에 코드에서 다음데이터 집합을 사용하여 GridView에 데이터 표시

<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
     <asp:UpdatePanel runat="server" id="UpdatePanel" updatemode="Conditional"> 
      <ContentTemplate> 
       <asp:GridView ID="GridView1" runat="server" Width="200" Height="300"> 
       </asp:GridView> 
       <asp:Button runat="server" id="UpdateButton1" onclick="UpdateButton_Click" text="Update" />    
      </ContentTemplate> 
     </asp:UpdatePanel> 

    </form> 

:

protected void UpdateButton_Click(object sender, EventArgs e) 
     { 
      string SQLConfigSettings = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString; 
      SqlConnection sqlconn = new SqlConnection(SQLConfigSettings); 

      sqlconn.Open(); 

      SqlDataAdapter adapter = new SqlDataAdapter("Select * from Student", sqlconn); 

      DataSet ds = new DataSet(); 
      adapter.Fill(ds); 

      GridView1.DataSource = ds; 
      UpdatePanel.Update(); 

     } 

내가 뭔가를 놓치고 있습니까

나는 다음과 기본 페이지가? 데이터 세트를 그리드에 표시하면 되겠습니까? 버튼을 클릭해도 아무런 변화가 없습니다.

감사합니다 :)

답변

1

당신이 바로 Gridview1.DataSource

GridView1.DataBind()를 추가해야합니다.

는 그래서됩니다 :

... 
      DataSet ds = new DataSet(); 
      adapter.Fill(ds); 

      GridView1.DataSource = ds; 
      GridView1.DataBind(); 
      UpdatePanel.Update(); 

당신이 데이터 세트 내부 테이블을 언급하는 .DataBind 방법 검사에 대해 MSDN on it

+0

이 방법이 효과적이었습니다. databind를 잊어 버렸습니다! :) – Mage

0
GridView1.DataSource = ds; 

한번에 더 많은 정보가 필요합니다. ds.Tables [0]과 같은 것 또는 테이블 ds.Tables [ "table_name"]의 이름을 알고있는 경우

+0

@shakhar, 기본값은 불필요한 첫 번째 테이블을 취합니다. – JonH

+0

ok .. 그리고 그것은 @shakhar가 아닙니다. 그것은 @ shekhar 였을 것입니다. – Shekhar

0

코드의 첫 번째 줄에 중단 점을 넣고 실행하십시오.

해당 중단 점에 도달 했습니까?

그 다음에 각 코드 행을 단계별로 실행하고 변수 값을 검사하십시오. DataSet이 (가) 채워지고 있습니까? DataTable과 그 DataRows을 볼 수 있습니까?

이 이벤트 코드에 도달하여 데이터가있는 경우 데이터 바인딩을 확인해야합니다. DataSource을 설정하고 UpdatePanel.Update()을 수행하기 전에 즉시 GridView.DataBind()을 수행해야합니다. 그렇다면 당신은 잘 가야합니다.

관련 문제