Get the cell value of a GridView row

后端 未结 8 1118
灰色年华
灰色年华 2021-01-01 18:23

I am using the GridView - AutoGenerateSelectButton = \"True\" to select the row in order to get the Column 1 cell value.

I have tried:

         


        
8条回答
  •  暗喜
    暗喜 (楼主)
    2021-01-01 18:53

    Expanding on Dennis R answer above ... This will get the value based on the Heading Text (so you don't need to know what column...especially if its dynamic changing).

    Example setting a session variable on SelectedIndexChange.

        protected void gvCustomer_SelectedIndexChanged(object sender, EventArgs e)
        {
            int iCustomerID = Convert.ToInt32(Library.gvGetVal(gvCustomer, "CustomerID"));
            Session[SSS.CustomerID] = iCustomerID;
        }
    
    public class Library
    {
        public static string gvGetVal(GridView gvGrid, string sHeaderText)
        {
            string sRetVal = string.Empty;
            if (gvGrid.Rows.Count > 0)
            {
                if (gvGrid.SelectedRow != null)
                {
                    GridViewRow row = gvGrid.SelectedRow;
                    int iCol = gvGetColumn(gvGrid, sHeaderText);
                    if (iCol > -1)
                        sRetVal = row.Cells[iCol].Text;
                }
            }
            return sRetVal;
        }
    
        private static int gvGetColumn(GridView gvGrid, string sHeaderText)
        {
            int iRetVal = -1;
            for (int i = 0; i < gvGrid.Columns.Count; i++)
            {
                if (gvGrid.Columns[i].HeaderText.ToLower().Trim() == sHeaderText.ToLower().Trim())
                {
                    iRetVal = i;
                }
            }
            return iRetVal;
        }
    }
    

提交回复
热议问题