根据ASP.net中的值使字段只读:C#,ASP.Net

问题描述

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

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

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%的时间在Web表单中编写代码。即使使用动态控件,您也只需要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;
    }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...