2014-06-05 67 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(','); 

希望这有助于然后修剪最后 '' 字符。