简体   繁体   English

dropdownlists selectedIndexchanged事件不会被触发

[英]Dropdownlists selectedIndexchanged event does not get fired

I have page that contains four dropdownslists on a page in updatepanel and a button.I am binding data to all dropdowns on Page_Load event and when i select item from any one of dropdowns their respective selectedindexchanged event does not get fired at all.I have set Autopostback property of all dropdowns to true.This makes page_load event to call but does not fire selectedindexchanged event.Below is my markup; 我的页面在updatepanel的页面和一个按钮上包含四个下拉列表。我将数据绑定到Page_Load事件上的所有下拉列表,并且当我从任何一个下拉列表中选择项目时,它们各自的selectedindexchanged事件根本不会被触发。所有下拉列表的Autopostback属性都设置为true。这使page_load事件可以调用,但不会触发selectedindexchanged事件。

<asp:UpdatePanel ID="UpdatePanelDialysisMachine" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
              <table id="tableDialysisMachine" runat="server" clientidmode="Static" style="width: 98%;
                display: table; margin-left: 10px; margin-right: 5px" border="0" cellpadding="2"
                cellspacing="2" class="table">
                <tr>
                    <th style="height: 10px; width: 100%">
                    </th>
                </tr>
                <tr>
                    <td style="height: 10px; width: 100%;" align="center">
                         <asp:Label ID="LabelDialysisSession" runat="server" Text="Dialysis Session" CssClass="sectionHeader"></asp:Label>
                    </td>
                </tr>
                <tr>
                    <th style="height: 10px; width: 100%">
                    </th>
                </tr>
                <tr>
                    <td style="width: 100%" align="center"><asp:Label ID="LabelMachineMessage" runat="server" Visible="false" ClientIDMode="Static"></asp:Label>
                    </td>
                </tr>                    
                <tr>
                    <td>
                    <fieldset>
                        <legend>
                           <asp:Label ID="LabelSelectMachines" runat="server" Text="Dialysis Machine"></asp:Label>
                        </legend>

                   <%-- </td>
                </tr>
                <tr>
                    <th style="height: 10px">
                    </th>
                </tr>

                <tr>
                    <td>--%>
                        <table style="width: 100%;"  border="0" cellpadding="2" cellspacing="2">
                           <tr>
                                <th colspan="2" style="height: 10px">
                                </th>
                            </tr>
                            <tr>
                                <td class="textRightAlign" style="width: 50%">
                                    <asp:Label ID="LabelMachine" runat="server" Text="Select Machine"></asp:Label>
                                </td>
                                <td class="textLeftAlign" style="width: 50%">
                                    &nbsp;&nbsp;<asp:DropDownList ID="DropdownMachinesList" runat="server" 
                                        CssClass="dropDown" EnableViewState="true" 
                                        onselectedindexchanged="DropdownMachinesList_SelectedIndexChanged" 
                                        AutoPostBack="True" >
                                    </asp:DropDownList>
                                </td>
                            </tr>
                             <tr>
                                <th style="height: 10px" colspan="2">
                                </th>
                            </tr>
                        </table>
                        </fieldset>
                    </td>
                </tr>
                <tr>
                <td>
                <fieldset>
                <legend>
                <asp:Label ID="LabelAssignStaff" runat="server" Text="Assign Staff"></asp:Label>
                </legend>
                <table style="width: 100%;"  border="0" cellpadding="2" cellspacing="2">
                           <tr>
                                <th colspan="2" style="height: 10px">
                                </th>
                            </tr>
                              <tr>
                <td class="textRightAlign">
                    <asp:Label ID="LabelPrimaryDoctor" runat="server" Text="Primary Doctor" EnableViewState="true" ></asp:Label>
                </td>
                <td class="textLeftAlign">
                    <asp:DropDownList ID="DropDownListPrimaryDoctor" runat="server" 
                        ClientIDMode="Static" CssClass="dropDown" EnableViewState="true" 
                        AutoPostBack="True">

                    </asp:DropDownList>
                </td>
                <td class="textRightAlign">
                    <asp:Label ID="LabelSecondaryDoctor" runat="server" Text="Secondary Doctor"></asp:Label>
                </td>
                <td class="textLeftAlign">
                    <asp:DropDownList ID="DropDownListSecondaryDoctor" runat="server" ClientIDMode="Static" CssClass="dropDown" EnableViewState="true">

                    </asp:DropDownList>
                </td>
           </tr>
            <tr>
                <td class="textRightAlign">
                    <asp:Label ID="LabelPrimaryNurse" runat="server" Text="Primary Nurse"  ></asp:Label>
                </td>
                <td class="textLeftAlign" width="20px">
                    <asp:DropDownList ID="DropDownListPrimaryNurse" runat="server" ClientIDMode="Static" CssClass="dropDown" EnableViewState="true">


                    </asp:DropDownList>
                </td>
                <td class="textRightAlign">
                    <asp:Label ID="LabelSecondaryNurse" runat="server" Text="Secondary Nurse" meta:resourcekey="LabelSecondaryNurseResource1"></asp:Label>
                </td>
                <td class="textLeftAlign" width="20px">
                    <asp:DropDownList ID="DropDownListSecondaryNurse" runat="server" ClientIDMode="Static" CssClass="dropDown" EnableViewState="true">

                    </asp:DropDownList>
                </td>
            </tr>
                             <tr>
                                <th style="height: 10px" colspan="2">
                                </th>
                            </tr>

                        </table>
                </fieldset>
                </td>
                </tr>
                <tr>
                            <td style="width:100%" align="center">
                                <asp:Button ID="buttonCreateSession" runat="server" CssClass="buttonExpanded" 
                                    Text="Create Session" ClientIDMode="Static" CausesValidation="false" 
                                    onclick="buttonCreateSession_Click" /></td>
                            </tr>
                             <tr>
                                <th style="height: 10px">
                                </th>
                            </tr>
            </table>
        </ContentTemplate>

    </asp:UpdatePanel>

