Telerik Forums
UI for ASP.NET AJAX Forum
2 answers
153 views
Hello all, i'm having an issue attempting to Sum a nested grid column using Aggregate="Sum" with hiearchy ONLY when a user deletes a row from the nested grid (any Rebind() commands result in error listed below). If I remove the Aggregate="Sum" parameter from the nested grid, all ajax functionality works perfectly (rows removed upon delete, database values update from edit, etc.). But if the Aggregate parameter is used, I keep getting the following error:

[ColumnName] is neither a DataColumn nor a DataRelation for table.

The grid also utilizes RadAjax with an AjaxSetting to update itself. I'm experienced with the RadGrid, having deployed it various times before, but this one is stumping me and holding up the release of the project. Any help would be greatly appreciated.

Here's the code used:

<UX:RadGrid ID="uxExpenseGrid" ShowStatusBar="true" AutoGenerateColumns="false" AllowSorting="false" GridLines="None" OnItemCommand="GridItemCommand" OnNeedDataSource="InitEmployeeExpenses" OnDetailTableDataBind="EmployeeExpensesDataBind" EnableEmbeddedSkins="false" Skin="BMT" OnPreRender="InitPreRender" runat="server">  
                <MasterTableView Name="rootExpenses" HierarchyLoadMode="ServerBind" NoMasterRecordsText="&nbsp;&nbsp;No employee expenses recorded.">  
                    <DetailTables> 
                        <UX:GridTableView HeaderStyle-CssClass="gridSubHeader" ShowFooter="true" Width="100%" Name="rootExpensesSummary" GridLines="None">  
                            <Columns> 
                                <UX:GridBoundColumn DataField="ExpenseId" ReadOnly="true" UniqueName="ExpenseId" Display="false" /> 
                                <UX:GridBoundColumn DataField="EmployeeId" ReadOnly="true" UniqueName="EmployeeId" Display="false" /> 
                                <UX:GridBoundColumn DataField="ExpenseJob" ReadOnly="true" UniqueName="ExpenseJob" Display="false" /> 
                                <UX:GridBoundColumn DataField="JobDescription" ReadOnly="true" UniqueName="JobDescription" Display="false" /> 
                                <UX:GridBoundColumn DataField="EntryType" ReadOnly="true" UniqueName="EntryType" Display="false" /> 
                                <UX:GridBoundColumn DataField="EntryDate" ReadOnly="true" UniqueName="EntryDate" Display="false" /> 
                                <UX:GridBoundColumn DataField="ExpenseDate" ReadOnly="true" HeaderText="Date" UniqueName="ExpenseDate" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="11%" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" /> 
                                <UX:GridBoundColumn DataField="JobId" ReadOnly="true" HeaderText="Job Id" UniqueName="JobId" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="8%" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" /> 
                                <UX:GridBoundColumn DataField="TaskNumber" ReadOnly="true" HeaderText="Task #" UniqueName="TaskNumber" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="7%" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" /> 
                                <UX:GridBoundColumn DataField="TaskName" ReadOnly="true" HeaderText="Task Name" UniqueName="TaskName" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="17%" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" /> 
                                <UX:GridBoundColumn DataField="OverheadType" ReadOnly="true" HeaderText="Overhead Account" UniqueName="OverheadType" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="17%" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" /> 
                                <UX:GridBoundColumn DataField="CostCode" ReadOnly="true" HeaderText="Cost Code" UniqueName="CostCode" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="9%" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" FooterText="Sub Total: " /> 
                                <UX:GridBoundColumn DataField="Amount" HeaderText="Amount" UniqueName="Amount" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="8%" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" FooterStyle-Height="30" FooterStyle-Font-Bold="true" DataFormatString="{0:C}" FooterAggregateFormatString="{0:C}" Aggregate="Sum" /> 
                                <UX:GridBoundColumn DataField="ExchangeRate" ReadOnly="true" HeaderText="Rate" UniqueName="ExchangeRate" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="5%" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" /> 
                                <UX:GridBoundColumn DataField="Description" ReadOnly="true" HeaderText="Description" UniqueName="Description" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="11%" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" /> 
                                <UX:GridTemplateColumn  UniqueName="editTemplate" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="1%" ItemStyle-HorizontalAlign="Center" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0">  
                                    <ItemTemplate> 
                                        <asp:ImageButton ID="btnEdit" CommandName="Edit" AlternateText="Edit" runat="server" /> 
                                    </ItemTemplate> 
                                </UX:GridTemplateColumn> 
                                <UX:GridTemplateColumn UniqueName="deleteTemplate" HeaderStyle-CssClass="hoursHeader" ItemStyle-Width="1%" ItemStyle-HorizontalAlign="Center" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0">  
                                    <ItemTemplate> 
                                        <asp:ImageButton ID="btnDelete" CommandName="Delete" AlternateText="Delete" runat="server" /> 
                                    </ItemTemplate> 
                                </UX:GridTemplateColumn> 
                            </Columns> 
                            <EditFormSettings UserControlName="~/Expense/EditDirectExpense.ascx" EditFormType="WebUserControl">  
                                <EditColumn UniqueName="EditViaUserControl" /> 
                            </EditFormSettings> 
                        </UX:GridTableView> 
                    </DetailTables> 
                    <Columns> 
                        <UX:GridBoundColumn DataField="EmployeeId" ReadOnly="true" UniqueName="EmployeeId" Display="false" /> 
                        <UX:GridBoundColumn DataField="ExpenseJob" ReadOnly="true" UniqueName="ExpenseJob" Display="false" /> 
                        <UX:GridBoundColumn DataField="JobDescription" HeaderText="Expense Job/Account" UniqueName="JobDescription" ItemStyle-Width="50%" ItemStyle-BackColor="#dae2e8" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" ItemStyle-CssClass="hoursExpanded" /> 
                        <UX:GridBoundColumn DataField="EntryType" HeaderText="Expense Type" UniqueName="EntryType" ItemStyle-Width="50%" ItemStyle-BackColor="#dae2e8" ItemStyle-BorderStyle="None" ItemStyle-BorderWidth="0" ItemStyle-CssClass="hoursExpanded" /> 
                    </Columns> 
                </MasterTableView> 
            </UX:RadGrid> 

