我知道如何使用代碼中的字符串變量來隱藏並在網頁上顯示該字符串。我想要做的是類似的,除了不是顯示一個字符串,我想從後面的代碼傳遞布爾值到ASP.NET頁面,以便其true/false值可以控制Print按鈕(true/false)在ReportViewer中。我的診斷工作,它顯示字符串「真」或「假」,這是正確的。雖然「ShowPrintButton」和「ShowExportControls」不起作用,並且按鈕未啓用。我需要在這裏做什麼?我覺得值被通過,但也許它被作爲字符串傳遞,我需要做一些事情,使它當作一個布爾....C#ASP.NET使用布爾變量從代碼隱藏在ASP.NET中
下面的代碼...
代碼背後:
//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>
你的代碼中沒有必要有太多的空白,這只是意味着人們需要做更多的滾動而不是代碼合理的數量。 – user1666620
而不是做'如果((rolesList.Contains( 「管理員」))||(rolesList.Contains( 「管理」)))'你可以做'如果(rolesList.Contains( 「管理」,StringComparer.InvariantCultureIgnoreCase) )' –