簡體   English   中英

C#ASP.NET使用來自ASP.NET背后代碼的布爾變量

[英]C# ASP.NET using Boolean variable from code behind in ASP.NET

我知道如何使用從代碼到后面的字符串變量,並說在網頁上顯示該字符串。 我想做的事情與之類似,除了不顯示字符串,而是要將布爾值從后面的代碼傳遞到ASP.NET頁,以便其true / false值可以控制“打印”按鈕(true / false)。在ReportViewer中。 我的診斷程序的工作原理是顯示正確的字符串“ True”或“ False”。 “ ShowPrintButton”和“ ShowExportControls”只是不起作用,並且按鈕未啟用。 我在這里需要做什么? 我認為該值正在傳遞,但也許是以字符串形式傳遞,並且我需要做一些事情以使其以布爾值形式傳遞。

這是代碼...

背后的代碼:

    //Variables
    public Boolean exportEnabled { get; set; }
    public Boolean printEnabled { get; set; }

    //Page Load
    protected void Page_Load(object sender, EventArgs e)
    {
        // Add a handler for SubreportProcessing
        reportViewerPrintAndExport.LocalReport.SubreportProcessing +=
            new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);

        if (!IsPostBack)
        {
            // Display the report
            DisplayReport(Session[SessionKeys.KEY_CERT_NO].ToString(), (CalibrationType)Session[SessionKeys.KEY_CERT_TYPE]);
        }
        DataBind();
    }

    private void DisplayReport(string certNo, CalibrationType calType)
    {
        string[] rolesList = Roles.GetRolesForUser();

        //manage print and export buttons.
        if ((rolesList.Contains("admin")) || (rolesList.Contains("Admin")))
        {
            exportEnabled = true;
            printEnabled = true;
        }
        else if ((rolesList.Contains("Operator")) || (rolesList.Contains("operator")))
        {
            exportEnabled = false;
            printEnabled = false;
        }
    }

ASPX:

<!-- DIAGNOSTIC -->
<asp:label runat="server" text="-" /><asp:label runat="server" text="<%# printEnabled %>" /><asp:label runat="server" text="-" />

<asp:Panel ID="ReportPanelPrintAndExport" runat="server" HorizontalAlign="Left">

    <!--Why does this not work? -->
    <rsweb:ReportViewer ShowPrintButton="<%# printEnabled %>" ShowExportControls="<%# exportEnabled %>" ID="reportViewerPrintAndExport" runat="server" Height="100%" Width="100%" 
        ShowBackButton="False" ZoomMode="FullPage" 
        ShowRefreshButton="False" ProcessingMode="Local">
    </rsweb:ReportViewer>

在后面的代碼中,只需在想要的位置設置該屬性

    if ((rolesList.Contains("admin")) || (rolesList.Contains("Admin")))
    {
        reportViewerPrintAndExport.ShowPrintButton = true;
        reportViewerPrintAndExport.ShowExportControls = true;
    }
    else if ((rolesList.Contains("Operator")) || (rolesList.Contains("operator")))
    {
        reportViewerPrintAndExport.ShowPrintButton = false;
        reportViewerPrintAndExport.ShowExportControls = false;
    }

無需嘗試在客戶端上執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM