【问题标题】:Make a field read only based on value in ASP.net: C#, ASP.Net根据 ASP.net 中的值使字段只读:C#、ASP.Net
【发布时间】:2023-03-14 18:24:01
【问题描述】:

每个回答我问题的人都非常乐于助人,我即将完成这个应用程序。我现在的挑战是根据登录名将 3 个字段设为只读。

我有以下代码可以完全满足我的需要,并将当前登录的用户分配给一个文本字段。如果登录用户不等于特定值,我想要做的是制作一些其他文本字段(只读)。例如,如果 submit_by_email_username 不等于 administrator1@samplecompany.com,则将文本框 (Salary_in) 设置为只读。这些天我读代码比写代码要多,所以如果这是一个简单的请求,我深表歉意。我想根据后面的代码中的逻辑将三个字段设为只读。

protected void Page_PreInit(object sender, EventArgs e)
{
    if (submitted_by_email_username != null)
    {
        _ = Context.User.Identity.Name;
        if (User.Identity.IsAuthenticated)
            submitted_by_email_username.Text = User.Identity.Name;
    }
}

【问题讨论】:

    标签: c# asp.net .net code-behind


    【解决方案1】:

    首先,您在 99.9% 的时间都不需要在网络表单中使用 Page_PreInit 中的代码。即使使用动态控件,您也只需要Page_Load

    但您可以使用 Enabled 属性将 TextBox 设为只读。

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.IsAuthenticated)
        {
            submitted_by_email_username.Enabled = false;
            submitted_by_email_username.Text = User.Identity.Name;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多