问题描述
每个回答我问题的人都非常有帮助,我即将完成此应用程序。我现在的挑战是基于登录使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;
}
}