I have cretaed Custom Gridview to add new static link button.
Req :
i)Added one property Enable Action links
if this is enabled new colum will add to the grid view.
Column is created but static link inside item template is not displying.
Code :
Public Class StaticLinkColumnTemplate
Implements System.Web.UI.ITemplate
#Region " Variables "
Private _id As String
Private _label As String
Private WithEvents lnkText As New System.Web.UI.WebControls.LinkButton
#End Region
#Region " Constructor "
Public Sub New(ByVal id As String, ByVal label As String)
_id = id
_label = label
lnkText.Text = label
End Sub
#End Region
#Region " ITemplate Members "
Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn
' lnkText = New System.Web.UI.WebControls.LinkButton()
lnkText.ID = _id
lnkText.Text = _label
AddHandler lnkText.Click, AddressOf linkButtonClicked
container.Controls.Add(lnkText)
End Sub
#End Region
#Region " Public Changed event "
Public Event OnClick As EventHandler
Private Sub linkButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
RaiseEvent OnClick(sender, e)
End Sub
#End Region
Protected Sub lnkText_Bind(ByVal sender As Object, ByVal e As EventArgs) Handles lnkText.DataBinding
lnkText.Text = _label
lnkText.Visible = True
End Sub
End Class
Public Class ActionGridView
Inherits System.Web.UI.WebControls.GridView
#Region " Variables/Constants "
Private _keyColumn As String
Private _keyColumnValue As String
Private _selectionColumnAutoPostBack As Boolean
Private _enableUserActions As Boolean
Private _popupPanelID As String
Private _prowIndex As Integer
'Private WithEvents selectionTemplate As SelectionColumnTemplate
#End Region
#Region " Constructor "
Public Sub New()
MyBase.New()
End Sub
#End Region
#Region " Public Properties "
Public Property EnableUserActions() As Boolean
Get
Return _enableUserActions
End Get
Set(ByVal value As Boolean)
_enableUserActions = value
End Set
End Property
Public ReadOnly Property SelectionColumnAutoPostBack() As Boolean
Get
Return _selectionColumnAutoPostBack
End Get
End Property
#End Region
#Region " Public Methods "
Public Function GetKeyValue(ByVal row As GridViewRow) As String
If Not String.IsNullOrEmpty(_keyColumn) Then
Return row.Attributes(_keyColumn)
Else
Return String.Empty
End If
End Function
#End Region
#Region " Protected Methods "
Protected Overrides Sub OnDataBound(ByVal e As EventArgs)
MyBase.OnDataBound(e)
AddEnableActionsColumn(_enableUserActions)
End Sub
Protected Overrides Sub OnRowDataBound(ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
MyBase.OnRowDataBound(e)
'If e.Row.RowType = DataControlRowType.DataRow Then
' Dim lnkBtn As System.Web.UI.WebControls.LinkButton = New System.Web.UI.WebControls.LinkButton()
' Dim behaviorID As String = String.Concat("pce", e.Row.RowIndex)
' Dim pce As PopupControlExtender = TryCast(e.Row.FindControl("popupAction"), PopupControlExtender)
' pce.BehaviorID = behaviorID
' Dim OnMouseOutScript As String = String.Format("$find('{0}').hidePopup();", behaviorID)
' Dim OnMouseOverScript As String = String.Format("return CheckDrp('{0}');", behaviorID)
' lnkBtn.Attributes.Add("OnClientClick", OnMouseOverScript)
' lnkBtn.Attributes.Add("onClick", "return false;")
' e.Row.Cells("View Actions").Controls.Add(lnkBtn)
'End If
End Sub
'Protected Overloads Sub OnRowDataBound(ByVal e As GridViewRowEventArgs)
' MyBase.OnRowDataBound(e)
'End Sub
#End Region
#Region " Private Methods "
Private Sub CreateLinkButtonColumn(ByVal headerText As String)
Dim linkButtonCol As TemplateField = New TemplateField
Dim lnkColumnTemplate As StaticLinkColumnTemplate = New StaticLinkColumnTemplate("lnkUserAction", "View Actions")
AddHandler lnkColumnTemplate.OnClick, AddressOf OnLinkButtonClicked
linkButtonCol.ItemTemplate = lnkColumnTemplate
linkButtonCol.InsertItemTemplate = lnkColumnTemplate
linkButtonCol.HeaderText = headerText
linkButtonCol.ItemStyle.CssClass = "text"
linkButtonCol.HeaderStyle.CssClass = "text"
Me.Columns.Add(linkButtonCol)
End Sub
Private Sub AddEnableActionsColumn(ByVal value As Boolean)
If value Then
CreateLinkButtonColumn("View Actions")
Else
'TBD:
End If
End Sub
#End Region
#Region " Public Changed event "
Public Event SelectionChanged As EventHandler
Private Sub SelectedRowChanged(ByVal sender As Object, ByVal e As EventArgs)
RaiseEvent SelectionChanged(sender, e)
End Sub
Public Event LinkButtonClick As EventHandler
Private Sub OnLinkButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
RaiseEvent LinkButtonClick(sender, e)
End Sub
#End Region
End Class
Marked as answer by vruk27 on Jul 17, 2012 08:54 AM
vruk27
Member
6 Points
7 Posts
Custom GridView
Feb 29, 2012 03:11 AM|LINK
Hi All,
I have cretaed Custom Gridview to add new static link button.
Req :
i)Added one property Enable Action links
if this is enabled new colum will add to the grid view.
Column is created but static link inside item template is not displying.
Code :
Public Class StaticLinkColumnTemplate Implements System.Web.UI.ITemplate #Region " Variables " Private _id As String Private _label As String Private WithEvents lnkText As New System.Web.UI.WebControls.LinkButton #End Region #Region " Constructor " Public Sub New(ByVal id As String, ByVal label As String) _id = id _label = label lnkText.Text = label End Sub #End Region #Region " ITemplate Members " Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn ' lnkText = New System.Web.UI.WebControls.LinkButton() lnkText.ID = _id lnkText.Text = _label AddHandler lnkText.Click, AddressOf linkButtonClicked container.Controls.Add(lnkText) End Sub #End Region #Region " Public Changed event " Public Event OnClick As EventHandler Private Sub linkButtonClicked(ByVal sender As Object, ByVal e As EventArgs) RaiseEvent OnClick(sender, e) End Sub #End Region Protected Sub lnkText_Bind(ByVal sender As Object, ByVal e As EventArgs) Handles lnkText.DataBinding lnkText.Text = _label lnkText.Visible = True End Sub End Class Public Class ActionGridView Inherits System.Web.UI.WebControls.GridView #Region " Variables/Constants " Private _keyColumn As String Private _keyColumnValue As String Private _selectionColumnAutoPostBack As Boolean Private _enableUserActions As Boolean Private _popupPanelID As String Private _prowIndex As Integer 'Private WithEvents selectionTemplate As SelectionColumnTemplate #End Region #Region " Constructor " Public Sub New() MyBase.New() End Sub #End Region #Region " Public Properties " Public Property EnableUserActions() As Boolean Get Return _enableUserActions End Get Set(ByVal value As Boolean) _enableUserActions = value End Set End Property Public ReadOnly Property SelectionColumnAutoPostBack() As Boolean Get Return _selectionColumnAutoPostBack End Get End Property #End Region #Region " Public Methods " Public Function GetKeyValue(ByVal row As GridViewRow) As String If Not String.IsNullOrEmpty(_keyColumn) Then Return row.Attributes(_keyColumn) Else Return String.Empty End If End Function #End Region #Region " Protected Methods " Protected Overrides Sub OnDataBound(ByVal e As EventArgs) MyBase.OnDataBound(e) AddEnableActionsColumn(_enableUserActions) End Sub Protected Overrides Sub OnRowDataBound(ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) MyBase.OnRowDataBound(e) 'If e.Row.RowType = DataControlRowType.DataRow Then ' Dim lnkBtn As System.Web.UI.WebControls.LinkButton = New System.Web.UI.WebControls.LinkButton() ' Dim behaviorID As String = String.Concat("pce", e.Row.RowIndex) ' Dim pce As PopupControlExtender = TryCast(e.Row.FindControl("popupAction"), PopupControlExtender) ' pce.BehaviorID = behaviorID ' Dim OnMouseOutScript As String = String.Format("$find('{0}').hidePopup();", behaviorID) ' Dim OnMouseOverScript As String = String.Format("return CheckDrp('{0}');", behaviorID) ' lnkBtn.Attributes.Add("OnClientClick", OnMouseOverScript) ' lnkBtn.Attributes.Add("onClick", "return false;") ' e.Row.Cells("View Actions").Controls.Add(lnkBtn) 'End If End Sub 'Protected Overloads Sub OnRowDataBound(ByVal e As GridViewRowEventArgs) ' MyBase.OnRowDataBound(e) 'End Sub #End Region #Region " Private Methods " Private Sub CreateLinkButtonColumn(ByVal headerText As String) Dim linkButtonCol As TemplateField = New TemplateField Dim lnkColumnTemplate As StaticLinkColumnTemplate = New StaticLinkColumnTemplate("lnkUserAction", "View Actions") AddHandler lnkColumnTemplate.OnClick, AddressOf OnLinkButtonClicked linkButtonCol.ItemTemplate = lnkColumnTemplate linkButtonCol.InsertItemTemplate = lnkColumnTemplate linkButtonCol.HeaderText = headerText linkButtonCol.ItemStyle.CssClass = "text" linkButtonCol.HeaderStyle.CssClass = "text" Me.Columns.Add(linkButtonCol) End Sub Private Sub AddEnableActionsColumn(ByVal value As Boolean) If value Then CreateLinkButtonColumn("View Actions") Else 'TBD: End If End Sub #End Region #Region " Public Changed event " Public Event SelectionChanged As EventHandler Private Sub SelectedRowChanged(ByVal sender As Object, ByVal e As EventArgs) RaiseEvent SelectionChanged(sender, e) End Sub Public Event LinkButtonClick As EventHandler Private Sub OnLinkButtonClicked(ByVal sender As Object, ByVal e As EventArgs) RaiseEvent LinkButtonClick(sender, e) End Sub #End Region End Classpeacock339
Member
22 Points
6 Posts
Re: Custom GridView
Feb 29, 2012 04:22 AM|LINK
hope this help
http://www.aspdotnetwork.com/2011/10/insertupdatedelete-in-gridview.html
vruk27
Member
6 Points
7 Posts
Re: Custom GridView
Feb 29, 2012 12:11 PM|LINK
The same req in 70 grid pages so planing to create Custom gridview control.
duzi
Member
355 Points
90 Posts
Re: Custom GridView
Feb 29, 2012 12:19 PM|LINK
why r u using label and not a link control? even if u want it to look like a label or image, you have to add a link control - that can navigate you...
Is that what you wanted?
I'm sorry' I missed few lines.
Did you try to put public instead of private?
bhaskar.mule
Contributor
2270 Points
659 Posts
Re: Custom GridView
Feb 29, 2012 12:28 PM|LINK
HI
i hope it will help .It has the procedure for how to develop a custom gidview with paging
http://csharpektroncmssql.blogspot.com/2011/12/custom-gridview-in-aspnet.html
http://csharpektroncmssql.blogspot.com/2011/11/custom-page-in-side-gridview-using-c.html
Site:Rare technical solutions
vruk27
Member
6 Points
7 Posts
Re: Custom GridView
Feb 29, 2012 07:05 PM|LINK
Any example?
vruk27
Member
6 Points
7 Posts
Re: Custom GridView
Mar 12, 2012 06:54 AM|LINK
Compled.
Thanks
Veer