protected void InitEmployeeExpenses(object source, GridNeedDataSourceEventArgs e)  
            {  
                if (Session != null)  
                {  
                    var employeeId = 0;  
                    employeeId = Convert.ToInt32(Session["IntraDotNet_EmployeeId"].ToString());  
                    var updatedExpenseTable = LoadEmployeeExpensesByDateRange(employeeId, uxCustomDatePicker1.SelectedDate.Value.ToString(), uxCustomDatePicker2.SelectedDate.Value.ToString());  
                    uxExpenseGrid.DataSource = null;  
                    uxExpenseGrid.DataSource = updatedExpenseTable;  
                    uxExpenseGrid.MasterTableView.DataKeyNames = new string[] {"ExpenseJob"};  
                }  
            } 

protected void GridItemCommand(object source, GridCommandEventArgs e)  
            {  
                if (e.CommandName == RadGrid.DeleteCommandName)  
                {  
                    var deletedItem = e.Item as GridEditableItem;  
                    if (deletedItem != null)  
                    {  
                        var expenseId = Convert.ToInt32(deletedItem["ExpenseId"].Text);  
                        DeleteExpense(expenseId);  
                        uxExpenseGrid.MasterTableView.ClearEditItems();  
                        uxExpenseGrid.MasterTableView.Rebind();  
                    }  
                }  
                else if (e.CommandName == RadGrid.EditCommandName)  
                {  
                    var editedItem = e.Item as GridEditableItem;  
                    if (editedItem != null)  
                    {  
                        // Load direct labor hour edit usercontrol  
                        if (editedItem["EntryType"].Text.ToUpper() == "DIRECT")  
                        {  
                            uxExpenseGrid.MasterTableView.ClearEditItems();  
                            e.Item.OwnerTableView.EditFormSettings.UserControlName = "~/Expense/EditDirectExpense.ascx";  
                        }  
 
                        // Load overhead labor hour edit usercontrol  
                        else if (editedItem["EntryType"].Text.ToUpper() == "OVERHEAD")  
                        {  
                            uxExpenseGrid.MasterTableView.ClearEditItems();  
                            e.Item.OwnerTableView.EditFormSettings.UserControlName = "~/Expense/EditOverheadExpense.ascx";  
                        }  
                    }  
                }  
                else if (e.CommandName == RadGrid.UpdateCommandName)  
                {  
                    var updatedItem = e.Item as GridEditableItem;  
                    if (updatedItem != null)  
                    {  
                        // DIRECT EXPENSE UPDATE ---------------------------------------------------------------  
                        if (updatedItem["EntryType"].Text.ToUpper() == "DIRECT")  
                        {  
                            var employeeId = Convert.ToInt32(updatedItem["EmployeeId"].Text);  
                            var expenseJob = updatedItem["ExpenseJob"].Text;  
                            var startDate = uxCustomDatePicker1.SelectedDate.Value.ToString();  
                            var endDate = uxCustomDatePicker2.SelectedDate.Value.ToString();  
 
                            var timeEntryTable = LoadEmployeeExpensesByType(employeeId, expenseJob, startDate, endDate);  
                            var userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID);  
 
                            // Init datarow  
                            DataRow[] changedRows = timeEntryTable.Select("ExpenseId = " + updatedItem["ExpenseId"].Text);  
 
                            // No matching record to update; Cancel update request  
                            if (changedRows.Length != 1)  
                            {  
                                e.Canceled = true;  
                                return;  
                            }  
 
                            // Gather nested UserControl form objects  
                            var editId = Convert.ToInt32(updatedItem["ExpenseId"].Text);  
                            var editDate = ((RadDatePicker)userControl.FindControl("uxDirectDate")).DateInput.SelectedDate.ToString();  
                            var editJobId = ((RadComboBox)userControl.FindControl("uxDirectJobIds")).SelectedItem.Value;  
                            var editJobTaskNumber = Convert.ToInt32(((RadComboBox)userControl.FindControl("uxDirectJobTasks")).SelectedItem.Value);  
                            var editCostCode = ((RadComboBox)userControl.FindControl("uxDirectCostCodes")).SelectedItem.Value;  
                            var editAmount = Convert.ToDecimal(((RadNumericTextBox)userControl.FindControl("uxDirectAmount")).Text);  
                            var editExchangeRate = Convert.ToDecimal(((RadNumericTextBox)userControl.FindControl("uxDirectExchangeRate")).Text);  
                            var editDescription = ((RadTextBox)userControl.FindControl("uxDirectDescription")).Text;  
                            var editUser = Session["IntraDotNet_DomainAccount"].ToString();  
 
                            UpdateDirectExpense(editId, editDate, editJobId, editJobTaskNumber, editCostCode, editAmount, editExchangeRate, editDescription, editUser);  
 
                            if (Session != null && Session["editFormEntryId"] != null)  
                                Session.Contents.Remove("editFormEntryId");  
                        }  
 
                        // OVERHEAD EXPENSE UPDATE -------------------------------------------------------------  
                        else if (updatedItem["EntryType"].Text.ToUpper() == "OVERHEAD")  
                        {  
                            var employeeId = Convert.ToInt32(updatedItem["EmployeeId"].Text);  
                            var expenseJob = updatedItem["ExpenseJob"].Text;  
                            var startDate = uxCustomDatePicker1.SelectedDate.Value.ToString();  
                            var endDate = uxCustomDatePicker2.SelectedDate.Value.ToString();  
 
                            var timeEntryTable = LoadEmployeeExpensesByType(employeeId, expenseJob, startDate, endDate);  
                            var userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID);  
 
                            // Init datarow  
                            DataRow[] changedRows = timeEntryTable.Select("ExpenseId = " + updatedItem["ExpenseId"].Text);  
 
                            // No matching record to update; Cancel update request  
                            if (changedRows.Length != 1)  
                            {  
                                e.Canceled = true;  
                                return;  
                            }  
 
                            // Gather nested UserControl form objects  
                            var editId = Convert.ToInt32(updatedItem["ExpenseId"].Text);  
                            var editDate = ((RadDatePicker)userControl.FindControl("uxOverheadDate")).DateInput.SelectedDate.ToString();  
                            var editOverheadType = ((RadComboBox)userControl.FindControl("uxOverheadTypes")).SelectedItem.Value;  
                            var editAmount = Convert.ToDecimal(((RadNumericTextBox)userControl.FindControl("uxOverheadAmount")).Text);  
                            var editExchangeRate = Convert.ToDecimal(((RadNumericTextBox)userControl.FindControl("uxOverheadExchangeRate")).Text);  
                            var editDescription = ((RadTextBox)userControl.FindControl("uxOverheadDescription")).Text;  
                            var editUser = Session["IntraDotNet_DomainAccount"].ToString();  
 
                            UpdateOverheadExpense(editId, editDate, editOverheadType, editAmount, editExchangeRate, editDescription, editUser);  
                        }  
                    }  
                    uxExpenseGrid.MasterTableView.ClearEditItems();  
                }  
                else if (e.CommandName == RadGrid.CancelCommandName)  
                {  
                    if (Session != null && Session["editFormEntryId"] != null)  
                        Session.Contents.Remove("editFormEntryId");  
                }  
            } 

