如果文件已经存在,则以下代码显示验证消息“文件已在列表中”,但这并不妨碍其添加到gridview中。就能告诉我什么地方出了问题。谢谢
if (GridFiles.Rows.Count > 0)
{
int count = GridFiles.Rows.Count;
dt = new DataTable();
DataColumn dcFileName = new DataColumn("File Name", typeof(string));
dt.Columns.Add(dcFileName);
for (int j = 0; j < count; j++)
{
if (GridFiles.Rows[j].Cells[1].Text == FileName)
{
lblMessage.Text = "File already in the list";
break;
}
}
for (int k = 0; k < count; k++)
{
dr = dt.NewRow();
dr["File Name"] = GridFiles.Rows[k].Cells[1].Text;
dt.Rows.Add(dr);
}
dr = dt.NewRow();
dr["File Name"] = FileName;
dt.Rows.Add(dr);
GridFiles.DataSource = dt;
ViewState["grdContent"] = dt; //stored datable in viewstate
GridFiles.DataBind();
}
else
{
dt = new DataTable();
DataColumn dcFileName = new DataColumn("File Name", typeof(string));
dt.Columns.Add(dcFileName);
dr = dt.NewRow();
dr["File Name"] = FileName;
dt.Rows.Add(dr);
GridFiles.DataSource = dt;
ViewState["grdContent"] = dt; //stored datable in viewstate
GridFiles.DataBind();
}
看起来最容易做的事情就是替换break;
为return;
。
无需中断for
循环,您只需在标签上设置错误消息并离开方法即可。
您还可以for
用LINQ语句替换第一个循环:
if (myGrid.Rows.Cast<GridViewRow>().Any(x => x.Cells[1].Text == FileName))
{
lblMessage.Text = "File already in the list";
return;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句