Я искал способ выбора целой строки в DataGrid, но я увидел только код GridView
. Вот пример кода:Как сделать целую строку DataGrid (не GridView) clickable
Private Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Attributes("onmouseover") = "this.style.cursor='pointer';this.style.textDecoration='underline';"
e.Row.Attributes("onmouseout") = "this.style.textDecoration='none';"
e.Row.ToolTip = "Click to select row"
e.Row.Attributes("onclick") = Me.Page.ClientScript.GetPostBackClientHyperlink(Me.GridView1, "Select$" & e.Row.RowIndex)
End If
End Sub
так, чтобы он работал на моем DataGrid, у меня были некоторые изменения в своем коде, и сделал это так:
Private Sub DataGrid_ItemCreated(sender As Object, e As DataGridItemEventArgs) Handles DataGrid.ItemCreated
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
e.Item.Attributes("onmouseover") = "this.style.cursor='pointer';this.style.textDecoration='underline';"
e.Item.Attributes("onmouseout") = "this.style.textDecoration='none';"
e.Item.ToolTip = "Click to select row"
e.Item.Attributes("onclick") = Me.Page.ClientScript.GetPostBackClientHyperlink(Me.DataGrid, "Select$" & e.Item.ItemIndex)
End If
End Sub
Но мне кажется, что это не стрельба , (я думаю, что есть проблема на части onclick
), но она выделяется. Я бы хотел сделать это: CommandName = Select
на onclick
в javascript, но как?
EDIT: Это в настоящее время мой новый код.
Private Sub DataGrid_ItemCreated(sender As Object, e As DataGridItemEventArgs) Handles DataGrid.ItemCreated
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
e.Item.Attributes("onmouseover") = "this.style.cursor='pointer';this.style.textDecoration='underline';"
e.Item.Attributes("onmouseout") = "this.style.textDecoration='none';"
e.Item.ToolTip = "Click to select row"
Dim button As LinkButton
button = DirectCast(e.Item.Cells(0).Controls(0), LinkButton)
Dim js As String = Page.ClientScript.GetPostBackClientHyperlink(button, "")
e.Item.Attributes("onclick") = js
End If
End Sub
Но единственное, что изменилось (по тому, что я наблюдал), это то, что он просто возвращает деньги.
Почему бы вам не использовать 'GridView' в первое место? «DataGrid» очень старый и избыточный. Нет никакого преимущества перед «GridView». –
@TimSchmelter, потому что у меня много кодов уже в этом DataGrid. Поэтому я должен использовать это полностью. Если я изменю свою сетку в GridView, у меня будет так много ревизий :( – Dale
. Тогда взгляните на этот подход здесь: https://www.safaribooksonline.com/library/view/aspnet-cookbook/0596003781/ch01s17.html –