Надеюсь, все должно быть довольно просто.В моей таблице данных есть столбец, в котором есть электронные письма для уведомления.Они разделены знаком «;».Я хочу поставить "<br>"
после каждого ';'чтобы сетка не расширялась слишком далеко от страницы.Мне удалось запустить функцию, которая позволяла мне видеть каждую строку до того, как она была создана, но когда я пытался получить значение для его редактирования, он возвращал ноль.Я собираюсь попытаться получить эту функцию, как я стер ее в пятницу, но мне было интересно, если у кого-то есть ссылки или примеры, как это сделать.
У меня есть:
-------------------------------------------------------------------------------
| Column1 | Column2 | Column3 | Notify |
-------------------------------------------------------------------------------
| NULL | NULL | NULL | email1@emailserver.com;email2@emailserver.com |
-------------------------------------------------------------------------------
Я хочу:
---------------------------------------------------------
| Column1 | Column2 | Column3 | Notify |
---------------------------------------------------------
| NULL | NULL | NULL | email1@emailserver.com; |
| | | | email2@emailserver.com |
---------------------------------------------------------
Я знаю, что я использовал функцию ItemCreated и пытался получить значения из DataGridItemEventArgs.Сейчас работаем над этой функцией.
Обновление
Хорошо, поэтому я вернулся к этому в качестве теста:
Private Sub ItemCreated(ByVal sender As Object, ByVal e As DataGridItemEventArgs) Handles dgTasks.ItemCreated
If e.Item.Cells.Count > 1 Then
Dim int As Integer = 0 'I put a breakpoint here to evalute the information
End If
End Sub
Когда я впервые достигаю точки останова,Атрибут .Text показывает, что это Уведомление, которое в точности должно быть в качестве поля заголовка.На следующем и последующих перерывах атрибут .Text имеет значение "".Теперь эта сетка привязана к данным на Page_Load, но повлияет ли это на это?Разве значение не должно быть в DataGridItemEventArgs для этой записи, которая будет создана?Я знаю, что когда я делаю ViewSource страницы, когда я готов, там отображается информация, но я не знаю, можно ли это установить после рисования таблицы, но я сомневаюсь в этом.Любая помощь будет высоко ценится.Благодарю.Вот функции Page_Load и BindData, если они вам нужны.
Page_Load
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then
'Do Nothing
Else
BindData("")
End If
End Sub
BindData
Private Sub BindData(ByVal strSort As String)
Dim tsDS As CustomDataSet = New CustomDataSet
For Each dr As DataRow In tsDS.GetData("").Tables(0).Rows
If dr.Item(2).ToString().StartsWith("Vacancy") Then
dr.Delete()
End If
Next
Dim dv As DataView = tsDS.GetData("").Tables(0).DefaultView
If strSort.Length > 0 Then
dv.Sort = strSort
End If
dgTasks.DataSource = dv
dgTasks.DataBind()
End Sub
Вот что я получаю в первой строке элемента.
![enter image description here](https://i.stack.imgur.com/S0yJv.png)
Обновление: исправлено
Protected Sub Item_DataBound(ByVal sender As Object, ByVal e As DataGridItemEventArgs) Handles dgTasks.ItemDataBound
If e.Item.Cells.Count > 1 Then
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim notification As String = DirectCast(DirectCast(e.Item.DataItem, System.Data.DataRowView).Row, Utilities.CustomDS.Row).Notification
e.Item.Cells(7).Text = "<a href=""mailto:" & notification & """>" & notification.Replace(";", ";<br>") & "</a>"
End If
End If
End Sub