<telerik:GridTemplateColumn HeaderText="DMOS"> <ItemTemplate> <asp:Label ID="lblDMOS" runat="server" Text='<%#Bind("DMOS")%>'></asp:Label> <asp:PopupControlExtender ID="popInfo" runat="server" PopupControlID="pnlPop" TargetControlID="lblDMOS" DynamicContextKey='<% #Eval("DMOS")%>' DynamicControlID="pnlpop" DynamicServiceMethod="GetMOS" Position="Right"></asp:PopupControlExtender> </ItemTemplate> </telerik:GridTemplateColumn>Pop-up that it calls <asp:Panel ID="pnlPop" runat="server" style="display:none"></asp:Panel>Item created event of the Radgrid Protected Sub myRadVacancy_ItemCreated(sender As Object, e As GridItemEventArgs) Handles myRadVacancy.ItemCreated If TypeOf e.Item Is GridDataItem Then Dim pce As PopupControlExtender = TryCast(e.Item.FindControl("popInfo"), PopupControlExtender) Dim behaviorID As String = "pce_" + e.Item.RowIndex.ToString pce.BehaviorID = behaviorID Dim lbl As Label = DirectCast(e.Item.FindControl("lblDMOS"), Label) Dim OnMouseOverScript As String = String.Format("$find('{0}').showPopup();", behaviorID) Dim OnMouseOutScript As String = String.Format("$find('{0}').hidePopup();", behaviorID) lbl.Attributes.Add("onmouseover", OnMouseOverScript) lbl.Attributes.Add("onmouseout", OnMouseOutScript) End If End SubSergvice that it all calls 'Serice for the MOS <System.Web.Services.WebMethod(), System.Web.Script.Services.ScriptMethodAttribute()> _ Public Shared Function GetMOS(contextKey As String) As String Dim sb As New StringBuilder() sql = "Select strMOS, strJobTitle, strRemarks from MOSDescription where SUBSTRING(strMOS, 1,3) like '" & contextKey.Substring(0, 3) & "'" myDataTable = New DataTable myDataTable = getData(sql) If myDataTable.Rows.Count > 0 Then sb.Append("<table style='background-color:#f3f3f3; border: #ADC9F7 3px solid; ") sb.Append("width:260px; font-size:10pt; font-family:Verdana;' cellspacing='0' cellpadding='3'>") sb.Append("<tr><td colspan='3' style='background-color:#ADC9F7; color:white;'>") sb.Append("<b>MOS " + myDataTable.Rows(0)(0).ToString() + "</b>") sb.Append("</td></tr>") sb.Append("<tr><td style='width:400px;'> " + myDataTable.Rows(0)(1).ToString() + "</td></tr>") sb.Append("<tr><td style='width:400px;'> " + myDataTable.Rows(0)(2).ToString() + "</td></tr>") sb.Append("</table>") End If Return sb.ToString() End Function


Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 7/24/2013 10:05:45 AM
Event time (UTC): 7/24/2013 5:05:45 PM
Event ID: bd332a71f6e44a9690da782e0ebcadb6
Event sequence: 135
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1273337584/ROOT-1-130191590609111328
Trust level: Full
Application Virtual Path: /
Application Path: C:\Users\Administrator\Desktop\Flowtivity\Flowtivity.Web\
Machine name: EPGSA-CPD-2010
Process information:
Process ID: 5192
Process name: iisexpress.exe
Account name: CPD2010\administrator
Exception information:
Exception type: HttpException
Exception message: Cannot use a leading .. to exit above the top directory.
at System.Web.Util.UrlPath.ReduceVirtualPath(String path)
at System.Web.Util.UrlPath.Reduce(String path)
at System.Web.VirtualPath.Combine(VirtualPath relativePath)
at System.Web.HttpRequest.MapPath(VirtualPath virtualPath, VirtualPath baseVirtualDir, Boolean allowCrossAppMapping)
at System.Web.HttpServerUtility.MapPath(String path)
at Telerik.Web.UI.ExportInfrastructure.Image.GetImageFromUrl()
at Telerik.Web.UI.ExportInfrastructure.Image.GetImage()
at Telerik.Web.UI.ExportInfrastructure.XlsBiffRenderer.CreateWorksheet(Table tbl, Workbook wb)
at Telerik.Web.UI.ExportInfrastructure.XlsBiffRenderer.Render()
at Telerik.Web.UI.Grid.Export.TableViewExporter.ExcelExportRenderForm(HtmlTextWriter nullWriter, Control form)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at Telerik.Web.UI.Grid.Export.TableViewExporter.ExcelExportRenderPage(HtmlTextWriter nullWriter, Control page)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter writer, Control page)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Any feedback is greatly appreciated!
I dynamically build my RadGrid, but it lost sorting and paging functionality.
How can I program it?
This is my code;
Aspx page:
<telerik:RadGrid ID="RadGrid1" runat="server" Style="margin-bottom: 0px"
EnableViewState="true" Width="1145px" AllowPaging="True" AllowSorting="True" Skin="Gray"
DataSourceID="SqlDataSource1" AutoGenerateColumns="False" >
<HeaderContextMenu>
<CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation>
</HeaderContextMenu>
<MasterTableView>
<RowIndicatorColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
</MasterTableView>
<FilterMenu>
<CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation>
</FilterMenu>
</telerik:RadGrid>
</div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ></asp:SqlDataSource>
Vb page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If (Not IsPostBack) Then
Loaddata()
End If
End Sub
Private Sub Loaddata()
Dim strSQl As String
strSQl = "Select Pro ,ShipperName as [Shipper Name],BL as [Bill of Lading],convert(varchar(10),PUDate,101) as [Pickup Date]," & _
" ConsigneeName as Consignee, PO as [Purchase Order],convert(varchar(10),DELDate,101) as [Delivery Date]," & _
" convert(varchar(10),convert(money,charge))as Charge, ConsigneeCode,ShipperCode,DateInvoiced,BillToCode,PmtType,t.COMPANY," & _
" c.ThirdPartyFlag as thirdPartyFlag from ShipmentTracking.dbo.ltlprodata3 as t with (nolock) " & _
" inner join CustomerMaster.dbo.MainframeCustomers as c with (nolock) " & _
" on (c.company = t.company and t.billtocode = c.[cust no]) " & _
" where ( DELDATE >= '5/26/2009' and DELDATE <= '6/26/2009' and t.company='p1') and " & _
" ((pmttype ='P' and (ShipperCode = 'FEED84' or BillToCode = 'FEED84') and c.ThirdPartyFlag = 0) " & _
" or (pmttype ='C' and (ConsigneeCode = 'FEED84' or BillToCode = 'FEED84') and c.ThirdPartyFlag = 0) " & _
" or (pmttype <> 'F' and BillToCode = 'FEED84' and c.ThirdPartyFlag = 1)) " & _
" ORDER BY Pro;"
FillGrid(strSQl)
End Sub
Sub FillGrid(ByVal strSQL As String)
Dim dbcon As New SqlConnection
Dim dbCommand As New SqlCommand
Dim strConnectionString As String
Dim errHandler As New ErrorHandler
Dim SQLEscape As New SQLEscape
Dim rdr As SqlDataReader
strConnectionString = System.Configuration.ConfigurationManager.AppSettings.Get("GenericDB")
dbcon.ConnectionString = strConnectionString
dbcon.Open()
'cmd = New SqlCommand
dbCommand.Connection = dbcon
dbCommand.CommandType = CommandType.Text
dbCommand.CommandText = strSQL
rdr = dbCommand.ExecuteReader()
'RadGrid1.Columns.Clear()
SqlDataSource1.ConnectionString = strConnectionString
SqlDataSource1.SelectCommand = strSQL
Dim Pro As New GridHyperLinkColumn
Dim dataNavigateUrlFields() As String = {"Pro"}
Pro.DataTextField = "Pro"
Pro.DataNavigateUrlFields = dataNavigateUrlFields
Pro.HeaderText = "Pro"
Pro.SortExpression = "Pro"
Pro.DataNavigateUrlFormatString = "../MyPyle/MyPyleLTLTracking.aspx?Pro={0}"
'***************
Dim Shipper As New GridHyperLinkColumn
Dim dataNavigateUrlFields1() As String = {"Shipper", "ShipperCode"}
Shipper.ItemStyle.HorizontalAlign = HorizontalAlign.Left
Shipper.DataTextField = "[Shipper Name]"
Shipper.SortExpression = "Shipper"
Shipper.DataNavigateUrlFields = dataNavigateUrlFields1
Shipper.HeaderText = "Shipper"
Shipper.Target = "_blank"
Shipper.DataNavigateUrlFormatString = "../publicdocs/WhoAmI.aspx?Account=P1{0}"
Dim ShipperCode As New GridBoundColumn
ShipperCode.ItemStyle.HorizontalAlign = HorizontalAlign.Left
ShipperCode.DataField = "ShipperCode"
ShipperCode.HeaderText = "ShipperCode"
Shipper.DataNavigateUrlFormatString = "../publicdocs/WhoAmI.aspx?Account=P1{1}"
Dim Consignee As New GridHyperLinkColumn
Dim dataNavigateUrlFields2() As String = {"Consignee", "ConsigneeCode"}
Consignee.ItemStyle.HorizontalAlign = HorizontalAlign.Left
Consignee.DataTextField = "Consignee"
Consignee.SortExpression = "Consignee"
Consignee.DataNavigateUrlFields = dataNavigateUrlFields2
Consignee.HeaderText = "Consignee"
Consignee.Target = "_blank"
Consignee.DataNavigateUrlFormatString = "../publicdocs/WhoAmI.aspx?Account=P1{0}"
Dim ConsigneeCode As New GridBoundColumn
ConsigneeCode.ItemStyle.HorizontalAlign = HorizontalAlign.Left
ConsigneeCode.DataField = "ConsigneeCode"
ConsigneeCode.HeaderText = "ConsigneeCode"
Consignee.DataNavigateUrlFormatString = "../publicdocs/WhoAmI.aspx?Account=P1{1}"
Dim BillofLading As New GridBoundColumn
BillofLading.DataField = "Bill of Lading"
BillofLading.SortExpression = "Bill of Lading"
BillofLading.HeaderText = "Bill of Lading"
BillofLading.ItemStyle.HorizontalAlign = HorizontalAlign.Left
Dim PickupDate As New GridBoundColumn
PickupDate.ItemStyle.HorizontalAlign = HorizontalAlign.Left
PickupDate.DataField = "Pickup Date"
PickupDate.HeaderText = "Pickup Date"
PickupDate.SortExpression = "Pickup Date"
Dim PurchaseOrder As New GridBoundColumn
PurchaseOrder.ItemStyle.HorizontalAlign = HorizontalAlign.Left
PurchaseOrder.DataField = "Purchase Order"
PurchaseOrder.HeaderText = "Purchase Order"
PurchaseOrder.SortExpression = "Purchase Order"
Dim DeliveryDate As New GridBoundColumn
DeliveryDate.ItemStyle.HorizontalAlign = HorizontalAlign.Left
DeliveryDate.DataField = "Delivery Date"
DeliveryDate.SortExpression = "Delivery Date"
DeliveryDate.HeaderText = "Delivery Date"
Dim charge As New GridHyperLinkColumn
charge.ItemStyle.HorizontalAlign = HorizontalAlign.Left
Dim dataNavigateUrlFields3() As String = {"charge"}
charge.DataTextField = "Charge"
charge.SortExpression = "Charge"
charge.DataNavigateUrlFields = dataNavigateUrlFields
charge.HeaderText = "Charge"
charge.Target = "_blank"
charge.DataNavigateUrlFormatString = "../MyPyle/InvoicePDFGenerator.aspx?Pro={0}"
Me.RadGrid1.MasterTableView.Columns.Add(Pro)
Me.RadGrid1.MasterTableView.Columns.Add(ShipperCode)
Me.RadGrid1.MasterTableView.Columns.Add(Shipper)
Me.RadGrid1.MasterTableView.Columns.Add(BillofLading)
Me.RadGrid1.MasterTableView.Columns.Add(PickupDate)
Me.RadGrid1.MasterTableView.Columns.Add(Consignee)
Me.RadGrid1.MasterTableView.Columns.Add(PurchaseOrder)
Me.RadGrid1.MasterTableView.Columns.Add(DeliveryDate)
Me.RadGrid1.MasterTableView.Columns.Add(charge)
Dim objDR As System.Data.DataRow
Dim objDT As System.Data.DataTable
Dim srtDV As System.Data.DataView
objDT = New System.Data.DataTable("Charges")
' create data table
objDT.Columns.Add("Pro", GetType(String))
objDT.Columns.Add("shippercode", GetType(String))
objDT.Columns.Add("Shipper", GetType(String))
objDT.Columns.Add("Bill of Lading", GetType(String))
objDT.Columns.Add("Pickup Date", GetType(String))
objDT.Columns.Add("ConsigneeCode", GetType(String))
objDT.Columns.Add("Purchase Order", GetType(String))
objDT.Columns.Add("Delivery Date", GetType(String))
objDT.Columns.Add("charge", GetType(String))
objDT.Columns.Add("consignee", GetType(String))
If rdr.HasRows Then
Do While rdr.Read
objDR = objDT.NewRow
objDR("Pro") = rdr(0)
objDR("shippercode") = rdr(9)
objDR("Shipper") = rdr(1)
objDR("Bill of Lading") = rdr(2)
objDR("Pickup Date") = rdr(3)
objDR("ConsigneeCode") = rdr(8)
objDR("Purchase Order") = rdr(5)
objDR("Delivery Date") = rdr(6)
If IsDBNull(rdr(7)) Then
objDR("charge") = 0
Else
objDR("charge") = rdr(7)
End If
objDR("consignee") = rdr(4)
objDT.Rows.Add(objDR)
'End If
Loop
End If
srtDV = objDT.DefaultView
srtDV.Sort = "Pro"
Session("dt") = objDT
RadGrid1.DataBind()
End Sub
Someone suggested to create datatable and dataview, because you can only sort on dataview, I tried to add some code on, but nothing happened
Protected Sub RadGrid1_SortCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridSortCommandEventArgs) Handles RadGrid1.SortCommand
Response.Write("Sort")
'Dim tableView As GridTableView = e.Item.OwnerTableView
'If tableView.DataSourceID = "SqlDataSource1" AndAlso e.SortExpression = "Pro" Then e.Canceled = True
'Dim expression As New GridSortExpression()
'expression.FieldName = "Pro"
'If tableView.SortExpressions.Count = 0 OrElse _
' tableView.SortExpressions(0).FieldName <> "Pro" Then
' expression.SortOrder = GridSortOrder.Descending
'ElseIf tableView.SortExpressions(0).SortOrder = GridSortOrder.Descending Then
' expression.SortOrder = GridSortOrder.Ascending
'ElseIf tableView.SortExpressions(0).SortOrder = GridSortOrder.Ascending Then
' expression.SortOrder = GridSortOrder.None
'End If
'tableView.SortExpressions.AddSortExpression(expression)
'tableView.Rebind()
'Loaddata()
End Sub
Thank you.
Galina
<telerik:GridTemplateColumn HeaderStyle-Width="160px" ShowSortIcon="true" > <HeaderTemplate> <asp:LinkButton ID="lnkSortBySender" runat="server" CommandName="cmdSortBySender" > </asp:LinkButton> </HeaderTemplate> <ItemTemplate> <asp:Label Text='<%# DataBinder.Eval(Container,"DataItem.SenderName") %>' runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn>