Как читать текстовое поле в динамическом gridview
в представлении сетки содержится несколько столбцов на основе данных одновременно 3 столбца или более
на основе поиска пользователь может ввести данные в виде сетки и нажать на кнопку Сохранить нужно прочитать значение текстового поля которое создается динамическим в виде сетки в то время как я принимаю как цикл но это значение текстового поля становится нулевым
Что я уже пробовал:
<название>
&ЛТ;АСП:таблицы с ID="gridview1, на" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" ширина="1500px" DataKeyNames="Кодсотрудника" фона="белый" CssClass="таблица-таблица наведения-граничит"
runat="server" AutoGenerateColumns="false" OnRowDataBound="OnRowDataBound">
//Код C#
protected void Page_Load(object sender, EventArgs e) { GridDynamic(); } //Bind Data to Dynamiv Drid view public void GridDynamic() { DataSet ds = // List of Employees Data ; if (ds.Tables[0].Rows.Count > 0) { DataSet dep = // List OF Dates Data ; if (!this.IsPostBack) { BoundField bfield = new BoundField(); bfield.HeaderText = "EmployeeID"; bfield.DataField = "EmployeeID"; GridView1.Columns.Add(bfield); bfield = new BoundField(); bfield.HeaderText = "EmployeeName"; bfield.DataField = "EmployeeName"; GridView1.Columns.Add(bfield); foreach (DataRow item in dep.Tables[0].Rows) { bfield = new BoundField(); bfield.HeaderText = item["DeployeeDates"].ToString(); bfield.DataField = item["DeployeeDates"].ToString(); GridView1.Columns.Add(bfield); } } DataSet dss = new DataSet(); DataTable dt = new DataTable(); if (dep.Tables[0].Rows.Count > 0) { DataColumn dcol = new DataColumn("EmployeeID", typeof(System.String)); dt.Columns.Add(dcol); dcol = new DataColumn("EmployeeName", typeof(System.String)); dt.Columns.Add(dcol); for (int i = 0; i < dep.Tables[0].Rows.Count; i++) { dcol = new DataColumn(dep.Tables[0].Rows[i][1].ToString(), typeof(System.String)); dt.Columns.Add(dcol); y++; } } string tot = ""; for (int nIndex = 0; nIndex < ds.Tables[0].Rows.Count; ) { DataRow drow = dt.NewRow(); int l = 0; string s = ds.Tables[0].Rows[nIndex][0].ToString(); //int cancel = 0, rejected = 0, pending = 0, approved = 0; int ccs = dep.Tables[0].Rows.Count; int ssd = 0; int up = 0; int n1 = 2; foreach (DataColumn col in dt.Columns) { if (l == 0) { drow[GridView1.Columns[0].HeaderText] = ds.Tables[0].Rows[nIndex][0]; GridView1.Columns[n1].ItemStyle.Width = 50; } else if (l == 1) { drow[GridView1.Columns[1].HeaderText] = ds.Tables[0].Rows[nIndex][1]; GridView1.Columns[n1].ItemStyle.Width = 150; } else if (s.Equals(ds.Tables[0].Rows[nIndex][0].ToString())) { foreach (DataRow item in dep.Tables[0].Rows) { string ass = GridView1.Columns[n1].HeaderText; string assd = dep.Tables[0].Rows[ssd][1].ToString(); if (ass == assd) { GridView1.Columns[n1].ItemStyle.Width = 120; // drow[GridView1.Columns[n1].HeaderText] = dep.Tables[0].Rows[ssd][1]; n1++; ssd++; } } if (up == 1) up = 2; else nIndex++; } else break; l++; if (nIndex == ds.Tables[0].Rows.Count) break; } //drow[GridView1.Columns[y].HeaderText] = tot; //tot = 0; dt.Rows.Add(drow); } GridView1.DataSource = dt; GridView1.DataBind(); GridView1.Visible = true; } else { // dt.Dispose(); GridView1.DataSource = null; GridView1.DataBind(); GridView1.Columns.Clear(); } } protected void OnRowDataBound(object sender, GridViewRowEventArgs e) { //Adding Text box if (e.Row.RowType == DataControlRowType.DataRow) { DataSet dep = // Data of dats int no = 2; foreach (DataRow item in dep.Tables[0].Rows) { TextBox txtCountry = new TextBox(); txtCountry.ID = item["DeployeeDates"].ToString(); txtCountry.Text = "0"; txtCountry.Attributes.Add("runat", "server"); e.Row.Cells[no].Controls.Add(txtCountry); no++; } } } //reading Value protected void ImgDeploymentSave_Click(object sender, ImageClickEventArgs e) { foreach (GridViewRow row in GridView1.Rows) { string numbers = string.Empty;//= (TextBox)row.FindControl("23-02-2018"); TextBox lls = (TextBox)row.FindControl("24-02-2018"); // here text box value getting as null } }