如何根据默认值m显示小部件,该默认值通常在选定索引更改后通过回发显示



我正在开发一个供公司内部使用的网站,我网站的仪表板页面上有几个小部件。一个小部件旨在显示工资单信息供经理查看。此工资单小部件有一个下拉列表,该下拉列表根据用户角色填充。然后,用户在下拉列表中选择一个选项,并通过自动回发,小部件中的面板显示该商店选择的工资单信息的概述。

这是我的aspx作为我所指内容的清晰视觉助手:

<asp:UpdatePanel ID="UpdatePanelPayroll" runat="server">
                    <triggers>
                        <asp:AsyncPostBackTrigger ControlID="ddlPayrollStores" EventName="SelectedIndexChanged"></asp:AsyncPostBackTrigger>
                    </triggers>
                    <contenttemplate>
                        <div class="dragbox-content">
                            <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>
                    </contenttemplate>
                </asp:UpdatePanel>

我的 SelectedIndexChanged 方法是一个开关语句,它根据所选值调用 payroll() 方法的一个版本,该方法调用存储过程并通过变量将结果数据插入面板。我不会包含任何此代码,因为它不相关并且工作正常。加载仪表板后,我从下拉列表中选择一个值,页面将回发,信息显示正常。

我正在尝试做的:根据用户角色将下拉列表默认为特定值(除了能够通过值选择的当前基本功能之外),并使页面原始加载包括与该默认值对应的小部件中显示的信息。到目前为止,我已经能够在每个用户角色的下拉列表中设置默认值,但是我在获取要显示的信息时遇到了问题。

我尝试过

:我尝试调用正确的 payroll() 方法,该方法在我默认下拉列表的选定值后立即调用数据库。通过调试,我看到在这种情况下,由于某种原因,它没有通过存储过程调用的条件。我还尝试创建第二个没有参数的 selectedIndexChanged 方法,而不是(对象发送者,EventArgs e),并且在我设置下拉列表的选定值后立即在 isUserInRole 条件中在我的.cs中手动调用它。最后,我尝试使用Response.AppendHeader("Refresh", "0;URL=Dashboard.aspx");在我的 CS 中的几个地方,但这显然只是创建刷新页面的无休止循环。

所以,感谢您阅读本文。任何关于不同角度的想法甚至建议将不胜感激。

提前谢谢你!

如果没有发布的代码 - 您很可能在数据绑定DropDownList之前设置SelectedValue并调用 payroll() 方法(因此它仍然null)。

最新更新