Можно ли повторно использовать элементы управления asp.net в нескольких представлениях в MultiView?Я хотел бы предоставить своим клиентам возможность просмотра и ввода формы в виде мастера ASP.NET или формы в зависимости от их предпочтений.Большая часть моих исследований привела к многочисленным попаданиям в MVC, но я использую WebForms и не могу найти однозначный ответ в любом случае.
Моя теория состоит в том, что это должно быть возможно, но так как контроль ужеопределенный в другом месте на странице, я должен иметь возможность просто сказать ему, чтобы повторно отобразить тот же элемент управления в другом месте.
Например, что-то вроде этого возможно:
<asp:MultiView ID="mv" runat="server" ActiveViewIndex="0">
<asp:View ID="WizardView" runat="server">
<asp:Wizard ID="wizzy" runat="server" ActiveStepIndex="0">
<WizardSteps>
<asp:WizardStep ID="WizardStep1" runat="server">
<!-- Wrapped in PlaceHolder goodness :P -->
<asp:PlaceHolder ID="wPH1" runat="server">
<asp:Label ID="MyLabel" runat="server" Text="Hello Stackies"></asp:Label>
</asp:PlaceHolder>
</asp:WizardStep>
</WizardSteps>
</asp:Wizard>
</asp:View>
<asp:View ID="FormView" runat="server">
<form action="#" method="post" id="wizzyform">
<!-- I WANT TO REUSE THIS CONTROL HERE -->
<asp:PlaceHolder ID="fPH1" runat="server"></asp:PlaceHolder>
</form>
</asp:View>
</asp:MultiView>
ОБНОВЛЕНИЕ С ОТВЕТОМ !!
Я просто добавил несколько PlaceHolder
s к моей разметке и создал кнопку переключения в моем коде VB.NET со следующим:
Protected Sub ToggleView() Handles ViewToggleBtn.Click
If RequestWizard_mv.ActiveViewIndex = 0 Then
ViewToggleBtn.Text = "Toggle Wizard View"
RequestWizard_mv.ActiveViewIndex = 1
fPH1.Controls.Add(wPH1)
ElseIf RequestWizard_mv.ActiveViewIndex = 1 Then
ViewToggleBtn.Text = "Toggle Form View"
RequestWizard_mv.ActiveViewIndex = 0
wPH1.Controls.Add(fPH1)
End If
End Sub
Woot !!: D ТАК СЧАСТЛИВЫМ !!Вы не представляете, сколько боли это спасает меня: P
Примечание: я заметил, что он не очень хорошо поддерживает состояние, но это очень легко исправить по сравнению с повторной записью кода>. <</p>