根据 ASP.net 中的值将字段设置为只读:C#,ASP.Net

Make a field read only based on value in ASP.net: C#, ASP.Net

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

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

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;
    }
}

首先,您不需要 Page_PreInit 99.9% 的时间在网络表单中使用代码。即使使用动态控件,您也只需要 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;
    }
}