简体   繁体   中英

What happens in the OnDataBound Event of the Gridview?

I have a Gridview where I check the data of some determined cells during the OnDataBound event in order to trigger some action.

        public void PaintRows_OnRowDataBound(object sender, GridViewRowEventArgs e)
    {

        if (e.Row.Cells[0].Text == "0")
        {
            //first condition
        }
        else if (e.Row.Cells[0].Text == "1" && e.Row.Cells[12].Text.Length != 6)
        {
            //second condition
        }
        else
        {
            //launch the action 
        }
    }

Even though all conditions are fulfilled, the action that is triggered by the else statement is always fired. I don't see any logic that explains that. I learned that looping through the rows the event binds the headers too and therefore I check this case in the conditions. But are there any other invisible rows that I am missing and that lead to the fact that the else condition is reached? I hope I did made my point clear. Martin

You mention that you're checking to exclude the row if it's a header row, but haven't provided what your actual conditional test is for this..

To pre-filter for only data rows, you would apply this condition:

if(e.Row.RowType == DataControlRowType.DataRow)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM