i want to bind data from database to Dynamic Grid-view Control with textbox and dropdown using dataset.
i have successfully inserted data to database using this code but now i want to fetch inserted data to same grud view control. i have tried following code. but not getting ans.
SetInitialRow();
string ID = 101;
foreach (GridViewRow row in Gridview2.Rows)
{
string str1 = "Select * from VendorInvoiceDetails where Invoice_ID='" + ID + "'";
DataSet ds1 = GEN.GetDataByQuery(str1);
DropDownList MaterialID = (DropDownList)row.FindControl("DropDownList1");
TextBox txtUnit = (TextBox)row.FindControl("txtUnit");
TextBox txtRate = (TextBox)row.FindControl("txtRate");
TextBox txtQty = (TextBox)row.FindControl("txtQuantity");
TextBox txtTotalAmt = (TextBox)row.FindControl("txtTotalAmount");
if (ds1.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds1.Tables[0].Rows.Count; i++)
{
MaterialID.SelectedValue = ds1.Tables[0].Rows[i]["MaterialName"].ToString();
txtUnit.Text = ds1.Tables[0].Rows[i]["Unit"].ToString();
txtRate.Text = ds1.Tables[0].Rows[i]["Rate"].ToString();
txtQty.Text = ds1.Tables[0].Rows[i]["Quantity"].ToString();
txtTotalAmt.Text = ds1.Tables[0].Rows[i]["TotalAmount"].ToString();
AddNewRowToGrid();
}
}
}
// For Setting IntialRows In Dynamic Gridview
private void SetInitialRow()
{
DataTable dt = new DataTable();
DataRow dr = null;
dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));
dt.Columns.Add(new DataColumn("Column1", typeof(string)));
dt.Columns.Add(new DataColumn("Column2", typeof(string)));
dt.Columns.Add(new DataColumn("Column3", typeof(string)));
dt.Columns.Add(new DataColumn("Column4", typeof(string)));
dt.Columns.Add(new DataColumn("Column5", typeof(string)));
dr = dt.NewRow();
dr["RowNumber"] = 1;
dr["Column1"] = string.Empty;
dr["Column2"] = string.Empty;
dr["Column3"] = string.Empty;
dr["Column4"] = string.Empty;
dr["Column5"] = string.Empty;
dt.Rows.Add(dr);
//Store the DataTabl e in ViewState
ViewState["tblTender"] = dt;
Gridview2.DataSource = dt;
Gridview2.DataBind();
}
// For Adding New Rows in Dynamic GridView
private void AddNewRowToGrid()
{
int rowIndex = 0;
if (ViewState["tblTender"] != null)
{
DataTable dtCurrentTable = (DataTable)ViewState["tblTender"];
DataRow drCurrentRow = null;
if (dtCurrentTable.Rows.Count > 0)
{
for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
{
//extract the TextBox values
DropDownList box1 = (DropDownList)Gridview2.Rows[rowIndex].Cells[1].FindControl("DropDownList1");
TextBox box2 = (TextBox)Gridview2.Rows[rowIndex].Cells[2].FindControl("txtUnit");
TextBox box3 = (TextBox)Gridview2.Rows[rowIndex].Cells[3].FindControl("txtRate");
TextBox box4 = (TextBox)Gridview2.Rows[rowIndex].Cells[4].FindControl("txtQuantity");
TextBox box5 = (TextBox)Gridview2.Rows[rowIndex].Cells[5].FindControl("txtTotalAmount");
drCurrentRow = dtCurrentTable.NewRow();
drCurrentRow["RowNumber"] = i + 1;
dtCurrentTable.Rows[i - 1]["Column1"] = box1.Text;
dtCurrentTable.Rows[i - 1]["Column2"] = box2.Text;
dtCurrentTable.Rows[i - 1]["Column3"] = box3.Text;
dtCurrentTable.Rows[i - 1]["Column4"] = box4.Text;
dtCurrentTable.Rows[i - 1]["Column5"] = box5.Text;
rowIndex++;
}
dtCurrentTable.Rows.Add(drCurrentRow);
ViewState["tblTender"] = dtCurrentTable;
Gridview2.DataSource = dtCurrentTable;
Gridview2.DataBind();
}
}
else
{
Response.Write("ViewState is null");
}
//Set Previous Data on Postbacks
SetPreviousData();
}
// For Setting Previous Data on Postbacks
private void SetPreviousData()
{
int rowIndex = 0;
if (ViewState["tblTender"] != null)
{
DataTable dt = (DataTable)ViewState["tblTender"];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
DropDownList box1 = (DropDownList)Gridview2.Rows[rowIndex].Cells[1].FindControl("DropDownList1");
TextBox box2 = (TextBox)Gridview2.Rows[rowIndex].Cells[2].FindControl("txtUnit");
TextBox box3 = (TextBox)Gridview2.Rows[rowIndex].Cells[3].FindControl("txtRate");
TextBox box4 = (TextBox)Gridview2.Rows[rowIndex].Cells[4].FindControl("txtQuantity");
TextBox box5 = (TextBox)Gridview2.Rows[rowIndex].Cells[5].FindControl("txtTotalAmount");
box1.SelectedValue = dt.Rows[i]["Column1"].ToString();
box2.Text = dt.Rows[i]["Column2"].ToString();
box3.Text = dt.Rows[i]["Column3"].ToString();
box4.Text = dt.Rows[i]["Column4"].ToString();
box5.Text = dt.Rows[i]["Column5"].ToString();
rowIndex++;
}
}
}
}
protected void ButtonAdd_Click(object sender, EventArgs e)
{
AddNewRowToGrid();
}
protected void Gridview2_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
// Binding Material
if (e.Row.RowType == DataControlRowType.DataRow)
{
var ddl = (DropDownList)e.Row.FindControl("DropDownList1");
//int CountryId = Convert.ToInt32(e.Row.Cells[0].Text);
SqlCommand cmd = new SqlCommand("select * from MaterialMaster", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
ddl.DataSource = ds;
ddl.DataTextField = "MaterialName";
ddl.DataValueField = "Material_Id";
ddl.DataBind();
ddl.Items.Insert(0, new ListItem("--Select--", "0"));
}
}
catch (Exception ex)
{
ex.ToString();
}
finally
{
con.Close();
}
}