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

I am currently attempting to solve a small bug in my web project. The bug is that, in certain scenarios, the width is too large of a RadPane I have created programatically. 

So, first off, the code that is causing the issue:

/// <summary>
/// Creates a RadSplitter and places the two panes it will hold onto it.
/// In addition, sets those panes dimensions such that they are appropriate for
/// the orientation of the RadSplitter.
///
/// I divide height and width in half because there are two panes.
/// </summary>
/// <returns> The rad splitter. </returns>
public static CormantRadSplitter CreateNewContent(Orientation orientation, RadPane parent)
{
    Logger.InfoFormat("Creating new content to be placed upon: {0}", parent.ID);
 
    CormantRadSplitter splitter = new CormantRadSplitter(orientation);
 
    CormantRadPane firstPane = new CormantRadPane();
    CormantRadDockZone firstDockZone = new CormantRadDockZone();
    firstPane.Controls.Add(firstDockZone);
    splitter.Controls.Add(firstPane);
 
    CormantRadPane secondPane = new CormantRadPane();
    splitter.Controls.Add(new CormantRadSplitBar(orientation, firstPane.ID, secondPane.ID));
 
    CormantRadDockZone secondDockZone = new CormantRadDockZone();
    secondPane.Controls.Add(secondDockZone);
    splitter.Controls.Add(secondPane);
 
    switch (orientation)
    {
        case Orientation.Horizontal:
            firstPane.PanePosition = PanePositions.Top;
            secondPane.PanePosition = PanePositions.Bottom;
            //firstPane.Height = secondPane.Height = new Unit(parent.Height.Value / 2, UnitType.Pixel);
            //firstPane.Width = secondPane.Width = parent.Width;
            break;
        case Orientation.Vertical:
            firstPane.PanePosition = PanePositions.Left;
            secondPane.PanePosition = PanePositions.Right;
            //firstPane.Height = secondPane.Height = parent.Height;
            //firstPane.Width = secondPane.Width = new Unit(parent.Width.Value / 2, UnitType.Pixel);
            break;
    }
 
    return splitter;
}

The lines which are commented out are the culprits.

I believe the issue arises from 'fighting' with what Telerik/WebControls is trying to do. These panes are created with the intent of filling all the space they are given, but no more. The panes will do that by default -- their height and width properties are unset -- which causes them to use height/width: auto.

So, why do I have code which sets their height and width, then? My reasoning is that it is impossible to properly save the state of my page without explicitly defining the dimensions. If I execute the above code, with lines commented out, and then perform a hard refresh on the page -- the controls expect dimensions to regenerate with. If I leave them unset here, they will indeed figure out how to adjust themselves (they figure it out even if I DO tell them dimensions!) Unfortunately, the panes are resizable by the end user. If I do not save/load the dimensions of each pane then it is impossible to support persisting resized panes. (Not saving dimensions will cause each pane to take up half of its parents space assuming 2 panes regardless of how they were sized before refresh).

So, I am trying to setup each panes dimensions properly. I thought the above code did just that, but I am experiencing a little quirk! If I place a RadSplitter with vertical orientation on the page, then place a RadDock in the RHS pane, the RadDock spills out of the RadPane.

Here's an example image: http://i.imgur.com/4T8tu.png

In this image you will see a few things: An example where the RadDock is spilling out of the pane on the RHS, as well as an example where the RadDock stays contained inside of a horizontal-oriented splitter's pane. I am not sure why the horizontal one always seems to be fine.

Nevertheless, the issue seems to be pretty easy to see -- I just want to make the right decision. When I create that vertical splitter seen in the image -- the width of each pane (for example) is 502px. After a hard refresh and inspecting the pane elements on the page, I see that their widths have been changed to 499 and 500. These post-hardrefresh widths are appropriate, my calculated widths are not. 

Is this just as simple as taking into account the width of the RadSplitBar being put onto the RadSplitter -- and subtracting that from the widths of each of the panes? If so, I wonder why the same issue does not occur with horizontal-oriented splitters? Also, the width of a splitBar isn't known at creation -- so I'd just be using a hardcoded width here.. a little scary.

Anyway, like I said.. I could probably force this solution pretty easily. I am just trying to understand -why- this is happening and what I can do to fix it properly in a way that's understandable to future developers -- not just a hardcoded number.

