2013-10-03 4 views
0

все. Это официально мой первый пост StackOverflow. Отличный сайт и часто помогал мне, но я не могу найти ответ на этот вопрос.Textbox Outside DetailsView - RequiredFieldValidator Not Firing

У меня есть форма asp.net с TextBox, у которой есть RequiredFieldValidator. После этого появляется DetailsView с включенным редактированием и удалением. Текстовое поле НЕ находится внутри элемента DetailsView. Мне нужно, чтобы RequiredFieldValidator срабатывал, когда я нажимаю команды «Редактировать и/или Удалить».

Вот мой код для двух элементов управления. Я могу опубликовать все это с кодом, но его можно отправить, если не нужно.

TIA для вашей помощи.

Ali ............................................ ............................

<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> 

............... .................................................. .......

ответ

0

Вы должны сгруппировать все элементы управления, которые вы хотите Validate и происходит проверка. Как вы хотите проверить TextBox на LinkButton щелчка мыши вы должны установить ValidationGroup свойства TextBox, который вы хотите проверить и LinkButtons, что происходит проверку с тем же значением (любая строки).

<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> 
+0

Perfect; Теперь я понимаю! Если вы не можете сказать, я немного новичок .net. Спасибо вам за ваши ответы! – AliQS

+0

Добро пожаловать. Вы можете проверить следующий URL-адрес, чтобы узнать больше о ValidationGroup. http://msdn.microsoft.com/en-us/library/ms227424(v=vs.100).aspx –

0

Добрый день, я считаю, что если вы установите атрибут ValidationGroup для обеих кнопок в DetailsView, а также в RequiredFieldValidator, когда кнопки будут нажаты, валидатор должен запустить его событие проверки , Атрибутом ValidationGroup может быть любая строка, которую вы хотите описать группой проверок, которые вы пытаетесь проверить.