Как мне решить проблему с случае изменения dropdownlist для обжига один раз, затем пропускает одно событие изменить, затем срабатывает то пропускает(альтернативное событие change стрельбы)... И так далее ?
У меня есть выпадающий список внутри панели обновления . он отлично работает на нескольких машинах, но на определенных машинах он работает на альтернативных событиях изменения.
Пример :
Изначально она имеет значение индекса 0 "выберите серийный номер"
Когда я выбираю say SrNo1, событие change не срабатывает
Когда я выбираю say SrNo2, срабатывает событие change
Когда я выбираю say SrNo3, событие change не срабатывает
Когда я выбираю say SrNo4, происходит изменение событий
и так далее...
Код :
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); //uspB2BCustomerPortal_uspGetCollectionQDS 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(); //bool result = CheckQDSOrderForCustomer(); //if (result) //{ if (QDSID != "") { //Code for WHStock & No of Pcs. B2B_Order_Master_SAP_BAL obj_BAL = new B2B_Order_Master_SAP_BAL(); DataSet dsWHStockinfo = obj_BAL.getWHStock(QDSID, hfCustomerId.Value.ToString()); //usp_B2BCustomerPortal_getCreateOrderWHStock lnkWHStock.Text = dsWHStockinfo.Tables[0].Rows[0]["WHStock"].ToString(); lblPieces.Text = dsWHStockinfo.Tables[0].Rows[0]["No_Of_Pieces"].ToString(); //if (dsWHStockinfo.Tables[0].Rows[0]["No_Of_Pieces"].ToString() != "") //{ // lblPieces.ForeColor = System.Drawing.Color.Red; //} } if (TypeOfFabric == "Fabric Order") { lblUnit.Text = "Mtrs."; } else if (TypeOfFabric == "Non-Fabric Order" || TypeOfFabric == "Catalogue Order") { lblUnit.Text = "Pcs"; } //} //else //{ // ScriptManager.RegisterStartupScript(Page, GetType(), "Last3DaysTwo2", "<script>AlertUser();</script>", false); // YesAlertUser.Focus(); //} } else { lblQds.Text = "QDS Not Found."; } } }
Что я уже пробовал:
Моя панель обновления находится ниже :
<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>
-- Этот выпадающий список вызывает проблемы. Он находится внутри стола
<table><tbody><tr><td> <asp:DropDownList ID="ddlSerial" runat="server" onchange="SetScroll();" AutoPostBack="true" OnSelectedIndexChanged="ddlSerial_SelectedIndexChanged"> </td></tr></tbody></table>
Karthik_Mahalingam
как вы связываете данные?
Abrar Kazi
существует еще один выпадающий список, выбранное изменение индекса которого присваивает значения этому выпадающему списку.
Karthik_Mahalingam
хорошо, каскадное падение вниз ?
разместите весь соответствующий код.
Abrar Kazi
проверьте обновленный вопрос
Karthik_Mahalingam
какой из них является родителем/ребенком
Abrar Kazi
ddlCollection_SelectedIndexChanged : в этом выпадающем списке изменение ddlSerial заполняется .. но проблема заключается в событии изменения ddlSerial
Abrar Kazi
Пожалуйста, рассмотрите UpdatePanel & IIS .. Я думаю, что один из этих 2 вызывает проблемы .
Karthik_Mahalingam
на каком ddl у вас есть проблема
ddlcollection или ddlserial ?>
Abrar Kazi
проблема находится на ddlserial.. ChangeEvent происходит один раз затем это происходит не во 2 й раз затем это происходит в 3 й раз не для 4 го и так далее
Karthik_Mahalingam
что вы подразумеваете под 2-м 3-м?
отправить обратно или просто выбрать товар из DDL serial ?
Abrar Kazi
когда я выбираю элемент из ddlserial, он возвращается обратно.
2-й н 3-й пример означает : первый раз, когда я выберите элемент свойства selectedIndex изменить события еще раз .. когда я выбрать другой пункт Свойства selectedIndex снова изменить событие не срабатывает, когда я выберите его, пожаров и т. д.. и так далее..
Abrar Kazi
Представление sys.Веб-формы.PageRequestManagerServerErrorException: при обработке запроса на сервере произошла неизвестная ошибка. Код состояния, возвращенный с сервера, был: 400
Это дает эту ошибку в консоли.
Karthik_Mahalingam
попробуйте войти в режим отладки
Abrar Kazi
уважаемый я уже говорил, его рабочей на удаленный сервер, но после развертывания это проблема
Karthik_Mahalingam
ладно
Abrar Kazi
нет
Karthik_Mahalingam
хорошо, используйте блок try catch и выбросьте ошибку..
из этого мы можем узнать точную ошибку.
Abrar Kazi
в коде нет никакой ошибки
Karthik_Mahalingam
я надеюсь, что вы получаете ошибку для статуса "прекращено"
Abrar Kazi
это не ошибка.. да, когда набор прекращается, он переходит в предупреждения заявление.. после предупреждения, если я изменить предмет ddlserial это не огонь событие change
Abrar Kazi
ладно Картик я все понял:
ДО :
Элемента управления scriptmanager.RegisterStartupScript(страницы, метод gettype(), "QDSDiscontinuedAlertU", "<сценарий и GT;уведомление('этот КТ был прекращен.');&ЛТ;/скрипт>", правда);
ПОСЛЕ:
Элемента управления scriptmanager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.Метод gettype(), "QDSDiscontinuedAlertU", "<сценарий и GT;уведомление('этот КТ был прекращен.');&ЛТ;/скрипт>", ложные);
Это сработало для меня.
Abrar Kazi
Большое спасибо за помощь. :)