2015-11-02 81 views
-1

我有一個gridview,對於gridview的一部分,我想做一些事情,另一部分,我想做另一件事。 從索引0到索引14一樣,執行此操作。 從索引15到30,請做到這一點。GridView從一個索引到另一個索引

我的想法是我正在生成一個PDF文件,如果GridView有0-14行,它會創建1頁。如果它具有15-30行,則會創建具有不同設計的另一個頁面,如此等等...... 這發生在「打印」按鈕的Click事件中。

它可能和如何?

下面是一些代碼我有這樣的:

string listeMarchandises = String.Empty;      
var i = 0; 

foreach (GridViewRow row in GridViewMarchandises.Rows) 
{ 
    if (i <= 14) 
    { 
     if (row.RowType == DataControlRowType.DataRow) 
     { 
      Label LabelNumCpte = (Label)row.FindControl("LabelNumCpte"); 
      Label LabelNumCc = (Label)row.FindControl("LabelNumCc"); 
      Label LabelNbrCom = (Label)row.FindControl("LabelNbrCom"); 
      TextBox TextBoxNbrRec = (TextBox)row.FindControl("TextBoxNbrRec"); 
      Label LabelDescription = (Label)row.FindControl("LabelDescription"); 
      TextBox TextBoxCoutUnitaire = (TextBox)row.FindControl("TextBoxCoutUnitaire"); 
      Label LabelCoutTotal = (Label)row.FindControl("LabelCoutTotal"); 
      listeMarchandises += "<tr valign=\"top\"><td align=\"center\">" + LabelNumCpte.Text.Trim() + "</td><td align=\"center\">" + LabelNumCc.Text.Trim() + "</td><td align=\"center\">" + LabelNbrCom.Text.Trim() + "</td><td align=\"center\">" + TextBoxNbrRec.Text.Trim() + "</td><td>&nbsp;" + LabelDescription.Text.Trim() + "</td><td align=\"right\">" + TextBoxCoutUnitaire.Text.Trim() + " $&nbsp;" + "</td><td align=\"right\">" + LabelCoutTotal.Text.Trim() + " $&nbsp;" + "</td></tr>"; 
     } 
     i++; 
    } 

    if (i >= 15 && i <= 30) 
    { 
     //do the other thing 
    } 
} 

提前感謝!

+0

您必須閱讀本SO後,無論您想前n個索引項或收集或別的東西前n行基於某些條件想想你的情況。 http://stackoverflow.com/questions/43021/how-do-you-get-the-index-of-the-current-iteration-of-a-foreach-loop – haraman

+0

爲什麼你不具體說明它是什麼你想或許你可以在OnDataBound事件中進行編碼。你能更具體嗎 – MethodMan

+0

我很抱歉我的解釋不清楚。我的想法是我正在生成一個pdf文件,如果GV有0-14行,它會創建1頁。如果它有15-30行,它會創建另一個頁面,等等...... @JohnPaul幫助我解決了代碼和問題。 :) – Yannick

回答

0

使用行數據綁定事件:

protected void gdv_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     var index = e.Row.RowIndex; 
     if(index > 14) 
     { 
      //Do stuff 
     } 
     else if (index >= 15 && index <= 30) 
     { 
      //Do other stuff 
     } 
    } 
+0

你錯過了數據行類型檢查。如果(e.RowType == DataControlRowType.DataRow){...您的邏輯...} – g2000

+0

TY它的工作原理!也TY爲你的理解。我的想法是我正在生成一個pdf文件,如果GV有0-14行,它會創建1頁。如果它有15-30行,它會創建另一個頁面,等等......所以事件不在RowDataBound中。我實際上是在「打印」按鈕的Click事件中發生的 – Yannick

相關問題