[英]Why onitemcommand of repeater control not working in this case?
[英]OnItemCommand of asp:Repeater not working with validator
asp:Repeater
OnItemCommand
中的函數不是隨機工作的。 這是一個正常的編碼。
<asp:Repeater runat="server" ID="control01" OnItemCommand="control01_OnItemCommand">
<ItemTemplate>
<li><asp:LinkButton runat="server" ID="btn_button" CommandArgument='1'>Click</asp:LinkButton></li>
</ItemTemplate>
</asp:Repeater>
花了一些時間在調試上,我發現它與頁面上的輸入文本框相關。
<asp:TextBox ID="txt_input" runat="server"></asp:TextBox>
只有當它的值正確(有效)時,該功能才能正常工作。
如果我在這里的文本框中刪除<asp:RequiredFieldValidator>
和<asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="rvDecimal" ControlToValidate="txt_input" runat="server" ErrorMessage="Please enter a valid value" ValidationExpression="^(-)?\d+(\.\d\d)?$"></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="rfd_input" runat="server" ControlToValidate="txt_input" Text="Please enter a valid value"></asp:RequiredFieldValidator>
OnItemCommand
被解雇了,該功能運行良好。
問題是,如何保持驗證並使OnItemCommand
的功能正常工作?
如果您希望即使驗證失敗也會發生回發,您可以禁用客戶端驗證:
<asp:RegularExpressionValidator ID="rvDecimal" runat="server" EnableClientScript="false" ... />
<asp:RequiredFieldValidator ID="rfd_input" runat="server" EnableClientScript="false" ... />
如果要查看每個字段旁邊的指示符,表明其數據無效,則驗證程序應具有Text
屬性。
另一方面,如果需要失敗的驗證列表,可以向頁面添加ValidationSummary,並為每個驗證器添加ErrorMessage
。
最后,我通過在控件中添加CausesValidation="false"
來解決問題。
<asp:LinkButton runat="server" ID="btn_button" CausesValidation="false">
這將跳過驗證觸發OnItemCommand
的函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.