I have a dropdown list inside update panel . it works fine on several machines but on specific machines it works on alternate change events.
Example :
Initially it is set to 0 index "Select Serial No"
When i Choose say SrNo1 , change event doesnt fire
When i choose say SrNo2, change event fires
When i Choose say SrNo3 , change event doesnt fire
When i choose say SrNo4, change event fires
and so on...
Code :
protected void ddlCollection_SelectedIndexChanged(object sender, EventArgs e)
{
ddlSerial.SelectedIndex = -1;
hdfQDSID.Value = "";
txtQuantity.Text = "";
lblTypeT.Text = "";
lblQds.Text = "";
lnkWHStock.Text = "";
lblPieces.Text = "";
lblUnit.Text = "";
string CollectionID = ddlCollection.SelectedValue.ToString();
if (ddlCollection.SelectedValue.ToString() != "0")
{
DataTable dt = new DataTable();
DataSet ds = objBAL.getGridCollectionSrNo(CollectionID.ToString());
if (ds.Tables[1].Rows[0]["COLLECTION_STATUS"].ToString() == "DISCONTINUED")
{
ScriptManager.RegisterStartupScript(Page, GetType(), "CollectionDscontiAler", "<script>alert('This Collection has been discontinued.');</script>", false);
}
dt = ds.Tables[0];
ddlSerial.DataSource = dt;
ddlSerial.DataTextField = "SR_NO";
ddlSerial.DataValueField = "SR_NO";
ddlSerial.DataBind();
ddlSerial.Items.Insert(0, new System.Web.UI.WebControls.ListItem("Select Sr No", "0"));
ddlSerial.SelectedIndex = 0;
}
}
protected void ddlSerial_SelectedIndexChanged(object sender, EventArgs e)
{
hdfQDSID.Value = "";
txtQuantity.Text = "";
lblTypeT.Text = "";
lblQds.Text = "";
lnkWHStock.Text = "";
lblPieces.Text = "";
lblUnit.Text = "";
string QDSName = string.Empty;
string QDSID = string.Empty;
string TypeOfFabric = string.Empty;
string CollectionID = ddlCollection.SelectedValue.ToString();
string SrNo = ddlSerial.SelectedValue.ToString();
if (SrNo != "0" && CollectionID != "0")
{
DataTable dt = new DataTable();
DataSet dsQdsName = objBAL.getGridCollectionQDS(CollectionID, SrNo);
dt = dsQdsName.Tables[0];
if (dt.Rows.Count > 0)
{
QDSName = dt.Rows[0]["QDSName"].ToString();
QDSID = dt.Rows[0]["QDS_ID"].ToString();
hdfMultipleOf.Value = dt.Rows[0]["MULTIPLE_OF"].ToString();
if (dsQdsName.Tables[1].Rows[0]["PRODUCT_STATUS"].ToString() == "DISCONTINUED")
{
ScriptManager.RegisterStartupScript(Page, GetType(), "QDSDiscontinuedAlertU", "<script>alert('This QDS has been discontinued.');</script>",true);
}
}
TypeOfFabric = lblOrderTypeDesription.Text.ToString();
if (QDSName != "")
{
lblQds.Text = QDSName.ToString();
hdfQDSID.Value = QDSID.ToString();
if (QDSID != "")
{
B2B_Order_Master_SAP_BAL obj_BAL = new B2B_Order_Master_SAP_BAL();
DataSet dsWHStockinfo = obj_BAL.getWHStock(QDSID, hfCustomerId.Value.ToString());
lnkWHStock.Text = dsWHStockinfo.Tables[0].Rows[0]["WHStock"].ToString();
lblPieces.Text = dsWHStockinfo.Tables[0].Rows[0]["No_Of_Pieces"].ToString();
}
if (TypeOfFabric == "Fabric Order")
{
lblUnit.Text = "Mtrs.";
}
else if (TypeOfFabric == "Non-Fabric Order" || TypeOfFabric == "Catalogue Order")
{
lblUnit.Text = "Pcs";
}
}
else
{
lblQds.Text = "QDS Not Found.";
}
}
}
What I have tried:
My Updatepanel is below :
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<contenttemplate>
</contenttemplate>
<triggers>
<asp:AsyncPostBackTrigger ControlID="btnShowInfo" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="btnAddItems" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="ddlSerial" EventName="SelectedIndexChanged" />
</triggers>
<asp:UpdateProgress ID="updPanelProgress" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
<progresstemplate>
<div class="pre-loader"></div>
</progresstemplate>
-- This dropdownlist is causing problem. It is inside a table
<table><tbody><tr><td>
<asp:DropDownList ID="ddlSerial" runat="server" onchange="SetScroll();" AutoPostBack="true" OnSelectedIndexChanged="ddlSerial_SelectedIndexChanged">
</td></tr></tbody></table>