and here is the code behind; 这是背后的代码;

 protected void Page_Load(object sender, EventArgs e)
{

    if (Page.IsPostBack == false)
    {          
        GetDoctors();
        GetNurse();
        GetMachines();
    }        


} 

 private void GetMachines()
{
    DataTable machines = null;
    try
    {
        machines = m_DialysisSessionManager.GetInactiveMachines();
        if (machines != null)
        {
            //ListItem l8 = new ListItem();
            //l8.Text = "-Select-";
            //l8.Value = "-1";
            //l8.Selected = true;
            //DropDownListmachine.Items.Add(l8);
            DropdownMachinesList.DataSource = machines;
            DropdownMachinesList.DataTextField = "SerialNumber";
            DropdownMachinesList.DataValueField = "id";
            DropdownMachinesList.DataBind();
            DropdownMachinesList.Items.Insert(0, new ListItem("-Select-"));

        }
    }
    catch (Exception ex)
    {
        LoggingHelper.WriteError(ex);
    }
}

/// <summary>
/// Gets doctors list
/// </summary>
private void GetDoctors()
{
    DataTable doctors = null;
    try
    {
        doctors = m_DialysisSessionManager.GetDoctorsList();
        if (doctors != null)
        {

            DropDownListPrimaryDoctor.DataSource = doctors;
            DropDownListPrimaryDoctor.DataTextField = "Name";
            DropDownListPrimaryDoctor.DataValueField = "UserId";
            DropDownListPrimaryDoctor.DataBind();
            DropDownListPrimaryDoctor.Items.Insert(0, new ListItem("-Select-"));


            DropDownListSecondaryDoctor.DataSource = doctors;
            DropDownListSecondaryDoctor.DataTextField = "Name";
            DropDownListSecondaryDoctor.DataValueField = "UserId";
            DropDownListSecondaryDoctor.DataBind();
            DropDownListSecondaryDoctor.Items.Insert(0, new ListItem("-Select-"));
        }
    }
    catch (Exception ex)
    {
        LoggingHelper.WriteError(ex);
    }
}

/// <summary>
/// Gets Nurse list
/// </summary>
private void GetNurse()
{
    DataTable nurse = null;
    try
    {
        nurse = m_DialysisSessionManager.GetNurseList();
        if (nurse != null)
        {


            DropDownListPrimaryNurse.DataSource = nurse;
            DropDownListPrimaryNurse.DataTextField = "Name";
            DropDownListPrimaryNurse.DataValueField = "UserId";
            DropDownListPrimaryNurse.DataBind();
            DropDownListPrimaryNurse.Items.Insert(0, new ListItem("-Select-"));


            DropDownListSecondaryNurse.DataSource = nurse;
            DropDownListSecondaryNurse.DataTextField = "Name";
            DropDownListSecondaryNurse.DataValueField = "UserId";
            DropDownListSecondaryNurse.DataBind();
            DropDownListSecondaryNurse.Items.Insert(0, new ListItem("-Select-"));
        }
    }
    catch (Exception ex)
    {

    }
}
 protected void DropdownMachinesList_SelectedIndexChanged(Object sender, EventArgs e)
{
    Session["machineId"] = DropdownMachinesList.SelectedItem.Text;
}

Try adding Event Handler on Page OnInit Event: 尝试在Page OnInit事件上添加事件处理程序

DropdownMachinesList.SelectedIndexChanged += 
                   new EventHandler(DropdownMachinesList_SelectedIndexChanged);

Try changing the UpdateMode to Always. 尝试将UpdateMode更改为Always。

If the UpdateMode property is set to Conditional then you need to call the Update method of the UpdatePanel control explicitly. 如果UpdateMode属性设置为Conditional,则需要显式调用UpdatePanel控件的Update方法。

The postback is caused by a control that is defined as a trigger by using the Triggers property of the UpdatePanel control. 回发是由使用UpdatePanel控件的Triggers属性定义为触发器的控件引起的。

You could always set the event handlers and the AutoPostBack properties in the markup. 您总是可以在标记中设置事件处理程序和AutoPostBack属性。 You have already done this for DropdownMachinesList , so you could follow the same pattern for the others. 您已经为DropdownMachinesList完成了此操作,因此可以对其他模式遵循相同的模式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 DropDownList的SelectedIndexChanged事件未触发 - SelectedIndexChanged event of DropDownList is not fired 动态添加的DropDownlists不会触发SelectedIndexChanged事件 - Dynamically Added DropDownlists Are Not Firing SelectedIndexChanged Event SelectedIndexChanged未触发 - SelectedIndexChanged is not Fired 注册JS函数onclick事件时不会触发RadioButtonList SelectedIndexChanged事件 - RadioButtonList SelectedIndexChanged event not fired when JS function onclick event is registered 绑定列表更新时未触发 ListBox SelectedIndexChanged 事件 - ListBox SelectedIndexChanged event not fired when bound list updates 对于具有相同DisplayMember的项目,ComboBox SelectedIndexChanged事件触发了两次 - ComboBox SelectedIndexChanged event fired twice for items with same DisplayMember 为什么DropDownList.SelectedIndexChanged事件不会触发? - Why DropDownList.SelectedIndexChanged event does not fire? 为什么FormShown事件不会在C#中被触发? - Why FormShown event does not get fired in C#? 从客户端填充下拉列表的SelectedIndexChanged事件不会触发 - Dropdown's SelectedIndexChanged event is not fired when its populated from client side 为什么使控件可见时,selectedindexchanged事件不起作用 - Why does the selectedindexchanged event not work when making controls visible
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM