1

嗨,我已经为可调整大小的文本框创建了用户控件。

<asp:Panel ID="PanelText" runat="server" CssClass="frameText">
<asp:TextBox runat="server" ID="TextBoxResizable" CssClass="noborder" Width="100%"
    Height="100%" TextMode="MultiLine">
</asp:TextBox>
</asp:Panel>
<cc1:ResizableControlExtender ID="ResizableTextBoxExtender" runat="server" TargetControlID="PanelText"
ResizableCssClass="resizingText" HandleCssClass="handleText" OnClientResizing="OnClientResizeText" />

并为此控件创建了 Validator 属性,例如:

[ValidationProperty("Text")]
 public partial class ResizableTextBoxControl : System.Web.UI.UserControl
{ public string Validator
{
    get { return this.TextBoxResizable.Text; }
} 
protected void Page_Load(object sender, EventArgs e)
 {

 }
}

在 aspx 页面中,我正在使用此控件,例如:

<uc1:ResizableTextBoxControl ID="tbDescription" MinimumHeight="50" MinimumWidth="100"
 MaximumHeight="300" MaximumWidth="400" runat="server" onKeyPress="javascript:Count(this,1500);" onKeyUp="javascript:Count(this,1500);" ValidationGroup="vgSubmit" ></uc1:ResizableTextBoxControl>

 <asp:RequiredFieldValidator ID="rfvDescription" runat="server" controlToValidate="tbDescription" ValidationGroup="vgSubmit" ErrorMessage="Description" Text="*" ForeColor="Red" SetFocusOnError="True"></asp:RequiredFieldValidator>

当我点击提交时,“tbDescription”似乎不是强制性的。代码有什么问题?

编辑

好的...我知道问题出在哪里,隐藏了一个控件,并且没有禁用该控件的必需字段验证器,我使用 jquery 完成了它,现在除了星号之外一切都很好。我不明白为什么星号不可见。 .

4

3 回答 3

1

尝试将您的验证器放在您的控件上,特别是如果您只是尝试验证一个文本框

   <asp:Panel ID="PanelText" runat="server" CssClass="frameText">
<asp:TextBox runat="server" ID="TextBoxResizable" CssClass="noborder" Width="100%"
    Height="100%" TextMode="MultiLine">

    </asp:TextBox>
     <asp:RequiredFieldValidator 
ID="rfvDescription" runat="server" controlToValidate="TextBoxResizable"
 ValidationGroup="vgSubmit" 
ErrorMessage="Description" Text="*" 
ForeColor="Red" SetFocusOnError="True">

</asp:RequiredFieldValidator
    </asp:Panel>
    <cc1:ResizableControlExtender ID="ResizableTextBoxExtender"
 runat="server" TargetControlID="PanelText"

    ResizableCssClass="resizingText" HandleCssClass="handleText OnClientResizing="OnClientResizeText" />

在用户控制器中,页面呈现后可能无法识别。

于 2012-05-15T03:49:45.153 回答
0

尝试在提交按钮事件中使用Page.IsValid 。

if (!Page.IsValid) {
  return;
}
于 2012-05-15T05:35:39.043 回答
0

对不起,所有的烦恼,

页面上有一个控件被隐藏,并且该控件的必需字段验证器未被禁用。我使用 jQuery 禁用了它

$(document).ready(function () {
    if (!$("#<%=TextBoxResizable.ClientID %>").is(":visible")) {
        ValidatorEnable(<%=rfvTextBoxResizable.ClientID %>, false);
    }
})

在 Panel 外放置必填字段验证器后,Asteric 可见。

于 2012-05-15T12:10:36.560 回答