Member 13696518 Ответов: 0

Как читать текстовое поле в динамическом 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
}
}

0 Ответов