Thanks for your time

Sean


Dobromir
Telerik team
 answered on 11 Jul 2011
1 answer
78 views
Hello, i have a problem with collapsing NestedViewTemplate.
I have Grid with NedtedViewTemplate, when i expand an row everythink works fine, but collapsing not working.
If i click another row, the first is collapsing automaticaly, it`s imposible to expand two rows in one time, and also can`t collaps any row. Please help me with it.
Code below-

<telerik:RadGrid runat="server" ID="rgBase" OnNeedDataSource="rgBase_OnNeedDataSource" AutoGenerateColumns="false">

<MasterTableView EditMode="InPlace" AllowFilteringByColumn="true" ExpandCollapseColumn-Display="true" EnableViewState="false" AllowNaturalSort="false" AllowMultiColumnSorting="false" HierarchyLoadMode="ServerOnDemand" TableLayout="Fixed" Width="100%">

<NestedViewTemplate>

 

<asp:Label ID="lName" Text='<%# Eval("new_materialid") %>' runat="server" Visible="true"></asp:Label>

 

</NestedViewTemplate>

 

<Columns>

<telerik:GridTemplateColumn HeaderText="Column1" AllowFiltering="false" SortExpression="qty" UniqueName="qty" >

 

<ItemTemplate>

 

<asp:Label ID="lQTY" Text='<%# Eval("qty") %>' runat="server"></asp:Label>

 

</ItemTemplate>

 

<ItemStyle CssClass="gridItem" HorizontalAlign="Left" />

 

<HeaderStyle CssClass="gridHeader" Width="110" HorizontalAlign="Left"/>

 

</telerik:GridTemplateColumn>

<telerik:GridTemplateColumn HeaderText="Column2" AllowFiltering="false" UniqueName="remain" SortExpression="remain">

 

<ItemTemplate>  

 

<asp:Label ID="lRemain" Text='<%# Eval("remain") %>' runat="server"></asp:Label>

 

</ItemTemplate>

 

<ItemStyle CssClass="gridItem" Width="100" HorizontalAlign="Left" />

 

<HeaderStyle CssClass="gridHeader" Width="110" HorizontalAlign="Left"/>

 

</telerik:GridTemplateColumn>

</Columns>

</MasterTableView>

 

<SortingSettings EnableSkinSortStyles="false" />

<ClientSettings AllowColumnsReorder="true" ColumnsReorderMethod="Reorder" >

 

<Scrolling AllowScroll="true" SaveScrollPosition="True" UseStaticHeaders="false"></Scrolling>

 

<Resizing AllowColumnResize="true" ResizeGridOnColumnResize="false" EnableRealTimeResize="false" />

 

<Selecting AllowRowSelect="true" />

<ClientEvents/>

</ClientSettings>

<SelectedItemStyle

CssClass="gridSelectedItemStyle"/>

</telerik:RadGrid>

 

protected void rgBase_OnNeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)

 

{

 

 

string _id = Request["id"].ToString();

 

 

 

Guid entityID = new Guid(_id);

 

ReloadData(3, entityID);

}


Tsvetina
Telerik team
 answered on 11 Jul 2011
2 answers
99 views
dear all,

I am trying to add in pictures for the tabs, and want them to overlap (like the attached picture).

I use margin on all of them, so that they will squeeze together, and then use z-index to arrange them.

but the problem is the z-index only affects the first tab, the other 3 tabs does not arrange according to the z-index

I use C# (Telerik Version=2010.3.1317.35) and my code looks like :

AddTab("Account Info", true, "10");
AddTab("Enter Info", true, "8");
AddTab("Confirm Info", true, "2");
AddTab("Submit", true, "1");

