Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
132 views
Hi,

I have a small problem with autosize option. Sometimes it just resize the window to minimum. It doesn't happen every time.
Georgi Tunev
Telerik team
 answered on 22 Jul 2010
1 answer
167 views
Hi,
the title might be a little confuse, but it is exactly my problem.

I have a RadMultiPage (with RadTabStrip, but I don't think that matters) with PageView. Inside each PageView I have a RadSplitter with two RadPanes and inside one of the two RadPanes a RadGrid. When page loads the Grid remains..."compressed" in the sense that the width of the grid does not get stretched to 100%.
I've tried to put a third PageView with just background color to be sure that the problem is RadGrid that does not expand and not RadPane. The test says that RadPane is ok and that the Grid remains "not stretched".
I'm attaching a sample below.

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="TEST.aspx.vb" Inherits="TEST" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<head runat="server">
    <title></title>
    <style type="text/css">
    html, body, form
    {
        height:100%;
        border:0px;
        margin:0px;
        }
         
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
    </telerik:RadScriptManager>
     
    <telerik:RadSplitter ID="RadSplitter2" runat="server" Width="100%" Height="100%" Orientation="Horizontal">
     
        <telerik:RadPane ID="RadPane3" runat="server" Width="100%" Height="26px">
         
            <telerik:RadTabStrip ID="RadTabStrip1" runat="server" MultiPageID="RadMultiPage1" SelectedIndex="0">
                <Tabs>
                    <telerik:RadTab Text="First" Value="First" PageViewID="PV0"></telerik:RadTab>
                    <telerik:RadTab Text="Second" Value="Second" PageViewID="PV1"></telerik:RadTab>
                    <telerik:RadTab Text="Third" Value="Third" PageViewID="PV2"></telerik:RadTab>
                   
                </Tabs>
            </telerik:RadTabStrip>
         
        </telerik:RadPane>
     
        <telerik:RadSplitBar ID="RadSplitBar2" runat="server" Visible="false"></telerik:RadSplitBar>
         
        <telerik:RadPane ID="RadPane4" runat="server" Width="100%" Height="100%">
     
            <telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0" Width="100%" Height="100%">
             
                <telerik:RadPageView ID="PV0" runat="server" Width="100%" Height="100%">
                 
                    <telerik:RadSplitter ID="RadSplitter1" runat="server" Width="100%" Height="100%" Orientation="Horizontal">
                     
                        <telerik:RadPane ID="RadPane1" runat="server" Height="32px" Width="100%">
                            Top PV0
                        </telerik:RadPane>
                         
                        <telerik:RadSplitBar ID="RadSplitBar1" runat="server" Visible="false"></telerik:RadSplitBar>
                         
                        <telerik:RadPane ID="RadPane2" runat="server" Width="100%" Height="100%">
                         
                            <telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="SDS0"
                                GridLines="None" Height="100%" Width="100%" style="border:0;outline:none;">
                                <MasterTableView AutoGenerateColumns="False" DataSourceID="SDS0" style="border:0;outline:none;">
                                    <RowIndicatorColumn>
                                        <HeaderStyle Width="20px" />
                                    </RowIndicatorColumn>
                                    <ExpandCollapseColumn>
                                        <HeaderStyle Width="20px" />
                                    </ExpandCollapseColumn>
                                    <Columns>
                                        <telerik:GridBoundColumn DataField="Column1" DataType="System.Int32"
                                            HeaderText="Column1" ReadOnly="True" SortExpression="Column1"
                                            UniqueName="Column1">
                                        </telerik:GridBoundColumn>
                                    </Columns>
                                </MasterTableView>
                            </telerik:RadGrid>
                             
                            <asp:SqlDataSource ID="SDS0" runat="server"
                                SelectCommand="SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4"
                                ConnectionString="<%$ ConnectionStrings:DBConn %>">
                            </asp:SqlDataSource
                                   
                        </telerik:RadPane>
                         
                    </telerik:RadSplitter>
                     
                     
                </telerik:RadPageView>
                     
                <telerik:RadPageView ID="PV1" runat="server">
                 
                    <telerik:RadSplitter ID="RadSplitter3" runat="server" Width="100%" Height="100%" Orientation="Horizontal">
                         
                            <telerik:RadPane ID="RadPane5" runat="server" Height="32px" Width="100%">
                                Top PV1
                            </telerik:RadPane>
                             
                            <telerik:RadSplitBar ID="RadSplitBar3" runat="server" Visible="false"></telerik:RadSplitBar>
                             
                            <telerik:RadPane ID="RadPane6" runat="server" Width="100%" Height="100%">
                             
                                <telerik:RadGrid ID="RadGrid2" runat="server" DataSourceID="SDS1"
                                    GridLines="None" Height="100%" Width="100%" style="border:0;outline:none;">
                                    <MasterTableView AutoGenerateColumns="False" DataSourceID="SDS1" style="border:0;outline:none;">
                                        <RowIndicatorColumn>
                                            <HeaderStyle Width="20px" />
                                        </RowIndicatorColumn>
                                        <ExpandCollapseColumn>
                                            <HeaderStyle Width="20px" />
                                        </ExpandCollapseColumn>
                                        <Columns>
                                            <telerik:GridBoundColumn DataField="Column1" DataType="System.Int32"
                                                HeaderText="Column1" ReadOnly="True" SortExpression="Column1"
                                                UniqueName="Column1">
                                            </telerik:GridBoundColumn>
                                        </Columns>
                                    </MasterTableView>
                                </telerik:RadGrid>
                                 
                                <asp:SqlDataSource ID="SDS1" runat="server"
                                    SelectCommand="SELECT 11 UNION SELECT 12 UNION SELECT 13 UNION SELECT 14"
                                    ConnectionString="<%$ ConnectionStrings:DBConn %>">
                                </asp:SqlDataSource
                                       
                            </telerik:RadPane>
                             
                        </telerik:RadSplitter>
                         
                    </telerik:RadPageView>
                     
                    <telerik:RadPageView runat="server" ID="PV2" BackColor="Red" Width="100%" Height="100%"></telerik:RadPageView>
                               
            </telerik:RadMultiPage>   
        </telerik:RadPane>
         
    </telerik:RadSplitter>
     
     
     
     
    </form>
</body>
</html>

I've put all the code needed, including DataSources in the page itself so there is no code behind.
I haven't been able to figure out the problem, but my entire solution is based on this schema and I'm desperately looking for a solution.

Many thanks in advance.

Lorenzo 
Rosen
Telerik team
 answered on 22 Jul 2010
2 answers
102 views
hi,
In my application for all grid columns filtering is true.but for one column
they set "AllowFiltering"=false.
now i changed that to "AllowFiltering"=true.
when i am running the application filter is visible for that column.but it is not performing filtering
action.to do filter on that column do i have to set any properties?
suggest me in this,i am new to using this telerik controls.
thanks
shiva
Top achievements
Rank 1
 answered on 22 Jul 2010
2 answers
129 views
I think what I'm asking is very basic but I can't figure out what I'm doing wrong.

I have a grid with a tooltip. I'm using the demo for the grid and tried to adjust it to work with my database. It's in vb. I'm getting the following error when I hover over a link that has the tooltip.:

Object references not set to an instance of an object. Thank you for any help.

asp.x page:
<%@ Register Src="ProductDetails.ascx" TagName="ProductDetails" TagPrefix="uc1" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
    <link rel="Stylesheet" href="StyleSheet.css" />
</head>
<body class="BODY">
    <form id="Form1" method="post" runat="server">
    
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
    </telerik:RadScriptManager>
       
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadGrid1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="RadToolTipManager1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
    </telerik:RadAjaxLoadingPanel>
    <telerik:RadToolTipManager ID="RadToolTipManager1" OffsetY="-1" HideEvent="ManualClose"
        Width="250" Height="350" runat="server" OnAjaxUpdate="OnAjaxUpdate" RelativeTo="Element"
        Position="MiddleRight">
    </telerik:RadToolTipManager>
    <telerik:RadGrid ID="RadGrid1" Width="550" runat="server" DataSourceID="SqlDataSource1"
        GridLines="None" OnItemDataBound="RadGrid1_ItemDataBound" AllowPaging="true"
        AllowSorting="true" PageSize="10" OnItemCommand="RadGrid1_ItemCommand">
        <MasterTableView AutoGenerateColumns="False" CommandItemDisplay="None" CurrentResetPageIndexAction="SetPageIndexToFirst"
            DataKeyNames="CustomerID" DataSourceID="SqlDataSource1" Dir="LTR" Frame="Border"
            TableLayout="Auto">
            <Columns>
                <telerik:GridBoundColumn CurrentFilterFunction="NoFilter" DataField="CustomerID" Display="false"
                    DataType="System.Int32" FilterListOptions="VaryByDataType" ForceExtractValue="None"
                    HeaderText="ProductID" ReadOnly="True" SortExpression="CustomerID" UniqueName="CustomerID">
                </telerik:GridBoundColumn>
                <telerik:GridTemplateColumn HeaderText="Applicant" SortExpression="Applicant">
                    <ItemTemplate>
                        <asp:HyperLink ID="targetControl" runat="server" NavigateUrl="#" Text='<%# Eval("Applicant") %>'></asp:HyperLink>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridBoundColumn AllowSorting="true" DataField="CompanyName" HeaderText="Supplier"
                    SortExpression="CompanyName" UniqueName="CompanyName">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn AllowSorting="true" DataField="UnitPrice" DataFormatString="{0:C}"
                    HeaderText="Price" SortExpression="UnitPrice">
                </telerik:GridBoundColumn>
            </Columns>
            <EditFormSettings>
                <EditColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType">
                </EditColumn>
            </EditFormSettings>
        </MasterTableView>
    </telerik:RadGrid>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server"
            ConnectionString="<%$ ConnectionStrings:BureauConnectionString %>"
            SelectCommand="SELECT * FROM [bureauSummary]"></asp:SqlDataSource>
    
    </form>

vb code behind code:
Imports System.Web.SessionState
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Imports Telerik.Web.UI

Imports System.IO

Namespace Telerik.Web.Examples.ToolTip.TargetControlsAndAjax
    Partial Public Class DefaultVB
        Inherits System.Web.UI.Page
        Protected Sub OnAjaxUpdate(ByVal sender As Object, ByVal args As ToolTipUpdateEventArgs)
            Me.UpdateToolTip(args.Value, args.UpdatePanel)
        End Sub
        Private Sub UpdateToolTip(ByVal elementID As String, ByVal panel As UpdatePanel)
            Dim ctrl As Control = Page.LoadControl("ProductDetails.ascx")
            panel.ContentTemplateContainer.Controls.Add(ctrl)
            Dim details As ProductDetails = DirectCast(ctrl, ProductDetails)
            details.ProductID = elementID
        End Sub
        Protected Sub RadGrid1_ItemDataBound(ByVal sender As Object, ByVal e As GridItemEventArgs)
            If e.Item.ItemType = GridItemType.Item OrElse e.Item.ItemType = GridItemType.AlternatingItem Then
                Dim target As Control = e.Item.FindControl("targetControl")
                If Not [Object].Equals(target, Nothing) Then
                    If Not [Object].Equals(Me.RadToolTipManager1, Nothing) Then
                        'Add the button (target) id to the tooltip manager

                        Me.RadToolTipManager1.TargetControls.Add(target.ClientID, (TryCast(e.Item, GridDataItem)).GetDataKeyValue("CustomerID").ToString(), True)
                    End If
                End If
            End If
        End Sub
        Protected Sub RadGrid1_ItemCommand(ByVal source As Object, ByVal e As GridCommandEventArgs)
            If e.CommandName = "Sort" OrElse e.CommandName = "Page" Then
                RadToolTipManager1.TargetControls.Clear()
            End If

        End Sub
    End Class
End Namespace


ProductDetails.ascx  code:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ProductDetails.ascx.cs"
    Inherits="Telerik.Web.Examples.ToolTip.TargetControlsAndAjax.ProductDetails" %>

<table runat="server" style="width: 100%" id="ProductWrapper" border="0" cellpadding="2"
    cellspacing="0">
    <tr>
        <td style="text-align: center;">
            <asp:FormView ID="ProductsView" DataSourceID="ProductDataSource" DataKeyNames="CustomerID"
                runat="server" OnDataBound="ProductsView_DataBound">       
               
                <ItemTemplate>
                    <asp:Label CssClass="title" ID="Category" runat="server"><%# Eval("CoApplicant")%></asp:Label>
                    <hr />
                    <span class='title'>Equifax:</span>
                    <asp:Label CssClass="info" ID="Label1" runat="server"><%# Eval("Equifax")%></asp:Label>
                    <br />
                    <span class='title'>Experian:</span>
                    <asp:Label CssClass="info" ID="Label2" runat="server"><%# Eval("Experian")%></asp:Label>
                    <br />
                    <span class='title'>ID/OFAC:</span>
                    <asp:Label CssClass="info" ID="Label3" runat="server"><%# Eval("IDOFACText")%></asp:Label>
                    <br />
                </ItemTemplate>
            </asp:FormView>
        </td>
    </tr>
</table>

<asp:SqlDataSource ID="ProductDataSource" runat="server"
    ConnectionString="<%$ ConnectionStrings:BureauConnectionString %>"
    SelectCommand="SELECT * FROM [bureauSummary] WHERE ([CustomerID] = @CustomerID)">
    <SelectParameters>
        <asp:Parameter Name="CustomerID" Type="Int32" />
    </SelectParameters>
</asp:SqlDataSource>

ProductDetails.ascx  code:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.IO;


namespace Telerik.Web.Examples.ToolTip.TargetControlsAndAjax
{

    public partial class ProductDetails : System.Web.UI.UserControl
    {

        public string ProductID
        {
            get
            {
                if (ViewState["CustomerID"] == null)
                {
                    return "";
                }
                return (string)ViewState["CustomerID"];
            }
            set
            {
               
                ViewState["CustomerID"] = value;
            
            }
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            this.ProductDataSource.SelectParameters["CustomerID"].DefaultValue = this.ProductID;

            this.DataBind();
        }


        

    }
}




Patricia Byrne
Top achievements
Rank 1
 answered on 22 Jul 2010
3 answers
290 views
hi

I need filter expressions like "hi%there" with function "contains" in the grid. Having EnableLinqExpression = true makes a FilterExpression like "....contains(hi%there)", but finds no records.
Having EnableLinqExpression = false makes "LIKE '%hi%there%'" and returns all records, if there where no filter at all.

Any Ideas?

Ralph
Maria Ilieva
Telerik team
 answered on 22 Jul 2010
0 answers
137 views
Hello,

We recently discovered a problem with RadRotator's vertical scrolling in IE6/IE7. The problem has been fixed in the latest internal build that you can download from "Your account" section. As an immediate workaround, you can use the following fix:

<head runat="server">
    <title></title>
    <style type="text/css">
        html* .FixRotatorHeight .rrVerticalList
        {
            width: 100px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
    </telerik:RadScriptManager>
    <telerik:RadRotator ID="RadRotator1" runat="server" CssClass="FixRotatorHeight" ScrollDirection="Up"
        Width="100px" Height="200px" ItemHeight="100" ItemWidth="100" RotatorType="AutomaticAdvance"

Note the CSS class, assigned to the RadRotator control. The width property in the body of the CSS selector matches the width of the RadRotator. If you are using buttons for manual horizontal scrolling, decrease the width in the CSS selector by 20 pixels for each button.

Regards,
the Telerik team
Telerik Admin
Top achievements
Rank 1
Iron
 asked on 22 Jul 2010
1 answer
96 views
Hi Telerik Team,

Is there a way to allow pdf export to span pages widthwise? Normally pdf export restricts to one page width-wise, Is there a way to allow it to span to next page for extra columns?

Regards,
Zeeshan
 
Daniel
Telerik team
 answered on 22 Jul 2010
5 answers
221 views
Hello guys.

I'm using this example: http://demos.telerik.com/aspnet-ajax/grid/examples/programming/filteringtemplatecolumns/defaultcs.aspx

My doubt is: If I have 2 or more columns in my grid, and I need to put dropdown filter in each one, I really need to create a custom .cs page for each column?

If not, what's the suggestion?

Thanks in advance guys.

Have a nice Weekend.

Regards.
Mira
Telerik team
 answered on 22 Jul 2010
1 answer
276 views
Hi
I am dynamically generating the RadGrid. Everything is dynamic.
I have kept the autogenerateColumns property false. And i have dounded only one column. But when my page renders it shows all the columns in the database.But actually i want only one column. I have pasted the code below.

TableRow

 

objTR = new TableRow();

 

ControlToAdd.Controls.Add(objTR);

 

TableCell objTC;

 

 

DataTable forGridDT = new DataTable();

 

forGridDT =

Common.getDataTableByList(listQuery, ListName,ListColumns);

 

 

 

 

//I am getting the data from the share point. Which is returning me the all columns with values.

RadGrid
RadGrid1 = new RadGrid();

 

RadGrid1.ID =  objRadGrid

RadGrid1.AllowPaging = true;

 

RadGrid1.AutoGenerateColumns =

false;

 

RadGrid1.DataSource = forGridDT;

RadGrid1.DataBind();

 

 

GridBoundColumn boundColumn = new GridBoundColumn();

 

boundColumn.DataField =

"Category";

 

 

//boundColumn.DataType =Type.st;

 

boundColumn.HeaderText =

"Category";

 

boundColumn.UniqueName =

"Category";

 

RadGrid1.MasterTableView.Columns.Clear();

RadGrid1.MasterTableView.Columns.Add(boundColumn);

objTC =

new TableCell();

 

objTC.Width =

new Unit("100%");

 

objTC.Controls.Add(RadGrid1);

objTR.Controls.Add(objTC);

Shinu
Top achievements
Rank 2
 answered on 22 Jul 2010
1 answer
173 views
Hi guys,

i'm having an issue with a page where clicking a RadTreeNode shows the details of the clicked node.

If you then click a different node, the details relating to that node will show, etc.

This all works correctly, and the various components exist inside an update panel.

The problem occurs when a full-page postback occurs... (ie. not just the update panel)... after a full page postback, the treeview can still be seen, however the first time you click a node, that node becomes selected momentarily then becomes unselected again, and the details for that node don't show up as they should. You then have to click that node again to get the desired behaviour.

So basically after a full page postback you have to click the RadTreeNode twice instead of once to get its desired behaviour.

Any advice appreciated. Code shown below:

<%

@ Page Language="C#" MasterPageFile="~/Member.master" Title="Fylebase :: Professional Content Management System" %>

 

<%

@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %>

 

<%

@ Import Namespace="System.Data" %>

 

<

 

script runat="server">

 

 

protected void Page_Load(object sender, EventArgs e)

 

{

loadGalleries();

}

 

public override void DataBind()

 

{

 

base.ChildControlsCreated = false;

 

}

 

protected void btnAddGallery_Click(object sender, EventArgs e)

 

{

 

dbGALLERIES.addGallery(svars.user_id);

 

loadGalleries();

}

 

private void loadGalleries()

 

{

Accordion1.Panes.Clear();

 

DataSet ds = dbGALLERIES.getGalleries(svars.user_id);

 

 

foreach (DataRow dr in ds.Tables[0].Rows)

 

{

 

AccordionPane ap = new AccordionPane();

 

 

Literal lit = new Literal();

 

lit.Text = dr[

"gallery_name"].ToString();

 

ap.HeaderContainer.Controls.Add(lit);

Telerik.Web.UI.

RadTreeView rtv = new Telerik.Web.UI.RadTreeView();

 

Telerik.Web.UI.

RadTreeViewContextMenu menu = new Telerik.Web.UI.RadTreeViewContextMenu();

 

menu.ID =

"rtvcMenu1";

 

Telerik.Web.UI.

RadMenuItem rmi = new Telerik.Web.UI.RadMenuItem("Add Image");

 

menu.Items.Add(rmi);

rtv.ContextMenus.Add(menu);

 

 

//.. Start image menu

 

Telerik.Web.UI.

RadTreeViewContextMenu imgmenu = new Telerik.Web.UI.RadTreeViewContextMenu();

 

imgmenu.ID =

"rtvcMenu2";

 

Telerik.Web.UI.

RadMenuItem rmi2 = new Telerik.Web.UI.RadMenuItem("Add Image");

 

imgmenu.Items.Add(rmi2);

rmi2 =

new Telerik.Web.UI.RadMenuItem("Publish / Unpublish");

 

imgmenu.Items.Add(rmi2);

rmi2 =

new Telerik.Web.UI.RadMenuItem("Move Up");

 

imgmenu.Items.Add(rmi2);

rmi2 =

new Telerik.Web.UI.RadMenuItem("Move Down");

 

imgmenu.Items.Add(rmi2);

rtv.ContextMenus.Add(imgmenu);

 

//.. End image menu

 

 

rtv.ContextMenuItemClick +=

new Telerik.Web.UI.RadTreeViewContextMenuEventHandler(menuItem_click);

 

rtv.NodeClick +=

new Telerik.Web.UI.RadTreeViewEventHandler(rtv_NodeClick);

 

Telerik.Web.UI.

RadTreeNode node = new Telerik.Web.UI.RadTreeNode("Gallery Settings", "g" + dr["gallery_id_pk"].ToString());

 

node.ContextMenuID = menu.ID;

node.ForeColor = System.Drawing.

Color.FromName("#937e28");

 

node.Font.Bold =

true;

 

node.ToolTip =

"Right-click to add an image";

 

rtv.Nodes.Add(node);

 

DataSet imagesDS = dbGALLERIES.getImages(Convert.ToInt32(dr["gallery_id_pk"].ToString()));

 

 

foreach (DataRow imageDR in imagesDS.Tables[0].Rows)

 

{

Telerik.Web.UI.

RadTreeNode imageNode = new Telerik.Web.UI.RadTreeNode(imageDR["image_name"].ToString(),

 

imageDR[

"image_id_pk"].ToString());

 

imageNode.ContextMenuID = imgmenu.ID;

 

if (imageDR["image_isPublished"].ToString().Equals("Y"))

 

{

imageNode.ForeColor = System.Drawing.

Color.Black;

 

}

 

else

 

{

imageNode.ForeColor = System.Drawing.

Color.Red;

 

}

imageNode.ToolTip =

"Right-click for more options";

 

rtv.Nodes.Add(imageNode);

}

rtv.ExpandAllNodes();

ap.ContentContainer.Controls.Add(rtv);

Accordion1.Panes.Add(ap);

}

}

 

protected void menuItem_click(object sender, Telerik.Web.UI.RadTreeViewContextMenuEventArgs e)

 

{

Telerik.Web.UI.

RadTreeNode clickedNode = e.Node;

 

 

switch(e.MenuItem.Text)

 

{

 

case "Add Image":

 

 

int newImageID = dbGALLERIES.insertImage(Convert.ToInt32(clickedNode.TreeView.Nodes[0].Value.Substring(1)));

 

clickedNode.TreeView.Nodes.Add(

new Telerik.Web.UI.RadTreeNode("New Image", newImageID.ToString()));

 

 

break;

 

 

case "Publish / Unpublish":

 

 

if (clickedNode.ForeColor.Equals(System.Drawing.Color.Red))

 

{

 

dbGALLERIES.publishImage(Convert.ToInt32(clickedNode.Value));

 

 

if (clickedNode.Equals(clickedNode.TreeView.SelectedNode))

 

{

chkImageShowOnWebsite.Checked =

true;

 

}

clickedNode.ForeColor = System.Drawing.

Color.Black;

 

}

 

else

 

{

 

dbGALLERIES.unpublishImage(Convert.ToInt32(clickedNode.Value));

 

 

if (clickedNode.Equals(clickedNode.TreeView.SelectedNode))

 

{

chkImageShowOnWebsite.Checked =

false;

 

}

clickedNode.ForeColor = System.Drawing.

Color.Red;

 

}

 

break;

 

 

case "Move Up":

 

 

RadTreeView rtv = clickedNode.TreeView;

 

 

int index = rtv.Nodes.IndexOf(clickedNode);

 

 

 

if (index > 1)

 

{

 

RadTreeNode aboveNode = rtv.Nodes[index - 1];

 

 

 

String clickedValue = clickedNode.Value;

 

 

String aboveText = aboveNode.Text;

 

 

String aboveValue = aboveNode.Value;

 

System.Drawing.

Color aboveColor = aboveNode.ForeColor;

 

aboveNode.Text = clickedNode.Text;

aboveNode.Value = clickedNode.Value;

clickedNode.Text = aboveText;

clickedNode.Value = aboveValue;

aboveNode.ForeColor = clickedNode.ForeColor;

clickedNode.ForeColor = aboveColor;

 

 

dbGALLERIES.swapImageOrder(Convert.ToInt32(clickedValue), Convert.ToInt32(aboveValue));

 

 

if (clickedNode.Selected)

 

{

aboveNode.Selected =

true;

 

}

 

else if (aboveNode.Selected)

 

{

clickedNode.Selected =

true;

 

}

}

 

 

break;

 

 

case "Move Down":

 

 

RadTreeView rtv2 = clickedNode.TreeView;

 

 

int index2 = rtv2.Nodes.IndexOf(clickedNode);

 

 

if (index2 < (rtv2.Nodes.Count - 1))

 

{

 

RadTreeNode belowNode = rtv2.Nodes[index2 + 1];

 

 

String clickedValue = clickedNode.Value;

 

 

String belowText = belowNode.Text;

 

 

String belowValue = belowNode.Value;

 

System.Drawing.

Color belowColor = belowNode.ForeColor;

 

belowNode.Text = clickedNode.Text;

belowNode.Value = clickedNode.Value;

clickedNode.Text = belowText;

clickedNode.Value = belowValue;

belowNode.ForeColor = clickedNode.ForeColor;

clickedNode.ForeColor = belowColor;

 

dbGALLERIES.swapImageOrder(Convert.ToInt32(clickedValue), Convert.ToInt32(belowValue));

 

 

if (clickedNode.Selected)

 

{

belowNode.Selected =

true;

 

}

 

else if (belowNode.Selected)

 

{

clickedNode.Selected =

true;

 

}

}

 

break;

 

}

}

 

private void deselectAllExcept(AccordionPane ap)

 

{

 

foreach (AccordionPane acp in Accordion1.Panes)

 

{

 

if (acp.Equals(ap).Equals(false))

 

{

 

RadTreeView rtv = (RadTreeView)acp.Controls[1].Controls[0];

 

rtv.ClearSelectedNodes();

}

}

}

 

protected void rtv_NodeClick(object sender, Telerik.Web.UI.RadTreeNodeEventArgs e)

 

{

Telerik.Web.UI.

RadTreeNode clickedNode = e.Node;

 

 

AccordionPane ap = findAccordionPaneContainingNode(clickedNode.Value);

 

deselectAllExcept(ap);

 

if (clickedNode.Text.Equals("Gallery Settings"))

 

{

loadGallerySettings(

Convert.ToInt32(clickedNode.Value.Substring(1)));

 

 

svars.selected_value = Convert.ToInt32(clickedNode.Value.Substring(1));

 

}

 

else

 

{

loadImageDetails(

Convert.ToInt32(clickedNode.Value));

 

 

svars.selected_value = Convert.ToInt32(clickedNode.Value);

 

}

}

 

 

private void loadImageDetails(int imageID)

 

{

pnlGallery.Visible =

false;

 

pnlImage.Visible =

true;

 

 

DataSet ds = dbGALLERIES.getImageDetails(imageID);

 

txtImageName.Text = ds.Tables[0].Rows[0][

"image_name"].ToString();

 

chkImageShowOnWebsite.Checked =

func.charToBoolean(ds.Tables[0].Rows[0]["image_isPublished"].ToString());

 

txtImageDescription.Text = ds.Tables[0].Rows[0][

"image_description"].ToString();

 

lblImageError.Text =

"";

 

 

String filename = "" + ds.Tables[0].Rows[0]["image_filename"].ToString();

 

 

if (filename.Trim().Length > 0)

 

{

imgImage.ImageUrl =

"~/uploads/" + svars.user_id + "/galleries/" + filename;

 

}

 

else

 

{

imgImage.ImageUrl =

"~/images/noimage.gif";

 

}

}

 

private void loadGallerySettings(int galleryID)

 

{

pnlImage.Visible =

false;

 

pnlGallery.Visible =

true;

 

 

DataSet ds = dbGALLERIES.getGalleryDetails(galleryID);

 

txtGalleryName.Text = ds.Tables[0].Rows[0][

"gallery_name"].ToString();

 

chkGalleryShowOnWebsite.Checked =

func.charToBoolean(ds.Tables[0].Rows[0]["gallery_isPublished"].ToString());

 

txtGalleryDescription.Text = ds.Tables[0].Rows[0][

"gallery_description"].ToString();

 

lblGalleryError.Text =

"";

 

}

 

protected void btnSaveGallery_Click(object sender, EventArgs e)

 

{

lblGalleryError.Text =

"";

 

 

if (txtGalleryName.Text.Trim().Length < 1)

 

{

lblGalleryError.Text =

"Gallery name is required";

 

}

 

else

 

{

 

dbGALLERIES.updateGallery(svars.selected_value, txtGalleryName.Text.Trim(), txtGalleryDescription.Text.Trim(), chkGalleryShowOnWebsite.Checked);

 

lblGalleryError.Text =

"Gallery settings saved";

 

 

AccordionPane ap = findAccordionPaneContainingNode("g" + svars.selected_value.ToString());

 

 

Literal lit = (Literal)ap.HeaderContainer.Controls[0];

 

lit.Text = txtGalleryName.Text.Trim();

}

}

 

private Telerik.Web.UI.RadTreeNode findNode(String nodeValue)

 

{

 

RadTreeNode returnable = new RadTreeNode();

 

 

foreach (AccordionPane ap in Accordion1.Panes)

 

{

 

RadTreeView rtv = (RadTreeView)ap.Controls[1].Controls[0];

 

 

try

 

{

 

RadTreeNode rtn2 = rtv.FindNodeByValue(nodeValue);

 

 

if (rtn2 != null)

 

{

returnable = rtn2;

}

}

 

catch

 

{

}

}

 

return returnable;

 

}

 

private AccordionPane findAccordionPaneContainingNode(String nodeValue)

 

{

 

AccordionPane returnable = new AccordionPane();

 

 

foreach (AccordionPane ap in Accordion1.Panes)

 

{

 

RadTreeView rtv = (RadTreeView)ap.Controls[1].Controls[0];

 

 

try

 

{

 

RadTreeNode rtn2 = rtv.FindNodeByValue(nodeValue);

 

 

if (rtn2 != null)

 

{

returnable = ap;

}

}

 

catch

 

{

}

}

 

return returnable;

 

}

 

protected void btnSaveImage_Click(object sender, EventArgs e)

 

{

lblImageError.Text =

"";

 

 

if (txtImageName.Text.Trim().Length < 1)

 

{

lblImageError.Text =

"Image name is required";

 

}

 

else if(radUpload1.InvalidFiles.Count > 0)

 

{

lblImageError.Text =

"File is too large.<br/>(max 300kb)";

 

}

 

else

 

{

 

if (radUpload1.UploadedFiles.Count > 0)

 

{

 

String filename = radUpload1.UploadedFiles[0].FileName;

 

 

String userFolder = Server.MapPath("uploads\\" + svars.user_id);

 

 

String galleryFolder = userFolder + "\\galleries";

 

 

if (System.IO.Directory.Exists(userFolder).Equals(false))

 

{

System.IO.

Directory.CreateDirectory(userFolder);

 

}

 

if (System.IO.Directory.Exists(galleryFolder).Equals(false))

 

{

System.IO.

Directory.CreateDirectory(galleryFolder);

 

}

 

String newFilename = DateTime.Now.ToString("yyyyMMddHHmmss") + radUpload1.UploadedFiles[0].GetExtension();

 

 

String newFileLocation = galleryFolder + "\\" + newFilename;

 

radUpload1.UploadedFiles[0].SaveAs(newFileLocation);

 

dbGALLERIES.updateImage(svars.selected_value, txtImageName.Text.Trim(),

 

txtImageDescription.Text.Trim(), chkImageShowOnWebsite.Checked, newFilename);

imgImage.ImageUrl =

"~/uploads/" + svars.user_id + "/galleries/" + newFilename;

 

System.Drawing.

Image photoImg = System.Drawing.Image.FromFile(newFileLocation);

 

System.Drawing.

Image thumbPhoto = photoImg.GetThumbnailImage(100, 100, null, new System.IntPtr());

 

thumbPhoto.Save(newFileLocation +

"_th.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

 

}

 

else

 

{

 

dbGALLERIES.updateImage(svars.selected_value, txtImageName.Text.Trim(),

 

txtImageDescription.Text.Trim(), chkImageShowOnWebsite.Checked);

}

 

lblImageError.Text =

"Image settings saved";

 

loadGalleries();

}

}

 

protected void btnDeleteGallery_Click(object sender, EventArgs e)

 

{

 

int galleryID = svars.selected_value;

 

 

dbGALLERIES.deleteGallery(galleryID);

 

pnlGallery.Visible =

false;

 

loadGalleries();

}

 

</

 

script>

 

<

 

asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

 

</

 

asp:Content>

 

<

 

asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

 

 

<asp:UpdatePanel runat="server">

 

 

<ContentTemplate>

 

 

 

<table border=0 cellpadding=0 cellspacing=0 width="100%">

 

 

<tr>

 

 

<td style="vertical-align:top; width:200px;">

 

 

<ajax:Accordion ID="Accordion1" Width="200px" runat="server" SelectedIndex="0" HeaderCssClass="accordionHeader"

 

 

HeaderSelectedCssClass="accordionHeaderSelected" ContentCssClass="accordionContent" AutoSize="None"

 

 

FadeTransitions="true" TransitionDuration="250" FramesPerSecond="40"

 

 

RequireOpenedPane="true" SuppressHeaderPostbacks="true" >

 

 

</ajax:Accordion>

 

 

 

<div style="text-align:center; padding-top:15px;">

 

 

<asp:Button runat="server" Text="Add Gallery" ID="btnAddGallery" Height="30px" OnClick="btnAddGallery_Click" />

 

 

</div>

 

 

</td>

 

 

<td style="vertical-align:top; width:800px;">

 

 

<asp:Panel runat="server" ID="pnlGallery" Visible="false">

 

 

<table border=0 cellpadding="10px" cellspacing=0>

 

 

<tr>

 

 

<td>Gallery Name:</td>

 

 

<td><asp:TextBox runat="server" CssClass="fbTextBox" ID="txtGalleryName"></asp:TextBox></td>

 

 

</tr>

 

 

<tr>

 

 

<td>Show on Website?</td>

 

 

<td><asp:CheckBox runat="server" ID="chkGalleryShowOnWebsite" /></td>

 

 

</tr>

 

 

<tr>

 

 

<td>Description:</td>

 

 

<td><asp:TextBox runat="server" ID="txtGalleryDescription" CssClass="fbTextBox" TextMode="MultiLine" Width="400px" Height="60px"></asp:TextBox></td>

 

 

</tr>

 

 

<tr>

 

 

<td>&nbsp;</td>

 

 

<td style="text-align:left;">

 

 

<asp:Button runat="server" ID="btnSaveGallery" OnClick="btnSaveGallery_Click" Text="Save Changes"

 

 

Width="120px" Height="30px" />

 

 

&nbsp;

 

 

<asp:Button runat="server" ID="btnDeleteGallery" Text="Delete Gallery" Width="120px" Height="30px"

 

 

OnClick="btnDeleteGallery_Click"

 

 

OnClientClick="return confirm('Are you sure you want to delete this gallery?');" />

 

 

<div style="font-size:12px;">&nbsp;</div><asp:Label runat="server" ID="lblGalleryError" ForeColor="Red"

 

 

Font-Bold="true" Font-Size="12px"></asp:Label>

 

 

</td>

 

 

</tr>

 

 

</table>

 

 

</asp:Panel>

 

 

<asp:Panel runat="server" ID="pnlImage" Visible="false">

 

 

<table border=0 cellpadding="10px" cellspacing=0>

 

 

<tr>

 

 

<td>Image Name:</td>

 

 

<td><asp:TextBox runat="server" CssClass="fbTextBox" ID="txtImageName"></asp:TextBox></td>

 

 

</tr>

 

 

<tr>

 

 

<td>Show on Website?</td>

 

 

<td><asp:CheckBox runat="server" ID="chkImageShowOnWebsite" /></td>

 

 

</tr>

 

 

<tr>

 

 

<td>Description:</td>

 

 

<td><asp:TextBox runat="server" ID="txtImageDescription" CssClass="fbTextBox" TextMode="MultiLine" Width="400px" Height="60px"></asp:TextBox></td>

 

 

</tr>

 

 

<tr>

 

 

<td>Upload Image:</td>

 

 

<td>

 

 

<telerik:RadUpload ControlObjectsVisibility="None" InitialFileInputsCount="1" MaxFileSize="300000"

 

 

id="radUpload1" runat="server" ></telerik:RadUpload>

 

 

</td>

 

 

</tr>

 

 

<tr>

 

 

<td>&nbsp;</td>

 

 

<td style="text-align:left;">

 

 

<table border=0 cellpadding=0 cellspacing=0 width="100%">

 

 

<tr>

 

 

<td style="text-align:left; vertical-align:top; width:160px;">

 

 

<asp:Button runat="server" ID="btnSaveImage" OnClick="btnSaveImage_Click" Text="Save Changes"

 

 

Height="30px" /><div style="font-size:12px;">&nbsp;</div><asp:Label runat="server"

 

 

ID="lblImageError" ForeColor="Red" Font-Bold="true" Font-Size="12px"></asp:Label>

 

 

</td>

 

 

<td style="padding-left:20px; text-align:left; vertical-align:top;">

 

 

<asp:Image runat="server" ID="imgImage" Width="230px" BorderColor="#666666"

 

 

BorderStyle="Solid" BorderWidth="1px" ImageUrl="~/images/noimage.gif" />

 

 

</td>

 

 

</tr>

 

 

</table>

 

 

</td>

 

 

</tr>

 

 

</table>

 

 

</asp:Panel>

 

 

</td>

 

 

</tr>

 

 

</table>

 

 

 

</ContentTemplate>

 

 

 

<Triggers>

 

 

<asp:PostBackTrigger ControlID="btnSaveImage" />

 

 

</Triggers>

 

 

</asp:UpdatePanel>

 

</

 

asp:Content>

 


Helen
Telerik team
 answered on 22 Jul 2010
Narrow your results
Selected tags
Tags
+? more
Top users last month
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Rakhee
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Rakhee
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?