2017-06-02 4 views
-1

私は自分のMySQLデータベースのデータをhtmlテーブルに表示するasp.net webapplicationを作ったので、一度に20行しか表示できないようにし、button_clickイベントで次の20行見ることができた、など。ただし、6回目のクリック後、代わりに40行が表示され、もうボタンをクリックすることはできません。C#カスタムテーブルページングの問題

HTML

<div> 
    <table id="datagrid" runat="server"> 
    </table> 
    <asp:Button OnClick="Unnamed_Click" runat="server"/> 
</div> 

C#コード[決勝 - 作業、誰がそれを必要とする包み]

int minrows = 0; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     DisplayData(); 
    } 
    private void DisplayData() 
    { 
     if (ViewState["minrows"] != null) 
     { 
      minrows = Convert.ToInt16(ViewState["minrows"]); 
     } 
     MySqlConnection conn = new MySqlConnection("server=localhost;database=apollo;user=root;password=mysqltest"); 
     MySqlCommand cmd = new MySqlCommand("SELECT Klantnr, Naam, Straat FROM tblklanten LIMIT "+minrows+", 20", conn); 
     conn.Open(); 
     MySqlDataReader Reader = cmd.ExecuteReader(); 
     while (Reader.Read()) 
     { 
      HtmlTableRow tr = new HtmlTableRow(); 
      HtmlTableCell td1 = new HtmlTableCell(); 
      HtmlTableCell td2 = new HtmlTableCell(); 
      HtmlTableCell td3 = new HtmlTableCell(); 
      datagrid.Controls.Add(tr); 
      td1.InnerText = Reader["Klantnr"].ToString(); 
      td2.InnerText = Reader["Naam"].ToString(); 
      td3.InnerText = Reader["Straat"].ToString(); 
      tr.Controls.Add(td1); 
      tr.Controls.Add(td2); 
      tr.Controls.Add(td3); 
     } 
     Reader.Close(); 
     conn.Close(); 
    } 
    protected void Unnamed_Click(object sender, EventArgs e) 
    { 
     minrows += 20; 
     ViewState["minrows"] = minrows; 
     datagrid.Controls.Clear(); 
     DisplayData(); 
    } 
+1

ここで問題は何ですか? – ISHIDA

+0

6回目のクリック後、代わりに40行が表示され、もうボタンをクリックすることはできません。その代わりに – user6875529

+0

、何が起こる必要がありますか? – ISHIDA

答えて