我试图检查gridview是否存在id号并抛出错误消息,否则将数据添加到gridview。这就是我到目前为止所拥有的;我收到错误消息,但同时也添加到gridview。正在从另一个网格视图中提取数据。
int row = GridView1.Rows.Count - 1;
String val = GridView1.Rows[row].Cells[1].Text.ToString();
foreach (GridViewRow rows in GridView2.Rows)
{
for (int i = 0; i < GridView2.Columns.Count; i++)
{
//String header = GridView2.Columns[i].HeaderText;
String cellText = rows.Cells[i].Text;
if (val == cellText)
{
lblError.Text = "ID number already assigned!!";
}
}
}
if (GridView2.Rows.Count >= 0)
{
DataRow dr = dt.NewRow();
dr["StudentName"] = GridView1.Rows[row].Cells[0].Text;
dr["IDNum"] = GridView1.Rows[row].Cells[1].Text;
dt.Rows.Add(dr);
}
答案 0 :(得分:1)
你可以像这样添加布尔错误标志:
int row = GridView1.Rows.Count - 1;
String val = GridView1.Rows[row].Cells[1].Text.ToString();
bool errorFound = false;
foreach (GridViewRow rows in GridView2.Rows)
{
for (int i = 0; i < GridView2.Columns.Count; i++)
{
//String header = GridView2.Columns[i].HeaderText;
String cellText = rows.Cells[i].Text;
if (val == cellText)
{
errorFound = true;
lblError.Text = "ID number already assigned!!";
}
}
}
if (GridView2.Rows.Count >= 0 && !errorFound)
{
DataRow dr = dt.NewRow();
dr["StudentName"] = GridView1.Rows[row].Cells[0].Text;
dr["IDNum"] = GridView1.Rows[row].Cells[1].Text;
dt.Rows.Add(dr);
}
答案 1 :(得分:0)
您在代码中遇到了多个问题。
首先:您在网格的第二列中显示了ID值,但您仍在循环所有列以比较ID号。
你可以避免内在循环。
第二:一旦你发现网格视图中已经存在ID号,你应该突破循环。一旦知道该ID存在,就没有必要通过所有其他行。
第三:一旦你离开了foreach循环,你只需将GridView中的行数与0进行比较,并尝试将行添加到gridview。但实际上您需要检查是否在foreach循环中找到了ID。如果找到,则不应将行添加到网格视图。
所以你的代码如下所示。
int row = GridView1.Rows.Count - 1;
String val = GridView1.Rows[row].Cells[1].Text.ToString();
bool idFound = false;
foreach (GridViewRow rows in GridView2.Rows)
{
//Get the Text of 2nd Cell in cellText Variable.
String cellText = rows.Cells[1].Text;
if (val == cellText)
{
//Display error message and set idFound value to true.
lblError.Text = "ID number already assigned!!";
idFound = true;
}
}
//Check value of idFound, if it is false then add row to GridView1
if (!idFound)
{
DataRow dr = dt.NewRow();
dr["StudentName"] = GridView1.Rows[row].Cells[0].Text;
dr["IDNum"] = GridView1.Rows[row].Cells[1].Text;
dt.Rows.Add(dr);
}