更新面板和事件触发两次



我有一个ASPX页面,其中包含3个通过Infragistic控件的下拉框。 其中 1 个位于 UpdatePanel 内,UpdatePanel 外部的两个应该通过 AsynPostBack 事件控制第 3 个中显示的内容。UpdatePanel 外部的两个下拉框在后面的代码中调用相同的函数,但根据我传递给它的对象,它将在第三个下拉框中显示一些内容。问题是,无论我选择哪个下拉框,该函数似乎都会被触发两次,并且每个调用都将其控制权传递给函数,即使我单击第一个下拉框,第二个也是始终显示的内容。我该如何阻止这种情况?我希望该函数只触发一次,具体取决于我选择的控件。我还尝试让每个下拉框指向自己的功能,但仍然,它们都被触发了......

<td style="width:3px;"><asp:HiddenField ID="pnb_recno" runat="server" /></td>
<td style="width:100px;">Line Of Business:</td>
<td colspan="2" width="150px"><!--OnSelectionChanged="pnb_product_list"-->
    <ig:WebDropDown ID="pnb_ddRgn" runat="server" Width="175px" DropDownContainerHeight="100px" 
        EnableDropDownAsChild="false" TextField="Name" DropDownContainerWidth="175px" Font-Size="11px" 
        StyleSetName="Windows7" OnSelectionChanged="pnb_product_list" AutoPostBack="true"  ClientEvents-SelectionChanged="pnb_chgLOB" > 
        <Items>
            <ig:DropDownItem Text="" Value="" />
            <ig:DropDownItem Text="Global Client Access" Value="Global Client Access" />
            <ig:DropDownItem Text="Solution Center" Value="Solution Center" />
            <ig:DropDownItem Text="Both" Value="Both" />
        </Items>
    </ig:WebDropDown>
</td>
<td style="width:3px;"></td>
<td style="width:100px;">Problem Type:</td>
<td colspan="2" width="150px">
    <ig:WebDropDown ID="pnb_ddPblmTyp" runat="server" Width="175px" DropDownContainerHeight="80px" EnableDropDownAsChild="false" TextField="Name" DropDownContainerWidth="175px" Font-Size="11px" StyleSetName="Windows7" AutoPostBack="true" OnSelectionChanged="pnb_product_list">
        <Items>
            <ig:DropDownItem Text="" Value="" />
            <ig:DropDownItem Text="Infrustructure" Value="Infrustructure" />
            <ig:DropDownItem Text="Products" Value="Products" />
        </Items>
    </ig:WebDropDown>
</td>
<td colspan="2" width="150px">
    <asp:UpdatePanel ID="pnb_udtPnlPrdts" runat="server" UpdateMode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="pnb_ddRgn"  EventName="SelectionChanged" />
        <asp:AsyncPostBackTrigger ControlID="pnb_ddPblmTyp"  EventName="SelectionChanged" />
    </Triggers>
        <ContentTemplate>
            <ig:WebDropDown ID="pnb_ddPrdts" runat="server" Width="175px" EnableClosingDropDownOnSelect="false" TextField="ProductName" EnablePaging="false" DropDownContainerHeight="175px" EnableMultipleSelection="true" MultipleSelectionType="Checkbox" StyleSetName="Windows7" DisplayMode="DropDown">
                <ClientEvents SelectionChanged="selectedIndexChanged" SelectionChanging="selectedIndexChanging" />
            </ig:WebDropDown>
        </ContentTemplate>
    </asp:UpdatePanel>
</td>

protected void pnb_product_list(object sender, EventArgs e)
{
    try
    {
        using (SqlConnection sqlConnection = new SqlConnection(connectionString))
        {
            using (SqlCommand sqlCommand = new SqlCommand("dbo.getDdProducts", sqlConnection))
            {
                sqlCommand.CommandTimeout = 0;
                sqlCommand.CommandType = CommandType.StoredProcedure;
                if (!String.IsNullOrEmpty(pnb_ddRgn.CurrentValue))
                    sqlCommand.Parameters.AddWithValue("@lob", pnb_ddRgn.CurrentValue);
                else
                    sqlCommand.Parameters.AddWithValue("@alert_type", pnb_ddPblmTyp.CurrentValue);
                using (DataTable dataTable = new DataTable())
                {
                    using (SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand))
                    {
                        dataAdapter.Fill(dataTable);
                    }
                    pnb_ddPrdts.DataSource = dataTable;
                    pnb_ddPrdts.DataBind();
                }
            }
        }
    }
    catch (Exception exception)
    {
    }
}

我会尝试寻找 AutoPostBackFlags 一个用于选择更改,另一个用于值更改是否有可能只是事实,因为这两个事件都被触发了,这就是为什么它回发两次??

相关内容

  • 没有找到相关文章

最新更新