2 Stimmen

Gibt es eine Möglichkeit zu überprüfen, ob eine GridViewRow TemplateFields oder BoundFields hat?

Ich verwende einige Codes, um die Steuerelemente in einer GridViewRow-Zelle zu überprüfen. Und ich würde gerne etwas Code haben, der so etwas wie (myRow.Cells[0].Controls is BoundField == true) macht. Offensichtlich funktioniert dieser Code nicht und ich habe in den Eigenschaften von Cells nichts gesehen, das es mir erlaubt, das zu tun. Gibt es einen Cast oder eine obskure Eigenschaft, die es mir ermöglicht zu überprüfen, ob die Steuerelemente (oder ihr Container) ein TemplateField oder Boundfield sind?

3voto

Win Punkte 58887

Sie können das ContainingField der Zelle überprüfen.

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        foreach (DataControlFieldCell cell in e.Row.Cells)
        {
            if (cell.ContainingField is CommandField)
            {

            }
            else if (cell.ContainingField is BoundField)
            {

            }
            else if (cell.ContainingField is TemplateField)
            {

            }
        }
    }
}

1voto

Yuriy Galanter Punkte 36638

Da Sie den Index Ihrer Zelle kennen (in Ihrem Beispiel 0), können Sie die Spalte lokalisieren, zu der diese Zelle gehört (mit dem gleichen Index) und den Typ der Spalte überprüfen:

if (myGrid.Columns[0] is BoundField) {

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X