【发布时间】:2015-02-26 20:27:20
【问题描述】:
我认为这将是一件简单的事情,但我遇到了一些问题。我对服务器控件的初始 asp.net 标记如下所示:
<ucTextArea:UserControlTextArea ID="taRemarks" runat="server" />
但是,在后面的代码中,我有一个条件语句来检查用户权限以启用或不启用此文本字段,如下所示:
if (CurrentUser.AccountTypeID == 4 || CurrentUser.AccountTypeID == 6)
taRemarks.Attributes.Add("enabled", "");
else
taRemarks.Attributes["disabled"] = "true";
以上是我尝试实现此目的的两种方法,但在浏览器中呈现时均未奏效。如何禁用此服务器控件?
编辑:UserControlTextArea.ascx 定义如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserControlTextArea.ascx.cs" Inherits="stuff....UserControlTextArea" %>
<script type="text/jscript" language="javascript">
$(document).ready(function () {
var counterLabel = $('#<%=lblCounter.ClientID %>');
var textArea = $('#<%=tbTextArea.ClientID %>');
var maxNumber = parseInt('<%=txtMaxCharacters.Value%>');
FieldCounter(textArea, counterLabel, maxNumber);
$(textArea).keyup(function () {
CheckFieldLength($(textArea), maxNumber);
FieldCounter(textArea, $(counterLabel), maxNumber);
});
});
</script>
<div id="OuterContainer" runat="server">
<asp:TextBox ID="tbTextArea" runat="server" TextMode="MultiLine" Width="100%"></asp:TextBox>
<span class="fieldLengthCounter">
characters left:
<asp:Label ID="lblCounter" runat="server"></asp:Label>
</span>
<input type="hidden" runat="server" id="txtMaxCharacters" />
</div>
【问题讨论】:
-
你不能用
taRemarks.Enabled = false;吗? -
你觉得对吗?但没有这样的属性。
-
您的
usercontrol中有哪些控件?您要禁用哪个控件? -
该 uc 中有许多控件。我要禁用的是我上面提到的“taRemarks”。
-
首先,这不是
ASP.NET Textbox,对我来说,按照命名约定,它是UserControl,里面必须有你的文本框。如果可能,显示UserControlTextArea的标记
标签: c# html asp.net webforms markup