private void AddTab(string tabName, bool enabled, string zIndex)
{
RadTab tab = new RadTab(tabName);

tab.Style.Add("margin-right", "-28px");
tab.Style.Add("position", "relative");
tab.Style.Add("z-index", zIndex);
tab.Enabled = enabled;
RadTabStrip1.Tabs.Add(tab);
Tho Shi Teng
Top achievements
Rank 1
 answered on 11 Jul 2011
2 answers
84 views
I need to dynamically add some controlls to a web user control.
  
I'm putting all the controlls to a Table control and adding to the page as follows at the RenderControl event.

 

Public Overrides Sub RenderControl(ByVal writer As System.Web.UI.HtmlTextWriter)

 

 

Dim panel As New Panel

 

 

Dim outerTable As New Table

 

outerTable = generateDynamicControls()

panel.Controls.Add(outerTable)

panel.RenderControl(writer)

 

MyBase.RenderControl(writer)

 

 

End Sub

 


When I adding simple ASP controls to this outer table, it is working fine.
But when I add Telerik Controls gives following error when it execute  "panel.RenderControl(writer)" code.
Error:
Page cannot be null. Please ensure that this operation is being performed in the context of an ASP.NET request.

I'm using a Master page also.

Can u help me?
Sebastian
Telerik team
 answered on 11 Jul 2011
2 answers
101 views
Hi All,

I want to use two Pager Templates in my rad grid with some different controls say Template at the top works for the paging and sorting and the Pager at the bottom contains the drop down for controlling records per page. Is it possible in radGrid to use Pager Templates like this having different controls inside it?

Thanks in Advance.


  
Vinay
Top achievements
Rank 1
 answered on 11 Jul 2011
1 answer
70 views
Hi guys,

I have a short question.
I would like to set GridBoundColumns visibility to false if the column is empty. Can you please help me?

Thanks,
Ervin
Shinu
Top achievements
Rank 2
 answered on 11 Jul 2011
1 answer
259 views
Hi everybody,

Since RadNumericTextBoxes do not provide a build-in feature to have it as required field, we implemented a custom validator that checks for a missing value. This validator works well, if the NumericTextBox is not within a RadGrid. If we use the custom validator within a EditTemplate, it is not invoked. When we use a asp:RequiredFieldValidor instead, the validation is processed. Why is a custom validor not invoked when we click "Insert" or "Update" while a RequiredFieldValidator works correctly?

Thanks in advance
Marco
<EditFormSettings EditFormType="Template">
<EditColumn FilterControlAltText="Filter EditCommandColumn column" />
<FormTemplate>
<table cellspacing="2" cellpadding="1" border="0">
<tr>
<td>
    <telerik:RadNumericTextBox ID="Amount" runat="server" DbValue='<%# Bind("Amount") %>' Width="80px" />
        <!-- This one is invoked -->
    <asp:RequiredFieldValidator ControlToValidate="Amount" ErrorMessage="*" runat="server" Text="*" />
        <!-- This one is NOT invoked but works well when not embedded in RadGrid-->
    <asp:CustomValidator ID="Amount_Required" ClientValidationFunction="CheckNumberRequired"
            ControlToValidate="Amount" runat="server" ValidateEmptyText="true" />
</td>
</tr>
Mira
Telerik team
 answered on 11 Jul 2011
3 answers
88 views
Hello telerik, is there any way to hide the light gray lines that appear in a hierarchical grid?

thanks
Shinu
Top achievements
Rank 2
 answered on 11 Jul 2011
1 answer
253 views
Hi ,

Your reqirement is like one control will have rad grid with autogenerate column = true. And dynamically according to the page type the datasource will be set i.e. like if page is for customer then  list of customer will be there. If page is for product then product list will be the datasource for radgrid. Also we are goinig to have filters in each page for each cloumns.
Here my question is how can i apply filter to columns which are auto generated?

Thanks in advance.
Let me know if more info is neeeded.
Princy
Top achievements
Rank 2
 answered on 11 Jul 2011
1 answer
113 views
We need to customise the popup that is we want to change the "Ok" & "Cancel" button look up & background color
and I also want to change the title of popup as customised.How can I do this please suggest me.

Thanks
Jaichand
Princy
Top achievements
Rank 2
 answered on 11 Jul 2011
Narrow your results
Selected tags
Tags
+? more
Top users last month
Top achievements
Rank 1
Iron
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ivory
Top achievements
Rank 1
Iron
Nurik
Top achievements
Rank 2
Iron
Iron
YF
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Top achievements
Rank 1
Iron
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ivory
Top achievements
Rank 1
Iron
Nurik
Top achievements
Rank 2
Iron
Iron
YF
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?