0

全部。这是我在 StackOverflow 上的第一篇正式文章。很棒的网站,经常帮助我,但我找不到这个问题的答案。

我有一个带有 TextBox 的 asp.net 表单,它有一个RequiredFieldValidator。接下来是启用了编辑和删除的详细信息视图。文本框不在 DetailsView 内。当我单击编辑和/或删除命令时,我需要触发RequiredFieldValidator。

这是我的两个控件的代码。我可以将其全部发布在后面的代码中,但如果不需要的话,发布的内容很多。

TIA 为您提供帮助。

阿里…………………………………………………………………………………………………………………… .....................

<asp:TextBox ID="txtReason" runat="server" Width="500px"></asp:TextBox>         <asp:RequiredFieldValidator ID="rfvReason" runat="server"  ControlToValidate="txtReason" 
        ErrorMessage="Reason is required for Edit/Delete"></asp:RequiredFieldValidator>

<asp:DetailsView ID="dvCOHDetail" runat="server" Height="50px" Width="700px" DataKeyNames="RecID" DataSourceID="sdsCOHIncident" AutoGenerateRows="False" OnDatabound="dvCOHDetail_DataBound" AutoGenerateEditButton="False" AutoGenerateDeleteButton="False" OnItemUpdated="dvCOHDetail_ItemUpdated"  OnItemDeleting="dvCOHDetail_ItemDeleting">
   <Fields>
   <asp:TemplateField HeaderText="ACTION:">
    <ItemTemplate>
     <asp:LinkButton ID="LinkButton2" runat=server Text="Edit" CommandName="edit"/>
     <asp:LinkButton ID="LinkButton1" runat="server" Text="Delete" CommandName="delete" OnClientClick="return confirm ( 'Are you sure you want to delete this record?' )"/>
    </ItemTemplate>
   </asp:TemplateField> 

..................................................... ……………………………………………………………………………………………………………………

4

2 回答 2

0

您必须对要验证的所有控件进行分组,并进行验证。当您要验证LinkBut​​ton上的TextBox单击时,您必须设置要验证的 TextBox 的ValidationGroup属性以及使用相同值(任何字符串)进行验证的LinkBut​​tons 。

<asp:TextBox ID="txtReason" runat="server" Width="500px"></asp:TextBox>

<asp:DetailsView ID="dvCOHDetail" runat="server" Height="50px" Width="700px" DataKeyNames="RecID" DataSourceID="sdsCOHIncident" AutoGenerateRows="False" OnDatabound="dvCOHDetail_DataBound" AutoGenerateEditButton="False" AutoGenerateDeleteButton="False" OnItemUpdated="dvCOHDetail_ItemUpdated"  OnItemDeleting="dvCOHDetail_ItemDeleting">
    <Fields>
        <asp:TemplateField HeaderText="ACTION:">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton2" runat="server" ValidationGroup="ValidationGroup1" Text="Edit" CommandName="edit"/>
                <asp:LinkButton ID="LinkButton1" runat="server" ValidationGroup="ValidationGroup1" Text="Delete" CommandName="delete" OnClientClick="return confirm ( 'Are you sure you want to delete this record?' )"/>
            </ItemTemplate>
       </asp:TemplateField> 
    </Fields>
</asp:DetailsView>

<asp:RequiredFieldValidator ID="rfvReason" runat="server"  ControlToValidate="txtReason"
    ErrorMessage="Reason is required for Edit/Delete" ValidationGroup="ValidationGroup1" EnableClientScript="False"></asp:RequiredFieldValidator>
于 2013-10-03T19:12:44.463 回答
0

下午好,我相信如果您在 DetailsView 和 RequiredFieldValidator 上设置两个按钮的 ValidationGroup 属性,当单击按钮时,验证器应该触发其验证事件。ValidationGroup 属性可以是您想要描述您尝试验证的验证组的任何字符串。

于 2013-10-03T18:35:36.420 回答