UpdatePanel和面板可见性

本文关键字:可见性 和面板 UpdatePanel | 更新日期: 2023-09-27 18:09:37

我有两个面板。每个面板包含一个更新面板。第一个面板是密码文本框。

我将第二个面板在page_load上的可见性设置为false。如果用户输入了正确的密码,第二个面板应该是可见的,第一个面板应该是可见的。

代码:

<asp:Panel ID="passwordPanel" runat="server">
      <asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server">
      <ContentTemplate> 
          Geben Sie das Passwort ein:<br />
          <br />
          <asp:TextBox ID="txtPassword" AutoPostBack="false" runat="server" TextMode="Password"></asp:TextBox>
          <br />
          <br />
          <asp:Button ID="btnConfirmPassword" runat="server" AutoPostBack="true" Text="Senden" CssClass="button" OnClick="btnConfirmPassword_Click"/>
      </ContentTemplate>
      </asp:UpdatePanel>
  </asp:Panel>

  <asp:Panel ID="panelUploadDownload" runat="server">
    <h2>Upload Paketformeln CSV</h2>
    <input type="file" id="myFile" name="myFile" />
    <asp:Button runat="server" ID="btnUpload" OnClick="btnUploadClick" CssClass="button" Text="Upload" />
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
        <ContentTemplate> 
            <br />
            <asp:Label ID="lblStatus" runat="server" Text="statusLabel"></asp:Label>
            <br />
            <asp:Panel ID="panelChanges" runat="server" CssClass="pnlCSS">
                <asp:Label ID="lblChangesHeader" runat="server" Font-Bold="True" ForeColor="Black" Text="Änderungen"></asp:Label>
                <br />
                <asp:Label ID="lblChanges" runat="server" ForeColor="#009900" Text="changes"></asp:Label>
                <br />
                <br />
                <asp:Button ID="btnConfirm" runat="server" OnClick="btnConfirm_Click" CSSClass="button" Text="Änderungen bestätigen" />
            </asp:Panel>
        </ContentTemplate>
    </asp:UpdatePanel>
    <br />
    <br />
    <br />
    <br />
      <h2>Download Paketformeln CSV</h2>
    <p><asp:Button ID="btnDownloadCsv" runat="server" OnClick="btnDownloadCsv_Click" Text="Download CSV" CSSClass="button"/></p>
  </asp:Panel>

和c#代码:

 protected void btnConfirmPassword_Click(object sender, EventArgs e)
        {
            if (txtPassword.Text == "XX")
            {
                uploadDownloadPanel.Visible = true;
                passwordPanel.Visible = false;
            }
        }

加载事件

protected void Page_Load(object sender, EventArgs e)
    {
        mainController = new MainController();
        setStatus("", Color.Black);
        lblChanges.Visible = false;
        lblChangesHeader.Visible = false;
        btnConfirm.Visible = false;
        panelChanges.Visible = false;
        panelUploadDownload.Visible = false;

    }

由于某些原因它不起作用。有线索吗?触发器?

UpdatePanel和面板可见性

SecureString类不允许看到值;这就是它的全部意义。如果您希望能够处理输入到PasswordBox中的值,请使用PasswordBox的Password成员而不是SecurePassword成员:

 protected void btnConfirmPassword_Click(object sender, EventArgs e)
        {
            if (txtPassword.Password == "XX")
            {
                uploadDownloadPanel.Visible = true;
                passwordPanel.Visible = false;
            }
        }

我只是从passwordPanel中删除了updatepanel,它工作了。

在加载事件中,执行以下操作

if(IsPostback)
{
    uploadDownloadPanel.Visible = false;
}

实际上,每次当你按下按钮时,你的加载事件也会触发

你可以在panelUploadDownload面板中设置UpdateModeAlways。会成功的。

 <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server">