Rozważmy aktualny algorytm poniżej że iteracje przez GridView
„s wierszy znaleźć, czy zawarte Checkbox
wybrano/sprawdzane.LINQ: Znajdź wszystkie zaznaczone pola wyboru w GridView
List<int> checkedIDs = new List<int>();
foreach (GridViewRow msgRow in messagesGrid.Rows)
{
CheckBox chk = (CheckBox)msgRow.FindControl("chkUpdateStatus");
if (chk.Checked){
//we want the GridViewRow's DataKey value
checkedMsgIDs.Add(int.Parse(messagesGrid.DataKeys[msgRow.RowIndex].Value.ToString()));
}
}
Działa to zgodnie z oczekiwaniami: pozostało Ci całkowicie wypełnione List<int>
.
Pytanie: W jaki sposób można lub ponownego zapisu lub poprawić ten algorytm przy użyciu LINQ przeszukać GridView
dla wszystkich wierszy, które mają swoje Checkbox
wybrany/sprawdzane?
Dzięki LC! 'Convert.ToInt32' powinno działać poprawnie. Dzięki za to ulepszenie! –
Może to zabrzmieć głupio, ale upewnij się, że używasz "System.Linq;" na miejscu, zanim spróbujesz napisać to stwierdzenie. Udało mi się napisać wszystkie rzeczy Linq bez niego skarży jednak gdy próbowałem zrobić niejawny obsady (od GridViewRow msgRow) kompilator narzekali nie ma definicji dla „Obsada” w GridViewRowCollection i nic w Intelli-sensie mi że potrzebowałem użycia. – ammills01