Abrar Kazi Ответов: 1

Как мне решить проблему с случае изменения 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

Большое спасибо за помощь. :)

1 Ответов

Рейтинг:
6

Karthik_Mahalingam

попробовать это

ScriptManager.RegisterClientScriptBlock(this, GetType(), "CollectionDscontiAler", "<script>alert('This Collection has been discontinued.');</script>", false);