#asp.net
#asp.net
Вопрос:
Играем с настройкой внешнего вида элемента управления мастера в ASP.Net и я выяснил, как отключить кнопки боковой панели, используя SideBarTemplate и перехватывая событие OnItemDataBound. Все довольно просто. Что я хочу сделать сейчас, так это изменить текст отображаемой кнопки LinkButton, чтобы добавить к названию шага что-то вроде «>>» для текущего шага.
Итак, в моем обработчике событий ItemDataBound для SideBarList у меня есть следующий код:
Dim stepCurrent As WizardStep = e.Item.DataItem
Dim linkCurrent As LinkButton = e.Item.FindControl("SideBarButton")
If Not stepCurrent Is Nothing Then
Trace.Write("SideBar", "Current Step = " amp; stepCurrent.Wizard.ActiveStep.Name)
Trace.Write("Sidebar", "Link Button = " amp; linkCurrent.Text)
linkCurrent.Enabled = False
If stepCurrent.Wizard.ActiveStepIndex = e.Item.ItemIndex Then
linkCurrent.Style.Add(HtmlTextWriterStyle.Color, "#000000")
linkCurrent.Style.Add(HtmlTextWriterStyle.FontWeight, "bold")
linkCurrent.Text.Insert(0, ">> ")
End If
End If
Однако я обнаружил, что вывод трассировки показывает пустую строку для текста lunkbutton, но изменения стиля работают.
Я пытаюсь установить текст в неправильном месте?
Спасибо
Ответ №1:
Я не нашел никакого способа изменить текстовое свойство «SideBarButton», поэтому я добавил другой элемент управления кнопкой ссылки в SelectedItemTemplate в DataList и установил visible =»fasle» в SideBarButton. SelectedItemTemplate будет использоваться для отображения элемента на боковой панели для текущего шага мастера.
<ItemTemplate>
<asp:LinkButton ID="SideBarButton" runat="server"/>
</ItemTemplate>
<SelectedItemTemplate>
<asp:LinkButton ID="ActiveSideBarButton" runat="server">
<asp:LinkButton Visible="false" ID="SideBarButton"unat="server"/>
</SelectedItemTemplate>
В событии OnItemDataBound сделайте что-то вроде
Dim stepCurrent As WizardStep = e.Item.DataItem
If stepCurrent.Wizard.ActiveStepIndex = e.Item.ItemIndex Then
Dim linkCurrent As LinkButton = e.Item.FindControl("ActiveSideBarButton")
linkCurrent.Style.Add(HtmlTextWriterStyle.Color, "#000000")
linkCurrent.Style.Add(HtmlTextWriterStyle.FontWeight, "bold")
LinkCurrent.Text = stepCurrent.Title;
linkCurrent.Text.Insert(0, ">> ")
End If
SideBarButton не будет отображаться из-за visible=»false», и только ActiveSideBarButton для текущего шага будет отображаться с нужными вам параметрами.