Различные элементы управления asp на странице ASP.NET - PullRequest
2 голосов
/ 22 мая 2010

Я создаю страницу продуктов, где пользователь выбирает параметр, например, в списке радиокнопок, а затем элемент управления с различными параметрами этого продукта появляется в заполнителе или в элементе div, если выбрана одна из радиокнопок.

На данный момент это код:

ASPX:

<form runat="server">
<asp:CheckBoxList ID="Lentes" runat="server" OnClick="EscolheLentes">
    <asp:ListItem Value="LU">
    Lentes Unifocais
    </asp:ListItem>
    <asp:ListItem Value="LP">
    Lentes Progressivas
    </asp:ListItem>
</asp:CheckBoxList>
<asp:PlaceHolder runat="server" ID="PHLentes"></asp:PlaceHolder>
</form>

aspx.vb:

Protected Sub EscolheLentes()
        Dim ControlLente As Control
        If (Me.Lentes.Items.FindByValue("LU").Selected) Then
            ControlLente = LoadControl("LentesUnifocais.ascx")
        ElseIf (Me.Lentes.Items.FindByValue("LP").Selected) Then
            ControlLente = LoadControl("LentesProgressivas.ascx")
        End If
        Me.PHLentes.Controls.Add(ControlLente)
    End Sub

Нужно использовать какой-нибудь ajax для загрузки элемента управления, верно? Я иду в правильном направлении?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 22 мая 2010

Есть несколько способов добиться этого:

  • Истинные веб-формы ASP.Net : выполнять обратную передачу с помощью AutoPostback и играть с отображением других элементов управления
  • Javascript : загрузить все данные, возможно отображаемые на странице, и обработать условное отображение с помощью javascript. Это разумно, только если объем данных для отображения на одной странице несколько ограничен. Возможно, вы захотите взглянуть на JQuery или что-то подобное, если вы пойдете по этому пути.
  • Ajax : асинхронно загружать только те биты, которые вам нужны. Вы можете использовать среду MSAjax или Jquery (или аналогичный) для выполнения кода на стороне клиента.

Первый вариант, вероятно, самый быстрый для реализации.

1 голос
/ 22 мая 2010

Вы пытались добавить AutoPostBack = "true" и Visible = "true" на свой элемент управления?

...