I have a Dropdown1 outside gridview contains three options Select,A,B.
Inside gridview two dropdowns Dropdown2,Dropdown3 in which Dropdown2 contains three options say Select,C,D.
Based on Dropdown1 & Dropdown2, I am populating Dropdown3 using onchange event in javascript in Dropdown2.
everything working fine for First row but when I add new row, Dropdown3 value vanishes to default "Select"
Javascript function
function DataformatFetch(Selection) {
var status = Selection.options[Selection.selectedIndex].value;
var row = Selection.parentNode.parentNode;
var rowIndex = row.rowIndex - 1;
if (document.getElementById("<%=DropDown1.ClientID%>").value == "A") {
var Dataformatlist = row.cells[7].getElementsByTagName('SELECT')[0];
switch (status) {
case "Select":
Dataformatlist.options.length = 0;
Dataformatlist.options[0] = new Option("Select","Select");
break;
case "C":
Dataformatlist.options.length = 0;
Dataformatlist.options[0] = new Option("Select","Select");
Dataformatlist.options[1] = new Option("1","1");
Dataformatlist.options[2] = new Option("2","2");
Dataformatlist.options[3] = new Option("3","3");
break;
case "D":
Dataformatlist.options.length = 0;
Dataformatlist.options[0] = new Option("Select","Select");
Dataformatlist.options[1] = new Option("11","11");
Dataformatlist.options[2] = new Option("22","22");
Dataformatlist.options[3] = new Option("33","33");
break;
}
}
else if (document.getElementById("<%=DropDown1.ClientID%>").value == "B") {
var Dataformatlist = row.cells[7].getElementsByTagName('SELECT')[0];
switch (status) {
case "Select":
Dataformatlist.options.length = 0;
Dataformatlist.options[0] = new Option("Select");
break;
case "C":
Dataformatlist.options.length = 0;
Dataformatlist.options[0] = new Option("Select","Select");
Dataformatlist.options[1] = new Option("111","111");
Dataformatlist.options[2] = new Option("222","222");
Dataformatlist.options[3] = new Option("333","333");
break;
case "D":
Dataformatlist.options.length = 0;
Dataformatlist.options[0] = new Option("Select","Select");
Dataformatlist.options[1] = new Option("1111","1111");
Dataformatlist.options[2] = new Option("2222","2222");
Dataformatlist.options[3] = new Option("3333","3333");
break;
}
}
}
ASPX code
<asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="Object Type">
<ItemTemplate>
<asp:DropDownList ID="Dropdownlist2" runat="server" OnChange="DataformatFetch(this);">
<asp:ListItem Value="Select">Select</asp:ListItem>
<asp:ListItem Value="C">C</asp:ListItem>
<asp:ListItem Value="D">D</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
C# code
private void AddNewRowToGrid()
{
try
{
if (ViewState["CurrentTable"] != null)
{
System.Data.DataTable dtCurrentTable = (System.Data.DataTable)ViewState["CurrentTable"];
DataRow drCurrentRow = null;
if (dtCurrentTable.Rows.Count > 0)
{
drCurrentRow = dtCurrentTable.NewRow();
//drCurrentRow["REQUESTNO"] = dtCurrentTable.Rows.Count + 1;
dtCurrentTable.Rows.Add(drCurrentRow);
ViewState["CurrentTable"] = dtCurrentTable;
for (int i = 0; i < dtCurrentTable.Rows.Count - 1; i++)
{
TextBox box2 = (TextBox)DataExchangeGridView.Rows[i].Cells[0].FindControl("PTNTextBox");
TextBox box3 = (TextBox)DataExchangeGridView.Rows[i].Cells[1].FindControl("PTDTextBox");
TextBox box4 = (TextBox)DataExchangeGridView.Rows[i].Cells[2].FindControl("PTRTextBox");
DropDownList box5 = (DropDownList)DataExchangeGridView.Rows[i].Cells[3].FindControl("PIPRDropdownlist");
DropDownList box6 = (DropDownList)DataExchangeGridView.Rows[i].Cells[4].FindControl("SupplierNameDroplist");
DropDownList box7 = (DropDownList)DataExchangeGridView.Rows[i].Cells[5].FindControl("ObjectTypeDropdownlist");
DropDownList box8 = (DropDownList)DataExchangeGridView.Rows[i].Cells[6].FindControl("DataformatDropdownlist");
dtCurrentTable.Rows[i]["PARTNUMBER"] = box2.Text;
dtCurrentTable.Rows[i]["PARTDESCRIPTION"] = box3.Text;
dtCurrentTable.Rows[i]["PARTREVISION"] = box4.Text;
dtCurrentTable.Rows[i]["PARTIPR"] = box5.Text;
dtCurrentTable.Rows[i]["SUPPLIERNAME"] = box6.Text;
dtCurrentTable.Rows[i]["OBJECTTYPE"] = box7.Text;
dtCurrentTable.Rows[i]["DATAFORMAT"] = box8.Text;
}
DataExchangeGridView.DataSource = dtCurrentTable;
DataExchangeGridView.DataBind();
}
}
else
{
Response.Write("ViewState is null");
}
SetPreviousData();
}
catch (Exception rt)
{
rt.ToString();
}
}
private void SetPreviousData()
{
try
{
int rowIndex = 0;
if (this.DataExTypeDropDownList.SelectedItem.Value == "Import")
{
if (ViewState["CurrentTable"] != null)
{
System.Data.DataTable dt = (System.Data.DataTable)ViewState["CurrentTable"];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
System.Web.UI.WebControls.TextBox box2 = (System.Web.UI.WebControls.TextBox)DataExchangeGridView.Rows[rowIndex].Cells[0].FindControl("PTNTextBox");
System.Web.UI.WebControls.TextBox box3 = (System.Web.UI.WebControls.TextBox)DataExchangeGridView.Rows[rowIndex].Cells[1].FindControl("PTDTextBox");
System.Web.UI.WebControls.TextBox box4 = (System.Web.UI.WebControls.TextBox)DataExchangeGridView.Rows[rowIndex].Cells[2].FindControl("PTRTextBox");
box2.Enabled = box3.Enabled = box4.Enabled = false;
box2.Text = string.Empty;
box3.Text = string.Empty;
box4.Text = string.Empty;
System.Web.UI.WebControls.DropDownList box5 = (System.Web.UI.WebControls.DropDownList)DataExchangeGridView.Rows[rowIndex].Cells[3].FindControl("PIPRDropdownlist");
System.Web.UI.WebControls.DropDownList box6 = (System.Web.UI.WebControls.DropDownList)DataExchangeGridView.Rows[rowIndex].Cells[4].FindControl("SupplierNameDroplist");
System.Web.UI.WebControls.DropDownList box7 = (System.Web.UI.WebControls.DropDownList)DataExchangeGridView.Rows[rowIndex].Cells[5].FindControl("ObjectTypeDropdownlist");
System.Web.UI.WebControls.DropDownList box8 = (System.Web.UI.WebControls.DropDownList)DataExchangeGridView.Rows[rowIndex].Cells[6].FindControl("DataformatDropdownlist");
//FillDropDownList(box8);
if (i < dt.Rows.Count - 1)
{
box2.Text = dt.Rows[i]["PARTNUMBER"].ToString();
box3.Text = dt.Rows[i]["PARTDESCRIPTION"].ToString();
box4.Text = dt.Rows[i]["PARTREVISION"].ToString();
box5.Text = dt.Rows[i]["PARTIPR"].ToString();
box6.Text = dt.Rows[i]["SUPPLIERNAME"].ToString();
box7.Text = dt.Rows[i]["OBJECTTYPE"].ToString();
//box8.Text = dt.Rows[i]["DATAFORMAT"].ToString();
string XE = box8.Items.FindByText(dt.Rows[i]["DATAFORMAT"].ToString()).Value;
box8.Text = XE;
}
rowIndex++;
}
}
}
}
else if (this.DataExTypeDropDownList.SelectedItem.Value == "Export")
{
if (ViewState["CurrentTable"] != null)
{
System.Data.DataTable dt = (System.Data.DataTable)ViewState["CurrentTable"];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
System.Web.UI.WebControls.TextBox box2 = (System.Web.UI.WebControls.TextBox)DataExchangeGridView.Rows[rowIndex].Cells[0].FindControl("PTNTextBox");
System.Web.UI.WebControls.TextBox box3 = (System.Web.UI.WebControls.TextBox)DataExchangeGridView.Rows[rowIndex].Cells[1].FindControl("PTDTextBox");
System.Web.UI.WebControls.TextBox box4 = (System.Web.UI.WebControls.TextBox)DataExchangeGridView.Rows[rowIndex].Cells[2].FindControl("PTRTextBox");
System.Web.UI.WebControls.DropDownList box5 = (System.Web.UI.WebControls.DropDownList)DataExchangeGridView.Rows[rowIndex].Cells[3].FindControl("PIPRDropdownlist");
System.Web.UI.WebControls.DropDownList box6 = (System.Web.UI.WebControls.DropDownList)DataExchangeGridView.Rows[rowIndex].Cells[4].FindControl("SupplierNameDroplist");
System.Web.UI.WebControls.DropDownList box7 = (System.Web.UI.WebControls.DropDownList)DataExchangeGridView.Rows[rowIndex].Cells[5].FindControl("ObjectTypeDropdownlist");
System.Web.UI.WebControls.DropDownList box8 = (System.Web.UI.WebControls.DropDownList)DataExchangeGridView.Rows[rowIndex].Cells[6].FindControl("DataformatDropdownlist");
if (i < dt.Rows.Count - 1)
{
box2.Text = dt.Rows[i]["PARTNUMBER"].ToString();
box3.Text = dt.Rows[i]["PARTDESCRIPTION"].ToString();
box4.Text = dt.Rows[i]["PARTREVISION"].ToString();
box5.Text = dt.Rows[i]["PARTIPR"].ToString();
box6.Text = dt.Rows[i]["SUPPLIERNAME"].ToString();
box7.Text = dt.Rows[i]["OBJECTTYPE"].ToString();
box8.Text = dt.Rows[i]["DATAFORMAT"].ToString();
}
rowIndex++;
}
}
}
}
}
catch (Exception er)
{
er.ToString();
}
}