if (dt.Rows[i]["Code"] == code)
{
Label lblLang = (Label)(((e.Item as GridItem).FindControl("lblLang") as Label));
lblLang.Visible = true;
}
else
{
}
}
我在上面的代码中添加了一种新语言Fr-FR。 fr-FR已存在于我的DB语言表中。我不想在表格中添加重复的值。应该只有一个fr-FR。 我在上面的代码中做错了什么?
答案 0 :(得分:3)
您是否尝试过使用
dt.Rows[i]["Code"] .Equals(code, StringComparison.InvariantCultureIgnoreCase)
查看StringComparison Enumeration甚至String.Compare Method (String, String, Boolean)
答案 1 :(得分:2)
让我们稍微分析一下代码:
如果db
中有两行Code Name
------------
En-en English
De-de German
Fr-fr French
如您所见,您正在插入一个fr-fr行,用于 real fr行之前的所有行。
你应该做这样的事情
bool found = false;
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["Code"] == code)
{
found = true;
break;
}
}
if (found)
{
//show the label
}
else
{
//add the language
}
基本上确保在关闭和插入行之前,任何行中都不存在“fr”。
要显示网格中一行中单元格中的标签,您需要找到该单元格,然后使用FindControl查找标签,如下所示(伪代码):< / p>
Label lblLang = (Label)((e.Item as GridItem).Cells[0].FindControl("lblLang"))
上面的代码很可能无效,因为您需要根据问题进行调整,但方向正确。