C #의 GridView에서 편집 행의 이미지 단추 숨기기
Aug 21 2020
나는이 GridView
C #에서 표시하는 사람의 기록을
한 사람의 경우 단일 코드 또는 여러 관련 코드를 가질 수 있습니다.
사람이 인식되면 List<string>
코드와 함께 a 가 생성됩니다.
List<string> codList = new List<string>();
string ns;
if (reader.HasRows)
{
while (reader.Read())
{
cod = reader["cod"].ToString();
codList.Add(cod.ToString());
aut = Convert.ToInt32(reader["Aut"]);
}
ns = "";
ns = string.Join(",", (from cod in codList select "?").ToList());
}
이 사람의 경우 코드 목록에는 다음 값이 포함됩니다.
32D
32B
33E
33G
35H
이제 변수 값 aut
이 0보다 크고 cod
열 값이 다음 의 값에 해당하는 경우 GridView의 편집 행에 대한 이미지 단추를 숨겨야 합니다 list
.
if (e.Row.RowType == DataControlRowType.DataRow)
{
string cod = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "cod"));
ImageButton btnEdit = (ImageButton)e.Row.FindControl("imgbtnEdit");
foreach (var co in codList)
{
if (aut > 0 && cod.ToString().Contains(co.ToString()))
{
btnEdit.Visible = true;
}
else
{
btnEdit.Visible = true;
}
}
}
그러나 행 편집 버튼 GridView
은 마지막 값에 대해서만 표시됩니다.list
35H
대신 다른 list
행 편집 버튼의 값 GridView
이 숨겨집니다.
32D
32B
33E
33G
이를 수행하는 가장 좋은 방법은 무엇입니까?
답변
PalleDue Aug 21 2020 at 18:06
귀하의 문제를 완전히 이해했는지는 모르겠지만 문제가 있습니다.
if (aut > 0 && cod.ToString().Contains(co.ToString()))
{
btnEdit.Visible = true;
}
else
{
btnEdit.Visible = true;
}
조건에 관계없이 btnEdit.Visible = true로 평가됩니다. 나는 당신이 의미했다고 생각합니다.
btnEdit.Visible = (aut > 0 && cod.ToString().Contains(co.ToString());
또한 for 루프에서 평가하는 것은 매번 설정하는 동일한 btnEdit이므로 거의 차이가 없습니다. 그것은 아마도 그것이 마지막 가치 인 이유를 설명 할 것입니다.