2015-04-22 5 views
0

У меня есть multiView и Validation group в моем коде. Согласно моему коду, когда пользователь нажимает кнопку, все данные в представлениях должны быть сохранены.Группа проверки в Asp.Net MultiView

<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">  
    <asp:View ID="viewGegevens" runat="server"> 
      <asp:TextBox ID="txtCompanyname" MaxLength="100" runat="server" CssClass=""></asp:TextBox> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" ToolTip="Bedrijfsnaam vereist!" 
           Display="Dynamic" ErrorMessage="*" ValidationGroup="Save" ControlToValidate="txtCompanyname" 
           CssClass="required-asterics"></asp:RequiredFieldValidator> 

     <div> 
      <asp:LinkButton ID="btnSave1" Text="Opslaan" runat="server" CssClass="btn-ctrl right" OnClick="txtSave1_Click" ValidationGroup="Save">Save 
      </asp:LinkButton> 
      <asp:LinkButton ID="btnCancel1" Text="Annuleren" runat="server" CssClass="btn-ctrl right" OnClick="txtCancel1_Click"> Cancel 
      </asp:LinkButton>  
     </div> 
     </asp:View> 

     <asp:View ID="viewGegevens2" runat="server"> 
      <asp:TextBox ID="txtBillingPostalCode" runat="server" CssClass="" MaxLength="100"></asp:TextBox> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ToolTip="Postcode vereist!" 
           ErrorMessage="*" ValidationGroup="Save" ControlToValidate="txtBillingPostalCode" 
           Display="Dynamic" CssClass="required-asterics"></asp:RequiredFieldValidator> 

     <div> 
      <asp:LinkButton ID="btnSave2" Text="Opslaan" runat="server" CssClass="btn-ctrl right" OnClick="txtSave2_Click" ValidationGroup="Save">Save 
      </asp:LinkButton> 
      <asp:LinkButton ID="txtCancel2" Text="Annuleren" runat="server" CssClass="btn-ctrl right" OnClick="txtCancel2_Click"> Cancel 
      </asp:LinkButton>  
     </div> 
     </asp:View> 
    </asp:MultiView> 

Моя проблема в том, что мне нужно стрелять необходимую проверку поля в обеих вкладках либо пользователя нажмите btnSave1 или btnSave2. Но теперь, если я нажму btnSave1, он только активирует проверки только на 1-й вкладке. Как я могу это решить?

+0

ASP.NET Multiview предназначен для отображения одного вида одновременно. Если вы проверите html, представленный на клиенте, вы не увидите html второго представления, не так ли? – zed

+0

@zed u r правильный. то можно ли добавить группу валидации в событие изменения табуляции? – DevT

ответ

1

Ответ: нет, вы не можете сделать это как можно скорее.

ASP.NET Multiview предназначен для одновременного отображения и проверки одного представления. Таким образом, только html активного представления доставляется в браузер клиента.

workaround, но может возникнуть проблема, если вы используете событие MultiView ActiveViewChanged.

Другим вариантом является рефакторинг вашей страницы и использование двух разделов, по одному для каждого шага, делая одно или другое видимым при смене от первого до второго шага и проверку всей страницы один раз на последнем шаге. Это потребует от вас дополнительной работы с javascript.

1

Обнаружено обходное решение для этого, которое работает в моем случае. Я сделал разные взгляды проверенными, когда на вкладках щелкнут код, заставляющий пользователя оставлять представление без проверки.

protected void Tab3_Click(object sender, EventArgs e) 
{ 
    Page.Validate("YourValidationGroup"); 
    if (Page.IsValid) 
    { 
     Tab1.CssClass = "Initial"; 
     Tab2.CssClass = "Initial"; 
     Tab3.CssClass = "Clicked"; 
     MainView.ActiveViewIndex = 2; 
    } 
} 

Я знаю это в старой ветке, но полагал, что выброшу его для будущих людей, испытывающих подобную проблему.

Смежные вопросы