asp.net页面上回发的替代方法

asp.net页面上回发的替代方法,asp.net,drop-down-menu,postback,cascadingdropdown,autopostback,Asp.net,Drop Down Menu,Postback,Cascadingdropdown,Autopostback,我正在寻找一种替代方法,用户不必在asp.net页面中等待回发。 我的情况: 在我的asp.net页面上有几个下拉列表(事实上是11个),我有一个复选框。2个下拉列表是级联的。i、 e.选择第一个下拉菜单将更改第二个下拉菜单的内容。我在一些下拉列表中有一个新选项(6个下拉列表)。如果用户选择此选项,则会显示一个带有“添加”按钮的文本框。将文本添加到该文本框并点击“添加”将新值添加到下拉列表中,并消失该文本框和按钮。那么,是否有可能使用非回发选项,但会出现相同的情况?用户不喜欢页面回发11次。我的

我正在寻找一种替代方法,用户不必在asp.net页面中等待回发。 我的情况: 在我的asp.net页面上有几个下拉列表(事实上是11个),我有一个复选框。2个下拉列表是级联的。i、 e.选择第一个下拉菜单将更改第二个下拉菜单的内容。我在一些下拉列表中有一个新选项(6个下拉列表)。如果用户选择此选项,则会显示一个带有“添加”按钮的文本框。将文本添加到该文本框并点击“添加”将新值添加到下拉列表中,并消失该文本框和按钮。那么,是否有可能使用非回发选项,但会出现相同的情况?用户不喜欢页面回发11次。我的选择是什么?如果您需要更多信息,请询问。谢谢

编辑:


受保护的子ddlCustomerContact\u SelectedIndexChanged(发件人作为对象,e作为事件参数)处理ddlCustomerContact.SelectedIndexChanged
如果ddlCustomerContact.SelectedIndex=1,则
divAddNewCustomerContact.Visible=True
其他的
divAddNewCustomerContact.Visible=False
如果结束
端接头

如果您不想要标准回发,您唯一真正的选择就是AJAX。有许多可用的框架,因此您可以使用Microsoft框架(捆绑在3.5+中)或jQuery(我相信也捆绑在VS2010+中)


还有其他可用的框架,但这两个框架将是最紧密集成的。其他框架将需要更多的工作来实现。

这就是我如何为我创建的小部件使用更新面板

<asp:DropDownList ID="ddlPayrollStores" runat="server" OnSelectedIndexChanged="ddlPayrollStores_SelectedIndexChanged" AutoPostBack="true">
        </asp:DropDownList>
        <asp:UpdatePanel ID="UpdatePanelPayroll" runat="server">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ddlPayrollStores" EventName="SelectedIndexChanged"></asp:AsyncPostBackTrigger>
            </Triggers>
            <ContentTemplate>
                <div class="dragbox-content">
                    <asp:Label ID="lblLabelHours" runat="server" Text="Reg Hours: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalHours" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <asp:Label ID="lblLabelOverTime" runat="server" Text="Total Overtime Hours: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalOvertime" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <asp:Label ID="lblLabelHoliday" runat="server" Text="Total Holiday: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalHoliday" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <asp:Label ID="lblLabelVacation" runat="server" Text="Total Vacation: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalVacation" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <asp:Label ID="lbllableTotalHours" runat="server" Text="Total Hours: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalStoreHours" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <asp:Label ID="lblLabelPay" runat="server" Text="Total Pay: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalPay" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <div style="align-content: center">
                        <asp:LinkButton ID="lbDetailed" runat="server" Text="Detailed Report" PostBackUrl="~/Reporting/Payroll/StorePayroll.aspx"></asp:LinkButton>
                    </div>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>














这是一个工资单小部件,显示商店的工资总额。因此,当我通过下拉列表选择要查看的商店时,更新面板将发回,而不会发回整个页面。在我的例子中,它只将数字显示为标签。希望这能引导你朝着正确的方向前进,并且可能会让它变得清晰一些

你在使用网络表单吗?如果是这样,您可以使用UpdatePanels。@Humpy。我正在查看/测试UpdatePanel,我做了类似于上面的编辑。我选择了要下拉的已更改事件,我将断点放在了命中的位置,但什么也没有发生。看起来您缺少触发器。您需要更新ContentTemplate中的所有内容。然后你会想使用触发器。触发器是要执行操作的按钮、下拉列表等。例如,在我的更新面板中,我使用按钮添加到gridview。触发器不是发布整个页面,而是at按钮和updatepanel中的控件更新。@Humpy。我不明白。为了简单起见,我只有一个下拉列表和一个隐藏的div(这个div包含标签、文本框和按钮)。如果用户在下拉列表中选择“New”(新建)选项,我将看到div,如果不隐藏div,则不应通过回发来完成。你能给我框一个示例代码吗?谢谢。我遵循telerik rad ajax manager方法。你能帮忙吗。这是我的新问题
<asp:DropDownList ID="ddlPayrollStores" runat="server" OnSelectedIndexChanged="ddlPayrollStores_SelectedIndexChanged" AutoPostBack="true">
        </asp:DropDownList>
        <asp:UpdatePanel ID="UpdatePanelPayroll" runat="server">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ddlPayrollStores" EventName="SelectedIndexChanged"></asp:AsyncPostBackTrigger>
            </Triggers>
            <ContentTemplate>
                <div class="dragbox-content">
                    <asp:Label ID="lblLabelHours" runat="server" Text="Reg Hours: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalHours" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <asp:Label ID="lblLabelOverTime" runat="server" Text="Total Overtime Hours: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalOvertime" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <asp:Label ID="lblLabelHoliday" runat="server" Text="Total Holiday: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalHoliday" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <asp:Label ID="lblLabelVacation" runat="server" Text="Total Vacation: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalVacation" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <asp:Label ID="lbllableTotalHours" runat="server" Text="Total Hours: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalStoreHours" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <asp:Label ID="lblLabelPay" runat="server" Text="Total Pay: " Width="350px"></asp:Label>
                    <asp:Label ID="lblTotalPay" runat="server" Text=""></asp:Label>
                    <br />
                    <br />
                    <div style="align-content: center">
                        <asp:LinkButton ID="lbDetailed" runat="server" Text="Detailed Report" PostBackUrl="~/Reporting/Payroll/StorePayroll.aspx"></asp:LinkButton>
                    </div>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>