Jul 21, 2011

How to dynamically add column in AspxGridview of Devexpress



Partial Class Default
Inherits System.Web.UI.Page


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
If Not Page.IsCallback Then
BindGrid()
End If
Catch ex As Exception
lblMsg.Text = "Error on load."
'CommonCGDNA.AddToErrorLog(ex)
lblMsg.Visible = True
End Try
End Sub
Protected Sub BindGrid()
If Not ddlCntrlPara.SelectedValue = "" Then
Dim ds As New DataSet
Dim DataItemTemplate As New MyTemplate()
DataItemTemplate.GetSetstrLink = "Default.aspx"
ds = ObjCntrlPara.GetDedData(ddlCntrlPara.SelectedValue)
gvParaDetails.DataSource = ds.Tables(0)
gvParaDetails.DataBind()
gvParaDetails.KeyFieldName = "Id"
Dim EditCol As New GridViewDataHyperLinkColumn
EditCol.Caption = "Edit"
' EditCol.FieldName = "Edit"
EditCol.DataItemTemplate = DataItemTemplate
gvParaDetails.Columns.RemoveAt(gvParaDetails.Columns.Count - 1)
gvParaDetails.Columns.Add(EditCol)


'Dim column As GridViewDataHyperLinkColumn = Nothing
'If gvParaDetails.Columns("IconLink") Is Nothing Then
' column = New GridViewDataHyperLinkColumn()
' column.FieldName = "IconLink"
'Else
' column = TryCast(gvParaDetails.Columns("IconLink"), GridViewDataHyperLinkColumn)
'End If
'column.DataItemTemplate = New MyTemplate()
'gvParaDetails.Columns.Insert(0, column)
'gvParaDetails.DataBind()
End If
End Sub



End Class






Public Class MyTemplate
Implements System.Web.UI.ITemplate
#Region " VARIABLES "

Dim strLink As String
#End Region
#Region " Property strLink "
Public Property GetSetstrLink() As String
Get
Return strLink
End Get
Set(ByVal value As String)
strLink = value
End Set
End Property
#End Region
Public Sub MyTemplate(ByVal str As String)
GetSetstrLink = str
End Sub
Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn

'Dim control As New HtmlAnchor()
'control.Name = "IconLink"
'control.InnerText = "Link"
'control.Attributes.Add("onclick", "alert('dd')")
'container.Controls.AddAt(0, control)
Dim link As New HyperLink()
Dim gridContainer As GridViewDataItemTemplateContainer = CType(container, GridViewDataItemTemplateContainer)
link.NavigateUrl = String.Format("{0}{1}", strLink, gridContainer.KeyValue)
link.Text = String.Format("Edit")
container.Controls.Add(link)
End Sub
End Class

1 comment:

  1. Good article, even if the formatting looks bad.
    Helped me get a handle on this nice technique.
    Thanks.

    ReplyDelete

What is the use of n-tier architecture and 3-tier architecture?

how to implement 3-tier architecture in asp.net using c#. 3-Tier architecture is also called layered architecture. Some people called it ...