выпадающее меню на выбранном событии с обменом не запускается и значение сохраняется при обратной передаче c # - PullRequest
0 голосов
/ 16 мая 2018

Я не могу запустить событие dropdown onselectedindexchanged, и когда я делаю выбор, он сбрасывает значение раскрывающегося списка onpostback, хотя у меня есть if (!ispostback) в событии загрузки страницы.

это страница содержимого на главной странице в asp на случай, если это имеет значение.

<asp:UpdatePanel runat="server">
  <ContentTemplate>                   
    <asp:DropDownList ID="EventSVCProgList" runat="server" 
      EnableViewState="true" 
      OnSelectedIndexChanged="EventSVCProgList_SelectedIndexChanged" 
      AutoPostBack="true"></asp:DropDownList>
  </ContentTemplate>
</asp:UpdatePanel>

protected void Page_Load(object sender, EventArgs e)
{

    if (!IsPostBack)
    {
        SqlConnection constr = new SqlConnection(ConfigurationManager.ConnectionStrings["CBTestDBConnectionString"].ConnectionString);

        SqlCommand eventsvcprogCMD = new SqlCommand("select*from SvcProg where eventatteligable=1", constr); // table name 
        SqlDataAdapter eventsvcadapt = new SqlDataAdapter(eventsvcprogCMD);
        DataSet eventsvcset = new DataSet();
        constr.Open();
        eventsvcadapt.Fill(eventsvcset);  // fill dataset
        EventSVCProgList.DataTextField = eventsvcset.Tables[0].Columns["SvcProgID"].ToString(); // text field name of table dispalyed in dropdown
        EventSVCProgList.DataValueField = eventsvcset.Tables[0].Columns["eventatteligable"].ToString();
        EventSVCProgList.DataSource = eventsvcset.Tables[0];      //assigning datasource to the dropdownlist
        EventSVCProgList.DataBind();  //binding dropdownlist

        constr.Close();
    }

}

protected void EventSVCProgList_SelectedIndexChanged(object sender, EventArgs e)
{
    MessageBox.Show("Eat Poop");
    var somevalue = EventSVCProgList.SelectedValue;
}

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Кажется, что любой родительский элемент управления или страница уровня ViewState отключена.пожалуйста, проверьте в режиме отладки, какое значение вы получаете для EventSVCProgList.EnableViewState и других родительских элементов управления '.

0 голосов
/ 17 мая 2018

спасибо за помощь. он все еще не работает, поэтому я просто собираюсь попробовать вместо этого использовать JavaScript. Должен быть какой-то фундаментальный недостаток в настройке главной страницы или страницы контента.

0 голосов
/ 16 мая 2018

Есть пара вещей.

1) Вам нужно добавить диспетчер скриптов на страницу вверху, если она еще не добавлена ​​(это даст вам ошибку во время выполнения, если вы не добавили диспетчер скриптов на страницу)

2) Вам необходимо изменить содержимое панели обновления, как показано ниже

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:DropDownList ID="EventSVCProgList" runat="server" AutoPostBack="True" OnSelectedIndexChanged="EventSVCProgList_SelectedIndexChanged">

            </asp:DropDownList>

        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="EventSVCProgList" EventName="SelectedIndexChanged" />
        </Triggers>
    </asp:UpdatePanel>
...