protected void EmployeeExpensesDataBind(object source, GridDetailTableDataBindEventArgs e)  
            {  
                var dataItem = e.DetailTableView.ParentItem;  
                var employeeId = Convert.ToInt32(dataItem["EmployeeId"].Text);  
                var expenseJob = dataItem["ExpenseJob"].Text;  
                var startDate = uxCustomDatePicker1.SelectedDate.Value.ToString();  
                var endDate = uxCustomDatePicker2.SelectedDate.Value.ToString();  
                var updatedExpenseTable = LoadEmployeeExpensesByType(employeeId, expenseJob, startDate, endDate);  
                e.DetailTableView.DataKeyNames = new string[] {"ExpenseJob"};  
                e.DetailTableView.DataSource = updatedExpenseTable;  
            } 

Again, any help being able to Sum a nested grid column would be awesome. This is something that is preventing the project from going live. Thank you.

Yavor
Telerik team
 answered on 23 Sep 2009
1 answer
141 views
Ok, this is making me feel like a big dummy, because after searching apparently nobody else has ever had this problem.  When I try to use HideEvent="ManualClose" with my tooltips, the [x] for closing the tooltip appears on top of the tooltip text, hiding some of the text. What simple thing am I missing here?  If it matters, I am using the Office2007 skin and not specifying a fixed height, since the length of text can vary.
Martin
Telerik team
 answered on 23 Sep 2009
