2014-02-28 2 views
0

나는 gridview를 가지고 있고 allowpaging을 gridview..now에서 제공하고 있습니다 gridview..now의 하단에있는 pagenumber를 볼 때 페이지 번호를 클릭 할 때 클릭이 작동하지 않습니다. GridView 'GridView1'이 (가) 처리되지 않은 이벤트 인 PageIndexChanging을 실행했습니다.속성에서 AllowPaging을 사용하는 방법은 무엇입니까?

내 코드

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" PageSize="1" Width="544px" > 
     <AlternatingRowStyle BackColor="PaleGoldenrod" /> 
     <Columns> 
      <asp:TemplateField HeaderText="cdd"> 
       <ItemTemplate> 
        <asp:CheckBox ID="CheckBox2" runat="server" /> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
     <FooterStyle BackColor="Tan" /> 
     <HeaderStyle BackColor="Tan" Font-Bold="True" /> 
     <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" /> 
     <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" /> 
     <SortedAscendingCellStyle BackColor="#FAFAE7" /> 
     <SortedAscendingHeaderStyle BackColor="#DAC09E" /> 
     <SortedDescendingCellStyle BackColor="#E1DB9C" /> 
     <SortedDescendingHeaderStyle BackColor="#C2A47B" /> 
    </asp:GridView> 

내 코드 숨김

public partial class usersshow : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 

    ArrayList myArrayList = ConvertDataSetToArrayList(); 

     // Display each item of ArrayList 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("User Id"); 
     dt.Columns.Add("Problem Name"); 
     dt.Columns.Add("Status"); 

     foreach (Object row in myArrayList) 
     { 
      dt.Rows.Add(); 
      dt.Rows[dt.Rows.Count - 1]["User Id"] = ((DataRow)row)["userid"].ToString(); 
      dt.Rows[dt.Rows.Count - 1]["Problem Name"] = ((DataRow)row)["problemname"].ToString(); 
      dt.Rows[dt.Rows.Count - 1]["Status"] = ((DataRow)row)["status"].ToString(); 

     } 

     GridView1.DataSource = dt; 
     GridView1.DataBind(); 

} 

public ArrayList ConvertDataSetToArrayList() 
{ 

    string con = " "; 
    con = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); 
    SqlConnection objsqlconn = new SqlConnection(con); 
    objsqlconn.Open(); 
    SqlCommand cmd = new SqlCommand("SELECT userid,problemname,status FROM problemtable", objsqlconn); 
    cmd.ExecuteNonQuery(); 
    cmd.CommandType = CommandType.Text; 
    SqlDataAdapter myAdapter = new SqlDataAdapter(); 
    myAdapter.SelectCommand = cmd; 

    DataSet myDataSet = new DataSet(); 
    myAdapter.Fill(myDataSet); 

    ArrayList myArrayList = new ArrayList(); 
    foreach (DataRow dtRow in myDataSet.Tables[0].Rows) 
    { 
     myArrayList.Add(dtRow); 
    } 
    objsqlconn.Close(); 
    return myArrayList; 
} 
+0

에게 무엇입니까? –

+0

나는 나의 포스트를 편집했다. 나는 당신이 아이디어를 얻을 것이라고 생각한다. Thomas Taylor –

답변

0

페이지에 onpageindexchanging 이벤트를 추가하고 해당 탈락 한 확인.

그래서 영문 코드는

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" BackColor="LightGoldenrodYellow" 
BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" PageSize="1" 
Width="544px" AllowPaging="true" onpageindexchanging = "GridView1_PageIndexChanging" > 

코드면 당신이 그리드를 바인딩되는 데이터 소스의 종류

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
      { 
      GridView1.DataSource = GetDataTable(); 
      GridView1.DataBind(); 
      } 

} 
public System.Data.DataTable GetDataTable() 
{ 
    ArrayList myArrayList = ConvertDataSetToArrayList(); 

    // Display each item of ArrayList 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("User Id"); 
    dt.Columns.Add("Problem Name"); 
    dt.Columns.Add("Status"); 

    foreach (Object row in myArrayList) 
    { 
     dt.Rows.Add(); 
     dt.Rows[dt.Rows.Count - 1]["User Id"] = ((DataRow)row)["userid"].ToString(); 
     dt.Rows[dt.Rows.Count - 1]["Problem Name"] = ((DataRow)row)["problemname"].ToString(); 
     dt.Rows[dt.Rows.Count - 1]["Status"] = ((DataRow)row)["status"].ToString(); 

    } 

    Return dt; 
    } 


    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.DataSource = GetDataTable(); 
    GridView1.DataBind(); 
    } 
+0

나는 데이터 소스를 가지고 있지 않다. 나는 당신이 arraylist에서 데이터를 검색하고 gridview ..로 표시하는 것을 볼 수있다. 그 경우 Gridview1.Datasourc = "";에서 무엇을 줄까요? –

+0

업데이트 된 답변을 확인하여 해결책을 얻으십시오. –

관련 문제