Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
156 views
Hi!

I am trying to implement custom filtering in my application, during my Implementation a few things are not clear to me, so i hope somebody explain me these thing.

I tred to add several Custom Filtering Options like this

GridFilterMenu filterMenu = MaintenanceGrid.FilterMenu; 
RadMenuItem menuItem = new RadMenuItem("Valid""Contains"); 
filterMenu.Items.Add(menuItem); 

but none of these options are displayed in my list, only one option is displayed with the name custom.

How can i add more then one custom filtering option in the menu?

Then i tried to get it running with this sinlge option, but in the itemCommand Fired Event i got a Parse Exception, i checked my filter expression but i cannot find any error.

Here is the code of the EventHandler

if (filterPair.First.ToString().Equals("Custom")) 
string columName = filterPair.Second.ToString(); 
TextBox tbPattern = (e.Item as GridFilteringItem)[columName].Controls[0] as  TextBox; 
string[] values = tbPattern.Text.Split(' '); 
 
// string newFilter = "(([" + filterPair.Second + "] ='" + values[0] + "') AND ([" + filterPair.Second + "] ='" + values[1] + "'))"; 
string newFilter = "(([" + filterPair.Second + "] ='" + values[0] + "'))"
if (MaintenanceGrid.MasterTableView.FilterExpression == ""
MaintenanceGrid.MasterTableView.FilterExpression = newFilter; 
else 
MaintenanceGrid.MasterTableView.FilterExpression = "((" + 
MaintenanceGrid.MasterTableView.FilterExpression + ") AND (" + newFilter + "))"
MaintenanceGrid.Rebind(); 

The exception occurs when Rebind is called, what problem can cause this exception?

Is it possible that the FilterPair.first value is the name of the CustomFilter?

Regards,
Martin
Yavor
Telerik team
 answered on 11 Mar 2009
1 answer
146 views

 

Hi,

I am having a problem in sending radgrid data in Email

scenario: I have a radgrid on my web form, I want to send that data grid data in mail by clicking on mailto: button

what I am doing: I am capturing the innerhtml which lies in <div></div> tags and sending to mail

what happening : innerhtml or html source is directly going into mail and when copy that source and save it as in html format, and when i opens the stored html file I can see the grid data.

The following is code which I used  :

 <script type="text/javascript">  
    function OpenOutlookDoc()  
    {  
        try  
        {  
            var outlookApp = new ActiveXObject("Outlook.Application");  
            var nameSpace = outlookApp.getNameSpace("MAPI");  
            mailFolder = nameSpace.getDefaultFolder(6);  
            mailItem = mailFolder.Items.add('IPM.Note.FormA');  
            mailItem.Subject="a subject test";  
            mailItem.To = "an@email.here";  
            mailItem.HTMLBody = "<b>bold</b>";  
            mailItem.display (0);   
        }  
        catch(e)  
        {  
            alert(e);  
        }  
    }  
 
    function sanitizeHTML(s)   
    {  
        var d = document.createElement('div');  
        d.appendChild(document.createTextNode(s));  
        return d.innerHTML;  
    }  
 
 
  function SendMail(ctrl)  
  {  
//    var h = sanitizeHTML(window.document.getElementById("dvMail").outerHTML);  
//    alert(h);  
//    //window.document.getElementById("dvMail").innerHTML = "<pre>" + h + "</pre>";  
//    ctrl.href.innerHTML = "<pre>" + h + "</pre>";  
//    //alert(ctrl.href);  
      
    ctrlctrl.href = ctrl.href.replace("##body##", window.document.getElementById("dvMail").innerHTML);  
    alert(ctrl.href);  
      
    return true;  
  }  
  </script> 
 
<href="mailto:rama.k@abc.com">Email</a> 
 
<href="mailto:rama.k@abc.com?subject=my report &body=see attachment &attachment=\\myhost\myfolder\myfile.lis"></a> 
<br /> 
      
<onclick="Javascript:return SendMail(this);" href="mailto:rama.k@abc.com?subject=RadGrid&body=##body##">Send me an email</a> 
<br /> 
 
<href="mailto:rama.k@abc.com?subject=Feedback for   
webdevelopersnotes.com&body=The Tips and Tricks section is great  
&cc=anotheremailaddress@anotherdomain.com  
&bcc=onemore@anotherdomain.com">Send me an email with cc,bcc</a><br /> 
<br /> 
 
<href='mailto:rama.k@abc.com?subject=Software&body=see attachment&attachment="C:/certreq.txt"'>  
Try with attachment<br /> 
</a> 
 
 
<href="mailto:someone@somewhere.net?attachment=\\cheese02\Scans\invoices\1234\1234.tif"></a> 
 
<br /> 
 
<script language="javascript" type="text/javascript">  
 
function string strdestination()  
{  
    return 'mailto:email@email.com?subject=Software&body=see attachment&attachment="L:/Parallel Drivers/Win 2k-xp.zip"'  
}  
</script> 
 
<div id="dvMail">  
      
<telerik:radgrid id="RadGrid1" runat="server" datasourceid="ObjectDataSource1" gridlines="None">  
<MasterTableView DataSourceID="ObjectDataSource1">  
<RowIndicatorColumn> 
<HeaderStyle Width="20px"></HeaderStyle> 
</RowIndicatorColumn> 
 
<ExpandCollapseColumn> 
<HeaderStyle Width="20px"></HeaderStyle> 
</ExpandCollapseColumn> 
</MasterTableView> 
 
<FilterMenu EnableTheming="True">  
<CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> 
</FilterMenu> 
</telerik:radgrid> 
 
</div> 
 
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetData" 
    TypeName="UserWorkloadManipulation"></asp:ObjectDataSource> 

so, to see the radgrid data in mail what shoul I do?

can any one help

 

 

 

Thanks,

 

 

 

 

 

 

Yavor
Telerik team
 answered on 11 Mar 2009
2 answers
248 views
Hi,

    In my project i need to use Color picker in Grid and get this HEX color value which is choosen and save to database for further usage.

    In Grid i have used Template column for color picker as follows:

<telerik:GridTemplateColumn HeaderText="Color" UniqueName="Color" Visible="false">
        <ItemTemplate>
        </ItemTemplate>
        
<EditItemTemplate>        
<telerik:RadColorPicker runat="server" ID="RadColorPicker1" OnClientColorChange="HandleColorChange" Preset="Standard" Width="170"/>
<input type="text" value="" id="HEXColor" />
        </EditItemTemplate>
        </telerik:GridTemplateColumn>


When clicked on color on color picker items, the HEX color value is displayed in input type 'HEXColor' as text by using javascript functions as follows:

function HandleColorChange(sender,eventArgs)
                    {
                    $get("HEXColor").value=sender.get_selectedColor();
                    } 

Here the problem is: because i need to save this HEX value into database i need this HEX value which is displayed in input type text field(id=HEXColor) to be accessed in .cs page.
Please, let me know how to access this HEX value in .cs page. And its not compulsory that i have to use input type i can also use lable, textbox.


Thanks,
Nagarjun S.
Svetlina Anati
Telerik team
 answered on 11 Mar 2009
1 answer
111 views
Hi Telerik,
I'm using RadMaskedInput to make an IP textbox. Currently the mask is: <0..255>.<0..255>.<0..255>.<0..255>

and the initial text in the textbox is: 000.000.000.000
I'm saving the text with literals (e.g. 192.168.168.201 and not 192168168201)

I'd like to know if there is a way (static or dynamic), to keep the abilities of the mask (enable only 4 groups of numbers, each number is between 0..255) but without initialiy displaying 000.000.000.000 but only spaces, meaning: "    .     .     .    ", and still saving it with the literals?

Thanks in advance,
Hk
Dimo
Telerik team
 answered on 11 Mar 2009
3 answers
172 views
Hi,
I'm working on a reservation system where a user must choose a time for reservation. I use an List<DateTime> as datasource which works fine. However I must also display times that aren't available for reservation and make them non-choosable.

Example:
Machine A is usually available from 1:00 pm to 4:00 pm. The reservation can be made every 15 minutes. Someone booked the machine from 1:30 pm to 2:00 pm. Now I want to show the RadTimePicker the following way:

1:00 1:15 1:30 1:45
2:00 2:15 2:30 2:45
3:00 3:15 3:30 3:45

The entries "1:30" and "1:45" shall be shown lighter or dashed-through. Also the user shall not be able to select those times.

Is there any way to do this with the current functionality or does anynone have an idea how to do this?

Thanks,
Hilmar
Daniel
Telerik team
 answered on 11 Mar 2009
16 answers
725 views
Hello
There is a problem with tooltip position when page where its shown have scroll , and scroll position is not 0.

Same behaviour where found at your examples :
http://www.telerik.com/DEMOS/ASPNET/Prometheus/ToolTip/Examples/ClientSideAPI/DefaultCS.aspx

Scroll it down as much as possible , so you will see the Submit button on the top of the screen and press on it. you will see that the tooltip will be shown much higher that it supposed to be.

My guess it does not takes the offsetHeight when it shows , only the client cursor position.

How can the issue be resolved, since i have found it on several website i have used the tooltip.

Best regards
Yulian
Tervel
Telerik team
 answered on 11 Mar 2009
2 answers
176 views
I am trying to add a footer to my grid. The GridBoundColumns are summed without a problem. However, when I try to get the Average of a GridCalculatedColumn (of averages), it fails on the DataBind with "TargetInvocationException was unhandled by user code", Exception has been thrown by the target of an invocation.

It works if I try the Sum or Max of the averages, but I need the average itself, or the average of the Totals for column 1 and 2.
(btw, what is a Custom GridAggregateFunction?)

Any suggestions?

 

calc1 = New GridCalculatedColumn
calcCol1(0) = "MTD_Used"
calcCol1(1) = "MTD_Available"
With calc1
.HeaderText = "MTD %"
.UniqueName = "MTDP"
.DataFields = calcCol1
.Expression = "{0}/{1}*100"
.HeaderStyle.HorizontalAlign = HorizontalAlign.Right
.HeaderStyle.Wrap = True
.ItemStyle.HorizontalAlign = HorizontalAlign.Right
.DataFormatString = "{0:N2}%"
.Aggregate = GridAggregateFunction.Avg
.FooterAggregateFormatString = "{0:N2}%"
.FooterStyle.HorizontalAlign = WebControls.HorizontalAlign.Right
.FooterStyle.Font.Bold = True
End With
Table1.MasterTableView.Columns.AddAt(3, calc1)

Table1.DataBind()

Using Version 2008.3.1125.35

Rob

 

Rob Diamant
Top achievements
Rank 1
 answered on 11 Mar 2009
2 answers
171 views
I am trying to implement a solution based around the Load On Demand example for the tabstrip. I have 4 tabs, and each tab contains a grid. I have configured the grid which is loaded in the first initial tab with some events in ItemDataBound. But when I click one of the other tabs, and then click back to the first tab the events which happend in ItemDataBound is gone. And to get them back I need to trigger an event which rebinds the grid. Am I missing something here? Should I do the events in the ItemDataBound somewhere else?

ASPX file:
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="DefaultStartUpPage.aspx.vb" Inherits="DefaultStartUpPage" %> 
 
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml"
<head runat="server"
    <title>MyPims</title> 
</head> 
<body> 
    <form runat="server" id="mainForm" method="post" style="width: 100%"
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server"
    </telerik:RadScriptManager> 
        <telerik:RadAjaxLoadingPanel runat="server" ID="LoadingPanel1"
            <asp:Image runat="server" ID="LoadingImage1" ImageUrl="Images\Loading.gif" AlternateText="Loading..." /> 
        </telerik:RadAjaxLoadingPanel> 
        <telerik:RadAjaxManager runat="server" ID="RadAjaxManager1" EnableAJAX="true" OnAjaxRequest="RadAjaxManager1_AjaxRequest"
            <AjaxSettings> 
             
                <telerik:AjaxSetting AjaxControlID="RadTabStrip1"
                    <UpdatedControls> 
                        <telerik:AjaxUpdatedControl ControlID="RadTabStrip1" /> 
                        <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" LoadingPanelID="LoadingPanel1" /> 
                    </UpdatedControls> 
                </telerik:AjaxSetting> 
                 
                <telerik:AjaxSetting AjaxControlID="RadMultiPage1"
                    <UpdatedControls> 
                        <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" /> 
                    </UpdatedControls> 
                </telerik:AjaxSetting> 
                 
                <telerik:AjaxSetting AjaxControlID="RadAjaxManager1"
                    <UpdatedControls> 
                        <telerik:AjaxUpdatedControl ControlID="RadTabStrip1" /> 
                        <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" /> 
                    </UpdatedControls> 
                </telerik:AjaxSetting> 
            </AjaxSettings> 
        </telerik:RadAjaxManager> 
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"
            <script type="text/javascript"
 
                function onTabSelecting(sender, args) { 
                    if (args.get_tab().get_pageViewID()) { 
                        args.get_tab().set_postBack(false); 
                    } 
                } 
 
                function pageLoad() { 
                    loadNextPageView(); 
                } 
 
                function loadNextPageView() { 
                    $find("RadAjaxManager1").ajaxRequest($find("RadMultiPage1").get_pageViews().get_count()); 
                }            
            </script> 
    </telerik:RadCodeBlock> 
        <div> 
            <telerik:RadTabStrip OnClientTabSelecting="onTabSelecting" ID="RadTabStrip1" SelectedIndex="0" Skin="Inox" 
                runat="server" MultiPageID="RadMultiPage1" OnTabClick="RadTabStrip1_TabClick"
            </telerik:RadTabStrip>   
            <telerik:RadMultiPage ID="RadMultiPage1" Width="100%" Height="500px" runat="server" SelectedIndex="0" OnPageViewCreated="RadMultiPage1_PageViewCreated"
            </telerik:RadMultiPage>    
            <input id="cCurrentDomain" type="text" runat="server" style="display:none"/>        
        </div> 
    </form> 
</body> 
</html> 

Codebehind:
Imports System 
Imports Telerik.Web.UI 
Imports Appframe3.Common.Data 
Imports Appframe3.Web.Common 
 
Partial Class DefaultStartUpPage 
    Inherits System.Web.UI.Page 
 
    Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) 
        If Not Page.IsPostBack Then 
            AddTab("MyActions"
            'AddPageView(RadTabStrip1.FindTabByText("My Actions")) 
            AddPageView(RadTabStrip1.FindTabByText("MyActions")) 
            AddTab("MyResponsibilities"
            'AddPageView("MyResponsibilities") 
            AddTab("MyRisks"
            'AddPageView("MyRisks") 
            AddTab("MyStatistics"
            'AddPageView("MyStatistics") 
 
            SetCurDomain() 
        End If 
    End Sub 
 
    Private Sub SetCurDomain() 
        Dim vRecordSource As New afRecordSource 
        vRecordSource.ViewName = "stbv_System_Users" 
        vRecordSource.SelectColumns.Add("CurrentDomain"
        vRecordSource.WhereClause = "Login = SUSER_SNAME()" 
        Dim vCurDomain As String = afAccessLayer.GetDataScalar(vRecordSource).ToString() 
 
        cCurrentDomain.Value = vCurDomain 
    End Sub 
 
    Private Sub AddTab(ByVal tabName As String
        Dim tab As RadTab = New RadTab 
        tab.Text = tabName 
        tab.Style.Add("font-weight""bold"
        RadTabStrip1.Tabs.Add(tab) 
    End Sub 
 
    Protected Sub RadMultiPage1_PageViewCreated(ByVal sender As ObjectByVal e As RadMultiPageEventArgs) 'Handles RadMultiPage1.PageViewCreated 
        Dim userControlName As String = e.PageView.ID & ".ascx" 
        Dim userControl As Control = Page.LoadControl(userControlName) 
        userControl.ID = e.PageView.ID & "_userControl" 
        e.PageView.Controls.Add(userControl) 
    End Sub 
 
    Private Sub AddPageView(ByVal tab As RadTab) 
        Dim pageView As RadPageView = New RadPageView 
        pageView.ID = tab.Text 
        RadMultiPage1.PageViews.Add(pageView) 
        tab.PageViewID = pageView.ID 
    End Sub 
 
    Protected Sub RadTabStrip1_TabClick(ByVal sender As ObjectByVal e As RadTabStripEventArgs) 'Handles RadTabStrip1.TabClick 
        AddPageView(e.Tab) 
        e.Tab.PageView.Selected = True 
    End Sub 
 
    Protected Sub RadAjaxManager1_AjaxRequest(ByVal sender As ObjectByVal e As AjaxRequestEventArgs) 
        Dim pageView As Integer = Convert.ToInt32(e.Argument) 
        AddPageView(RadTabStrip1.Tabs(pageView)) 
        If pageView < RadTabStrip1.Tabs.Count - 1 Then 
            RadAjaxManager1.ResponseScripts.Add("loadNextPageView()"
        End If 
    End Sub 
 
End Class 

ASCX file:
<%@ Control Language="VB" AutoEventWireup="true" CodeFile="MyActions.ascx.vb" Inherits="MyActions" %> 
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> 
 
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnableAJAX="true"
    <AjaxSettings> 
        <telerik:AjaxSetting AjaxControlID="RadGrid1"
            <UpdatedControls> 
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                <telerik:AjaxUpdatedControl ControlID="cShow" /> 
                <telerik:AjaxUpdatedControl ControlID="cSearchForText" /> 
                <telerik:AjaxUpdatedControl ControlID="cSearchForBtn" /> 
            </UpdatedControls> 
        </telerik:AjaxSetting> 
        <telerik:AjaxSetting AjaxControlID="cShow"
            <UpdatedControls> 
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                <telerik:AjaxUpdatedControl ControlID="cShow" /> 
                <telerik:AjaxUpdatedControl ControlID="cSearchForText" /> 
                <telerik:AjaxUpdatedControl ControlID="cSearchForBtn" /> 
            </UpdatedControls> 
        </telerik:AjaxSetting> 
        <telerik:AjaxSetting AjaxControlID="cSearchForBtn"
            <UpdatedControls> 
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                <telerik:AjaxUpdatedControl ControlID="cShow" /> 
                <telerik:AjaxUpdatedControl ControlID="cSearchForText" /> 
                <telerik:AjaxUpdatedControl ControlID="cSearchForBtn" /> 
            </UpdatedControls> 
        </telerik:AjaxSetting> 
        <telerik:AjaxSetting AjaxControlID="cSearchForText"
            <UpdatedControls> 
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                <telerik:AjaxUpdatedControl ControlID="cShow" /> 
                <telerik:AjaxUpdatedControl ControlID="cSearchForText" /> 
                <telerik:AjaxUpdatedControl ControlID="cSearchForBtn" /> 
            </UpdatedControls> 
        </telerik:AjaxSetting> 
    </AjaxSettings> 
</telerik:RadAjaxManager> 
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Height="75px" 
    Width="75px" Transparency="20"
    <img alt="Loading..." src='Images\Loading.gif' style="border: 0;" /> 
</telerik:RadAjaxLoadingPanel> 
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"
    <script type="text/javascript"
 
        function RowDblClick(sender, eventArgs) { 
            var grid = $find("<%=RadGrid1.ClientID %>"); 
            var MasterTable = grid.get_masterTableView(); 
 
            var vElementNo; 
            var vRevision = "01"
            var vDomain; 
            var vCurrentDomain; 
             
            var selectedRows = MasterTable.get_selectedItems(); 
            for (var i = 0; i < selectedRows.length; i++) { 
                var row = selectedRows[i]; 
                vElementNo = MasterTable.getCellByColumnUniqueName(row, "ElementNo") 
                vDomain = MasterTable.getCellByColumnUniqueName(row, "Domain") 
                //here ElementNo.innerHTML / Domain.innerHTML holds the value of the cell 
            } 
             
            if (vDomain.innerHTML != document.getElementById('cCurrentDomain').innerHTML) { 
 
            } 
            else 
            { 
 
            } 
        } 
         
    </script> 
</telerik:RadCodeBlock> 
<table style="width: 90%; height: 100%;"
    <tr> 
        <td> 
            <table style="height:40px"
                <tr> 
                    <td style="width: 10px"
                        Show: 
                    </td> 
                    <td style="width: 150px"
                        <asp:DropDownList AutoPostBack="true" OnSelectedIndexChanged="cShow_SelectedIndexChanged" 
                            ID="cShow" runat="server" Width="150px"
                            <asp:ListItem Value="0" Selected="True">Ready for sign</asp:ListItem> 
                            <asp:ListItem Value="1">Not ready for sign</asp:ListItem> 
                            <asp:ListItem Value="2">All responsibilities</asp:ListItem> 
                            <asp:ListItem Value="3">Completed Actions</asp:ListItem> 
                            <%--<asp:ListItem Value="4">Originated Actions</asp:ListItem>--%> 
                        </asp:DropDownList> 
                    </td> 
                    <td style="width:10px"></td> 
                    <td style="width: 60px"
                        Filter For: 
                    </td> 
                    <td style="width: 200px"
                        <telerik:RadTextBox ID="cSearchForText" Width="200px" runat="server" Skin="Office2007" AutoPostBack="true" OnTextChanged="RadTextBox1_TextChanged"
                        </telerik:RadTextBox> 
                    </td> 
                    <td style="width: 50px"
                        <asp:Button ID="cSearchForBtn" runat="server" Text="Search" OnClick="cSearchForBtn_Click" /> 
                    </td> 
                    <td style="width:10px"></td> 
                    <td style="width:440px"
                      <table style="height: 20px; font-family: Arial; font-size: 8pt"
                        <tr> 
                            <td style="width: 16px;"
                                <img src="Images/arrow_right.gif" alt="Overdue" /></td
                            <td style="width: 75px;"
                                Next To Sign</td> 
                            <td style="width: 10px"
                            </td> 
                            <td style="width: 16px;"
                                <img src="Images/bubble_red.jpg" alt="Overdue" /></td
                            <td style="width: 45px;"
                                Overdue</td> 
                            <td style="width: 10px"
                            </td> 
                            <td style="width: 16px;"
                                <img src="Images/bubble_orange.jpg" alt="DueWithin3Days" /></td
                            <td style="width: 110px;"
                                Due within 3 days</td> 
                            <td style="width: 10px"
                            </td> 
                            <td style="width: 16px;"
                                <img src="Images/bubble_green.jpg" alt="WithinAcceptableLimits" /></td
                            <td style="width: 120px;"
                                Within acceptable limits</td> 
                        </tr> 
                    </table> 
                    </td> 
                </tr> 
            </table> 
        </td> 
    </tr> 
    <tr> 
        <td> 
            <telerik:RadGrid ID="RadGrid1" AllowSorting="true" AllowMultiColumnSorting="true" 
                ShowStatusBar="true" Skin="Office2007" ShowFooter="True" GridLines="None" AllowPaging="false" 
                PageSize="50" runat="server" Height="500px"
                <HeaderContextMenu Skin="Office2007" EnableTheming="True"
                    <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> 
                </HeaderContextMenu> 
                <PagerStyle Mode="NumericPages" /> 
                <SortingSettings SortedBackColor="Azure" /> 
                <MasterTableView> 
                    <RowIndicatorColumn> 
                        <HeaderStyle Width="20px"></HeaderStyle> 
                    </RowIndicatorColumn> 
                    <ExpandCollapseColumn> 
                        <HeaderStyle Width="20px"></HeaderStyle> 
                    </ExpandCollapseColumn> 
                </MasterTableView> 
                <SelectedItemStyle BackColor="#CCCCCC" /> 
                <ClientSettings> 
                    <Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="True"
                    </Scrolling> 
                    <Selecting AllowRowSelect="true" /> 
                    <ClientEvents OnRowDblClick="RowDblClick" /> 
                </ClientSettings> 
                <FilterMenu Skin="Office2007" EnableTheming="True"
                    <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> 
                </FilterMenu> 
            </telerik:RadGrid> 
        </td> 
    </tr> 
    <input id="hdnCurrentDomain" type="text" runat="server" style="display:none" /> 
</table> 

ASCX codebehind:
Imports System 
Imports System.Data 
Imports System.Configuration 
Imports System.Collections 
Imports System.Web 
Imports System.Web.Security 
Imports System.Web.UI 
Imports System.Web.UI.WebControls 
Imports System.Web.UI.WebControls.WebParts 
Imports System.Web.UI.HtmlControls 
Imports System.Xml 
Imports System.Text 
Imports Appframe3.Common.Data 
Imports Appframe3.Web.Common 
Imports Telerik.Web.UI 
 
Partial Class MyActions 
    Inherits System.Web.UI.UserControl 
 
    Private Const gMaxDays As Integer = 999999 
 
    Private Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) 
        SetDomainSettings() 
        RadGrid1.Columns.Clear() 
        GetElements() 
    End Sub 
 
    Private Sub SetDomainSettings() 
 
    End Sub 
 
    Private Sub GetElements() 
        Dim vRecSrc As New afRecordSource("sviw_System_GetDomainName"
        vRecSrc.SelectColumns.Add("DomainName"
        Dim vDomain As String = afAccessLayer.GetDataScalar(vRecSrc).ToString().ToUpper() 
 
        Dim vOrderBy As String 
        Dim vDataTable As DataTable 
 
        Dim vProcedure As New afProcedureCall 
 
 
        vProcedure.ProcedureName = "astp_Changes_MissingActions" 
        vDataTable = afAccessLayer.ExecProcedure(vProcedure).Tables(0) 
        vOrderBy = "NextToSign DESC, NumberDays ASC, ElementNo, Title" 
 
 
        Dim vSearchText As String = "" 
        vSearchText = "ISNULL(Domain,'') + ISNULL(ElementNo,'') + ISNULL(Title,'') + ISNULL(Priority,'') + ISNULL(DisplayColumnName,'') Like '%" + cSearchForText.Text.Trim + "%'" 
 
        If cShow.SelectedValue <> "4" And cShow.SelectedValue <> "3" Then 
            vSearchText += " AND " 
 
            If cShow.SelectedValue = "0" Then 
                vSearchText += "NextToSign=1 AND Display = 1" 
            ElseIf cShow.SelectedValue = "1" Then 
                vSearchText += "NextToSign IS NULL AND Display = 1" 
            ElseIf cShow.SelectedValue = "2" Then 
                vSearchText += "Display = 1" 
            End If 
        End If 
 
        For Each vR As DataRow In vDataTable.Rows 
            If vR.IsNull("NumberDays"Then 
                vR("NumberDays") = gMaxDays 
            End If 
        Next 
 
        RadGrid1.AutoGenerateColumns = False 
        RadGrid1.DataSource = vDataTable.[Select](vSearchText, vOrderBy) 
        RadGrid1.Width = Unit.Pixel(960) 
        'RadGrid1.Height = Unit.Percentage(100) 
 
        Dim vColumnImage As New GridTemplateColumn 
        RadGrid1.Columns.Add(vColumnImage) 
        vColumnImage.UniqueName = "ImgColumn" 
        vColumnImage.HeaderText = "" 
        vColumnImage.ItemStyle.Width = Unit.Pixel(10) 
 
        Dim vColumn As New GridBoundColumn 
        RadGrid1.Columns.Add(vColumn) 
        vColumn.DataField = "Domain" 
        vColumn.HeaderText = "Domain" 
        vColumn.UniqueName = "Domain" 
        vColumn.AllowSorting = True 
        vColumn.ItemStyle.Width = Unit.Pixel(40) 
 
        vColumn = New GridBoundColumn 
        RadGrid1.Columns.Add(vColumn) 
        vColumn.DataField = "NextToSign" 
        vColumn.HeaderText = "" 
        vColumn.UniqueName = "NextToSign" 
        vColumn.Visible = False 
 
        vColumn = New GridBoundColumn 
        RadGrid1.Columns.Add(vColumn) 
        vColumn.DataField = "ElementNo" 
        vColumn.HeaderText = "Action No" 
        vColumn.UniqueName = "ElementNo" 
        vColumn.AllowSorting = True 
        vColumn.ItemStyle.Width = Unit.Pixel(150) 
 
        vColumn = New GridBoundColumn 
        RadGrid1.Columns.Add(vColumn) 
        vColumn.DataField = "Revision" 
        vColumn.HeaderText = "Rev" 
        vColumn.AllowSorting = True 
        vColumn.ItemStyle.Width = Unit.Pixel(20) 
 
        vColumn = New GridBoundColumn 
        RadGrid1.Columns.Add(vColumn) 
        vColumn.DataField = "Title" 
        vColumn.HeaderText = "Title" 
        vColumn.AllowSorting = True 
        vColumn.ItemStyle.Width = Unit.Pixel(250) 
 
        vColumn = New GridBoundColumn 
        RadGrid1.Columns.Add(vColumn) 
        vColumn.DataField = "Priority" 
        vColumn.HeaderText = "Priority" 
        vColumn.AllowSorting = True 
        vColumn.ItemStyle.Width = Unit.Pixel(50) 
 
        vColumn = New GridBoundColumn 
        RadGrid1.Columns.Add(vColumn) 
        vColumn.DataField = "DueDate" 
        vColumn.HeaderText = "Due Date" 
        vColumn.AllowSorting = True 
        vColumn.ItemStyle.Width = Unit.Pixel(50) 
        vColumn.DataFormatString = "{0:d}" 
 
        vColumn = New GridBoundColumn 
        RadGrid1.Columns.Add(vColumn) 
        vColumn.DataField = "NumberDays" 
        vColumn.HeaderText = "" 
        vColumn.UniqueName = "NumberDays" 
        vColumn.AllowSorting = True 
        vColumn.ItemStyle.Width = Unit.Pixel(50) 
 
        vColumnImage = New GridTemplateColumn 
        RadGrid1.Columns.Add(vColumnImage) 
        vColumnImage.UniqueName = "ColorColumn" 
        vColumnImage.HeaderText = "" 
        vColumnImage.ItemStyle.Width = Unit.Pixel(10) 
 
        vColumn = New GridBoundColumn 
        RadGrid1.Columns.Add(vColumn) 
        vColumn.DataField = "DisplayColumnName" 
        vColumn.UniqueName = "DisplayColumnName" 
        vColumn.HeaderText = "Action Responsibility" 
        vColumn.AllowSorting = True 
        vColumn.Aggregate = GridAggregateFunction.Count 
        vColumn.FooterText = "Total Actions: " 
        vColumn.ItemStyle.Width = Unit.Pixel(75) 
    End Sub 
 
    Protected Sub RadGrid1_ItemDataBound(ByVal sender As ObjectByVal e As GridItemEventArgs) Handles RadGrid1.ItemDataBound 
        If TypeOf e.Item Is GridDataItem Then 
            Dim item As GridDataItem = TryCast(e.Item, GridDataItem) 
 
            If item("NextToSign").Text = "True" Then 
                Dim img As New Image() 
                img.ID = "Image1" 
                img.ImageUrl = "Images/arrow_right.gif" 
 
                item("ImgColumn").Controls.Add(img) 
            End If 
 
            ' Add coloring for items. 
            Dim dataBoundItem As GridDataItem = e.Item 
 
            Dim imgRed As New Image() 
            imgRed.ID = "ImageRed" 
            imgRed.ImageUrl = "Images/bubble_red.jpg" 
 
            Dim imgOrange As New Image() 
            imgOrange.ID = "ImageOrange" 
            imgOrange.ImageUrl = "Images/bubble_orange.jpg" 
 
            Dim imgGreen As New Image() 
            imgGreen.ID = "ImageGreen" 
            imgGreen.ImageUrl = "Images/bubble_green.jpg" 
 
 
            'Days left  
            Dim vDaysLeft As String = "" 
            Dim vDays As Int32 = Integer.Parse(dataBoundItem("NumberDays").Text) 
 
            If vDays < gMaxDays Then 
                vDaysLeft = vDays.ToString() 
            Else 
                vDaysLeft = "N/A" 
            End If 
 
            If vDays < 0 Then 
                item("ColorColumn").Controls.Add(imgRed) 
            ElseIf vDays < 4 Then 
                item("ColorColumn").Controls.Add(imgOrange) 
            ElseIf cShow.SelectedValue = "3" Or dataBoundItem("DisplayColumnName").Text = "Action Closed" Or dataBoundItem("DisplayColumnName").Text = "VOID" Or dataBoundItem("DisplayColumnName").Text = "Info" Then 
                'do nothing 
            Else 
                item("ColorColumn").Controls.Add(imgGreen) 
            End If 
 
            dataBoundItem("NumberDays").Text = vDaysLeft 
        End If 
    End Sub 
 
    Private Sub RadGrid1_PageIndexChanged(ByVal source As ObjectByVal e As GridPageChangedEventArgs) Handles RadGrid1.PageIndexChanged 
        GetElements() 
    End Sub 
 
    Public Sub RadGrid1_SortCommand(ByVal source As ObjectByVal e As GridSortCommandEventArgs) Handles RadGrid1.SortCommand 
        'RadGrid1.Columns.Clear() 
        'GetElements() 
        RadGrid1.MasterTableView.Rebind() 
    End Sub 
 
    Protected Sub cShow_SelectedIndexChanged(ByVal sender As ObjectByVal e As System.EventArgs) 'Handles cShow.SelectedIndexChanged 
        RadGrid1.MasterTableView.Rebind() 
    End Sub 
 
    Protected Sub cSearchForBtn_Click(ByVal sender As ObjectByVal e As System.EventArgs) 'Handles cSearchForBtn.Click 
        RadGrid1.MasterTableView.Rebind() 
    End Sub 
 
    Protected Sub RadTextBox1_TextChanged(ByVal sender As ObjectByVal e As System.EventArgs) 
        RadGrid1.MasterTableView.Rebind() 
    End Sub 
End Class 
 

Some method and irrelevant code has been removed, but that code has no effect on the grid or anything else. afAccessLayer.ExecProcedure is a custom written method of executing stored procedures, so is everything else called using afAccessLayer. But they basicly do the same as regular calls, so they dont affect the result given.


Any help in locating what's removing the images which was added in ItemDataBound is appreciated.

Thanks,

Trygve
Trygve
Top achievements
Rank 2
 answered on 11 Mar 2009
1 answer
107 views
Hello,

In my project i use radmenu.
How to separeted menu in radmenu control.

Please give me this code.

Regards,
Apeksha
Princy
Top achievements
Rank 2
 answered on 11 Mar 2009
9 answers
331 views
guys how can i select  a certain row just by clicking on it ....on the first one i want the table with no full details once clicked the grid should display the rest of the details from the first grid...using the datakey is that possible? or should i add a select command....
also how can i add a checkbox field on the grid?? and be able to select or deselct just by pushing in the grid....please can you provide the code in vb,net
ibrahim
Top achievements
Rank 1
 answered on 11 Mar 2009
Narrow your results
Selected tags
Tags
+? more
Top users last month
Shiori
Top achievements
Rank 2
Iron
Tien
Top achievements
Rank 1
Iron
Robert
Top achievements
Rank 1
Rob
Top achievements
Rank 4
Bronze
Bronze
Iron
Geoff
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Shiori
Top achievements
Rank 2
Iron
Tien
Top achievements
Rank 1
Iron
Robert
Top achievements
Rank 1
Rob
Top achievements
Rank 4
Bronze
Bronze
Iron
Geoff
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?