1 answer
152 views
Hi,

Suppose I have 20 records in my grid. I apply a filter/sort. I get 10 records. Is there a way to access "only" these 10 records out of the complete dataset?

Context: While editing, my user wants to update a field in only one record, click on a checkbox to say "Apply to all filtered records" and wants the changes to be applied to the filtered dataset.

Yavor
Telerik team
 answered on 23 Sep 2009
1 answer
419 views
Hello,

I'm trying to implement an extra toolbar button in my RadEditor that will call my codebehind via a Page Method and submit some content.  We're using Master Pages and I have my RadScriptManager on the master page:

<telerik:RadScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />

for my RadEditor in my ASCX user control I have:
<telerik:EditorTool Name="SaveDesign" Text="SAVE" ShowText="true" ShowIcon="false" />

and further down:

<script type="text/javascript"> 
Telerik.Web.UI.Editor.CommandList["SaveDesign"] = function(commandName, editor, args) 
{ 
   PageMethods.MySave("input string",CallSuccess,CallFail); 
}; 
 
function CallSuccess(results, userContext, methodName) 
{ 
 alert(results); 
} 
function CallFail(errors, userContext, methodName) 
{ 
 alert(errors.get_Message()); 
} 
</script> 
 

and in my codebehind I have:

[System.Web.Services.WebMethod()] 
        public static string SaveShit(string stuff) 
        { 
            return "did something"; 
        } 


When I browse the page and click the toolbar button I get the error:

Error: 'PageMethods' is undefined

I'm kind of stuck with this, any help would be appreciated.
Rumen
Telerik team
 answered on 23 Sep 2009
2 answers
106 views
Hi, i have my own skin for my slider, (vertical slider)

with :

 
.RadSlider_simbaSkin .rslItemsWrapper .rslItemSelected  
{   /*background: url('Slider/DragVerticalHandle.png') no-repeat;*/ 
    background: url('Slider/DragVerticalHandle.png') no-repeat; 
    /*border:1px solid green;*/ 
    color: #999900; 
} 

Everything is working fine, except when my first element is selected, where there is no background image;

I've searched why, and with FireBug i found this :

.Radslider .rslVertical .rslItemsWrapper .rslItemFirst, .RadSlider .rslHorizontal .rslItemsWrapper .rslItemFirst { 
background-image:none; 
} 

And its removing my background image when my first element is selected.

And it's not in my code or in my css file, its in a "WebResource.axd?d=YR8ix.............................................&t=6338....0316" file.


How can i find this line and delete it ?

Tsvetie
Telerik team
 answered on 23 Sep 2009
