2014-06-05 66 views
2
int rowPosition = 0; 
string WorkerName = ""; 
DataTable dtAllotedManpower = new DataTable(); 
dtAllotedManpower.Columns.Add("WorkerName"); 
foreach (GridViewRow row in GridViewTotalManpower.Rows) 
{ 
    if (row.RowType == DataControlRowType.DataRow) 
    { 
     DataRow drAllotedManpower = dtAllotedManpower.NewRow(); 
     CheckBox chkChild = (CheckBox)GridViewTotalManpower.Rows[rowPosition].FindControl("chkChild"); 
     if (chkChild.Checked == true) 
     { 
      WorkerName = Convert.ToString(GridViewTotalManpower.DataKeys[rowPosition]["WorkerName"].ToString()) + "," + WorkerName; 

     } 
     rowPosition++; 
    } 
    hidfWorker.Value = WorkerName; 

我已經寫下面這段代碼。我的隱藏字段值來這樣如何逗號分隔一組沒有最終逗號的字符串

「苛刻,RIMA,」

但值「苛刻,RIMA」(沒有「」最後一個字後)我想要的。如何構建代碼? 。在最後一個字後面不會有'逗號'。

回答

2

您可以使用string.TrimEnd()

hidfWorker.Value = WorkerName.TrimEnd(','); 

這將從字符串中刪除最後一個逗號。

+3

這是繞過這個問題.. –

+0

謝謝...它的工作.. –

+1

@SimonWhitehead:確實。你有適當的解決方案:-) – scheien

12

它們添加到集合,然後使用string.Join

var list = new List<string>(); 

foreach (GridViewRow row in GridViewTotalManpower.Rows) { 
    // ...other code here... 
    list.Add(Convert.ToString(GridViewTotalManpower.DataKeys[rowPosition]["WorkerName"].ToString())); 
} 

hidfWorker.Value = string.Join(", ", list); 
+3

我preffer這一個 –

+0

謝謝...不錯代碼也是。 –

+1

這是做到這一點的最佳方式 –

1

可以使用子方法

hidfWorker.Value=WorkerName.Substring(0,WorkerName.Length-1); 
1

使用StringBuilder而不是字符串,如果你經常改變像在循環字符串,因爲當您使用字符串時,它會在您每次更改它時創建新的字符串對象,

StringBuilder workerName = new StringBuilder(); 

而且在循環

workerName.Append(Convert.ToString(GridViewTotalManpower.DataKeys[rowPosition]["WorkerName"].ToString()) + ","); 

使用TrimEnd方法

hidfWorker.Value = workerName.ToString().TrimEnd(','); 

希望這有助於然後修剪最後 '' 字符。