2015-08-27 46 views
0

我有一個gridview,其中一列包含複選框,然後有一個「Select ALl」按鈕,點擊時必須檢查列表中的前100個CB,表示他們不想分頁,用分頁方式做這件事更容易,每頁僅顯示100條記錄,然後當選擇全部按鈕被點擊時,給定頁面上的所有內容都被選中,但這不是客戶想要的如何僅選擇Gridview上的前100行

Here是我的代碼:

foreach (GridViewRow row in dgridTransactions.Rows) 
{ 
    for (int x = 0; x <=100;x++) 
    { 
     var oneTransaction = (CheckBox)row.FindControl("chkAssigned"); 
     oneTransaction.Checked = true; 
    } 
} 
+0

你不能使用'javascript'或'jquery'嗎? – Bharadwaj

回答

0

有問題,在你的代碼 您可以使用以下代碼

int x=0; 
foreach (GridViewRow row in dgridTransactions.Rows) 
{ 
    if(x<100) 
    { 
     var oneTransaction = (CheckBox)row.FindControl("chkAssigned"); 
     oneTransaction.Checked = true; 
    } 
    else 
     break; 
    x++; 
} 

foreach (GridViewRow row in dgridTransactions.Rows)循環運行在網格每一行。

而且您正在使用for (int x = 0; x <=100;x++){,它爲每一行運行100次。

您可以使用jQuery或JavaScript來這兒是個JSFiddle它可以幫助您

+0

謝謝你的回覆,非常豐富,我會將JSFiggle留在我的筆記中供將來使用,因爲第一個答案已經幫助了我,非常感謝 – Ronny

+0

@Ronny歡迎你:) –

1

如果你想運行第一幾百行,你只需要使用的rowIndex你可以跟蹤這個循環

for(int x = 0; x < 100; x++) 
{ 
    GridViewRow row = dgridTransactions.Rows[x]; 
    // then manage row properties 
    CheckBox cb = (CheckBox)row.FindControl("chkAssigned"); 
    cb.Checked = true; 
} 
+0

正是我所期待的,謝謝你很多你是一個救命的人 – Ronny

+0

道歉,因爲信譽的限制:)我無法提高你的答案 – Ronny

1

行號。

foreach (GridViewRow row in dgridTransactions.Rows) 
{ 
    if(row.RowIndex<100) 
    { 
     var oneTransaction = (CheckBox)row.FindControl("chkAssigned"); 
     oneTransaction.Checked = true; 
    } 
    else 
     break; 

} 
+0

記住索引從0開始,所以它應該是「<100」。 –

+0

酒店,感謝您指出,更新。 – sharad

0

如何:

foreach (GridViewRow row in dgridTransactions.Rows.Cast<GridViewRow>().Take(100)) { 
    CheckBox cb = row.FindControl("chkAssigned") as CheckBox; 
    if (cb != null) 
     cb.Checked = true; 
    } 

這將給第一項目多達100個,所以如果你只有90,它會給90. 鑄造的diferent方式也會給你一個如果無法找到控制權,可採取額外的安全措施。直接投將只是拋出一個異常,這始終是重則檢查是否種姓對象不是空...

如果你沒有對投驗證照顧,你可以在線萬事成這樣:

dgridTransactions.Rows.Cast<GridViewRow>().Take(100).ToList().ForEach(x => ((CheckBox)x.FindControl()).Checked = true);