1 answer
175 views
void RadChart1_ItemDataBound(object sender, ChartItemDataBoundEventArgs e)  
    {  
        DataRowView drv = e.DataItem as DataRowView;  
        DateTime startDate = (DateTime)drv["EventDate"];  
        DateTime endDate = (DateTime)drv["EndDate"];  
        StringBuilder sb = new StringBuilder();  
        sb.Append(drv["Title"].ToString());  
        sb.AppendFormat("\n{0} - {1}", startDate.ToShortDateString(), endDate.ToShortDateString());  
        e.SeriesItem.Name = drv["Source"].ToString();  
        e.SeriesItem.ActiveRegion.Tooltip = sb.ToString();  
          
    } 
I'm struggling getting the series names to show up properly in the legend. All I get is 'Series xx' and I'm sure I'm overlooking something very simple, or at least I hope so.

Basic theory: I'm grabbing list items from various SharePoint lists via Lists Web service, converting the XmlNodes into DataSets, doing a little manipulation to the data, then create a DataTable with all List items.
DataTable schema looks like:
dt.Columns.Add("Source", typeof(String));  
dt.Columns.Add("Title", typeof(string));  
dt.Columns.Add("From", typeof(double));  
dt.Columns.Add("To", typeof(double));  
dt.Columns.Add("EventDate", typeof(DateTime));  
dt.Columns.Add("EndDate", typeof(DateTime)); 

For each Source, I want it to show up in different colors for the Gantt chart and display the name so the user knows which list it came from.

Snippet for chart:
ChartSeries series = new ChartSeries();  
RadChart1.PlotArea.YAxis.Appearance.ValueFormat = Telerik.Charting.Styles.ChartValueFormat.ShortDate;  
                  
        RadChart1.PlotArea.YAxis.Appearance.LabelAppearance.RotationAngle = 45;  
        RadChart1.PlotArea.YAxis.LabelStep = 1;  
        RadChart1.PlotArea.YAxis.Appearance.LabelAppearance.Position.AlignedPosition = Telerik.Charting.Styles.AlignedPositions.Top;  
        RadChart1.Series.Clear();  
        RadChart1.PlotArea.YAxis.AutoScale = false;  
        RadChart1.PlotArea.YAxis.AxisMode = ChartYAxisMode.Extended;  
 
        DataTable dt = getListItems();  
 
        RadChart1.PlotArea.YAxis.AddRange(from.ToOADate(), to.ToOADate(), step);  
        RadChart1.DataSource = dt;  
 
        series.Type = ChartSeriesType.Gantt;  
        series.Appearance.LabelAppearance.Visible = false;  
        series.Appearance.LegendDisplayMode = ChartSeriesLegendDisplayMode.SeriesName;  
        series.Appearance.BarWidthPercent = 30M;  
        series.DataYColumn = "From";  
        series.DataYColumn2 = "To";  
        RadChart1.Series.Add(series);  
        RadChart1.SeriesOrientation = ChartSeriesOrientation.Horizontal;  
        RadChart1.ChartTitle.TextBlock.Text = "Aggregated Calendar";  
        if(_realWidth > 0)  
            RadChart1.Width = new Unit(_realWidth * .97);  
RadChart1.DataBind(); 

Here is the ItemDataBound event:
void RadChart1_ItemDataBound(object sender, ChartItemDataBoundEventArgs e)     
    {     
        DataRowView drv = e.DataItem as DataRowView;     
        DateTime startDate = (DateTime)drv["EventDate"];     
        DateTime endDate = (DateTime)drv["EndDate"];     
        StringBuilder sb = new StringBuilder();     
        sb.Append(drv["Title"].ToString());     
        sb.AppendFormat("\n{0} - {1}", startDate.ToShortDateString(), endDate.ToShortDateString());     
        e.SeriesItem.Name = drv["Source"].ToString();     
        e.SeriesItem.ActiveRegion.Tooltip = sb.ToString();     
             
    }    
 

I would expect to be able to set the column that is being used for the Series like
series.DataSeriesColumn = "Source"; //DataTable column name 
similar to how you specify the DataYColumn, DataYColumn2, etc.

Surely, I don't have to create new ChartSeries objects for every list I aggregate? Any help would be appreciated.
Ves
Telerik team
 answered on 23 Sep 2009
4 answers
214 views
How can I make a GridEditCommandColumn work as a GridExpandColumn?
<telerik:GridEditCommandColumn ButtonType="ImageButton" EditImageUrl="../Grafikk/RadGrid/SinglePlus.gif" EditText="Edit" CancelImageUrl="../Grafikk/RadGrid/SingleMinus.gif" CancelText="Cancel" ItemStyle-HorizontalAlign="Center" /> 

