Иногда при работе в ASP.NET требуется изменить стандартные элементы типа div, a, img и т.п. в коде C# или VB.NET. Например, изменить текстовое содержание или стиль. Сразу это выполнить не получится, необходимо этим элементам присвоить атрибут "выполнить на сервере". Выглядит это для ссылок так: <a id="WidgetImage_href" href="#1" runat="server" >
Рассмотрим простой пример. Есть форма. В ней находятся элементы div и другие, которые не привязаны к базе данных. Таким образом, в дизайнере формы мы видим реальную картину отображения шаблона на сайте. Это удобно. Кроме этого код получается более "чистым", т.е. свободным от вспомогательных элементов (смотрите выделение на картинке). Но нам необходимо изменить у картинки(img) ссылку на файл(src), добавить всплывающую подсказку (Alt). Все это легко сделать из кода. Ниже указаны примеры на эту тему. P.S Post1 - это класс с набором данных полученных из базы данных или из интернета.
Рассмотрим простой пример. Есть форма. В ней находятся элементы div и другие, которые не привязаны к базе данных. Таким образом, в дизайнере формы мы видим реальную картину отображения шаблона на сайте. Это удобно. Кроме этого код получается более "чистым", т.е. свободным от вспомогательных элементов (смотрите выделение на картинке). Но нам необходимо изменить у картинки(img) ссылку на файл(src), добавить всплывающую подсказку (Alt). Все это легко сделать из кода. Ниже указаны примеры на эту тему. P.S Post1 - это класс с набором данных полученных из базы данных или из интернета.
Public Sub FormView1_ItemCreated(sender As Object, e As EventArgs) Handles FormView1.ItemCreated Dim Post1 As Post = DirectCast(sender, System.Web.UI.WebControls.FormView).DataItem ' ... Для других элементов CreateItem(sender.Row, Post1) Dim err As String = CreateItemByHtml(sender.Row, Post1) If err <> "" Then Response.Write(err) End If End Sub
Public Function CreateItemByHtml(item As Object, post1 As Post) As String ' Находим объекты из HtmlGenericControl Try ' Обработка картинок Dim img As HtmlImage = TryCast(item.FindControl("WidgetImage_src"), HtmlImage) If img IsNot Nothing Then img.Src = post1.Image img.Alt = post1.Caption 'img.ViewStateMode = UI.ViewStateMode.Disabled End If ' Обработка ссылок For Each name1 As String In {"WidgetHeader", "WidgetDate"} Dim c1 As HtmlAnchor = TryCast(item.FindControl(name1), HtmlAnchor) If c1 IsNot Nothing Then c1.HRef = post1.Url c1.Title = post1.Caption 'c1.ViewStateMode = UI.ViewStateMode.Disabled Select Case name1 Case "WidgetDate" : c1.InnerText = post1.DateCreated.ToString("dd.MM.yyyy") Case "WidgetHeader" : c1.InnerText = post1.Caption End Select End If Next Return "" Catch ex As Exception Return ex.Message End Try End Function
Комментариев нет:
Отправить комментарий