First I want the PLUS gif to become a MINUS gif when clicked and my EditFormTemplate opens, and when I click on MINUS, a cancel command is fired.
Yavor
Telerik team
 answered on 23 Sep 2009
4 answers
123 views
Hi,

I have a small search page that dumps it's results to a RadGrid. My search routine looks like this:
 var searchResults = db.AbsenceSearch(txtIndividualSearchBox.Text.ToUpper(),  
                ddlEnterprises.SelectedValue == "-1" || ddlEnterprises.SelectedValue == "" ? null : (int?)Convert.ToInt32(ddlEnterprises.SelectedValue), ddlDivisions.SelectedValue == "-1" || ddlDivisions.SelectedValue == "" ? null : (int?)Convert.ToInt32(ddlDivisions.SelectedValue),  
                dateFrom,  
                dateTo,  
                reevaluationPeriod,  
                cbIsOpen.Checked,  
                userid).ToList();  
 
            RadGrid1.DataSource = searchResults; 

My initial databind seems to have correct DataKeys values in the grid, but when I do another search with new search field values, my new data appears OK, but the old Datakeys are still there. I for example found out that on initial pageload I have a DataKey value of 2000 in the 3rd item row in the grid, and when I do an new search, and the grid loads with the new data, I still have DataKey value 2000 in the 3rd item row.

This is how I am retrieving the Datakeys:
protected void RadGrid1_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)  
        {  
 
            if (e.Item.ItemType == Telerik.Web.UI.GridItemType.Item || e.Item.ItemType == Telerik.Web.UI.GridItemType.AlternatingItem)  
            {  
                int eID = (int)e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["id"];  
                Response.Redirect(<to some page>);  
            }  
        } 

I am sure this is a simple beginner mistake. Please help.

reg.
Axel
Tsvetoslav
Telerik team
 answered on 23 Sep 2009
1 answer
171 views
Is there a way to disable all toolbars? I did a search and didn't find anything.
Princy
Top achievements
Rank 2
 answered on 23 Sep 2009
4 answers
288 views
Hi,

I have a radgrid set up with detailtables and nestedviewtemplate.

The markup (without all the details...) looks like this :
<telerik:radgrid ...> 
  <DetailTables> 
    <telerik:GridTableView ...> 
      <DetailTables> 
        <telerik:GridTableView ...> 
          <NestedViewTemplate> 
            <telerik:RadTabStrip ...> 
            </telerik:RadTabStrip> 
            <telerik:RadMultiPage ...> 
              <telerik:RadPageView ...> 
                <telerik:RadGrid ...> 
                  <DetailTables> 
                    <telerik:GridTableView ...> 
                      <DetailTables> 
                        <telerik:GridTableView ...> 
                        </telerik:GridTableView> 
                      </DetailTables> 
                    </telerik:GridTableView> 
                  </DetailTables> 
                </telerik:RadGrid> 
              </telerik:RadPageView> 
            </telerik:RadMultiPage> 
          <NestedViewTemplate> 
        </telerik:GridTableView   
      </DetailTables> 
    </telerik:GridTableView   
  </DetailTables> 
</telerik:radgrid> 

I would like to have all parent rows, of the row the user left or right-clicks,selected.
In my code-behind i have code in the ItemCommmand event that when a user expands a row e.Item.Selected is set to true.
So that row is selected, but i also would like the parent rows to be selected and all other rows deselected.

We have the Office2007 skin (very nice one by the way!!) and selected rows are displayed in orange. The reason we want the parent rows selected as well is to make it easer for the user to see where he "is" in the hierarchial grid.

Does anybody know what i need to do to make this work? I think i have to set each grid (the grids in the NestedViewTemplate as well) to multiselect. And then catch the left or right mouseclick, loop through each parent control and clear all selected items if the parent is a grid and if it is a griditem the set selected to true?
Tsvetoslav
Telerik team
 answered on 23 Sep 2009
Narrow your results
Selected tags
Tags
+? more
Top users last month
Tien
Top achievements
Rank 1
Iron
Krasimir
Top achievements
Rank 3
Bronze
Iron
Iron
Cedar
Top achievements
Rank 1
Iron
Emil
Top achievements
Rank 1
Iron
Kyle Watson
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Tien
Top achievements
Rank 1
Iron
Krasimir
Top achievements
Rank 3
Bronze
Iron
Iron
Cedar
Top achievements
Rank 1
Iron
Emil
Top achievements
Rank 1
Iron
Kyle Watson
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?