Hi all,
I've a RadGrid with one detailTable level.
My goal is to when editing one row in the detailTable, the other rows (not selected) should disappear,
as well as the only visible row in the Main Grid should be the parent row (wich is actually expanded)
I tryed the code below but it's not working.
| foreach (GridDataItem dataItem in RadGrid1.Items) |
| { |
| if (RadGrid1.EditItems.Count > 0) |
| { |
| if (!dataItem.Expanded) |
| { |
| dataItem.Visible = false; |
| } |
| else |
| { |
| foreach (GridDataItem item in RadGrid1.MasterTableView.Items[0].ChildItem.NestedTableViews[0].Items) |
| { |
| if (item != RadGrid1.EditItems[0]) |
| { |
| item.Visible = false; |
| } |
| } |
| } |
| } |
| } |
Any help is very appreciated.
Nuno Sénica.
Hello,
I have a project with mater content pages and I have a form decorator on the master page. When I am running the project, form decorator generate jscrip error on page (when I remove the formdecorator it is working well).
My telerik version is: 2008.3.1504.35
Can I use radFormDecorator on master/ content pages?
Best regards
I got the message "to help protect your security, Internet Explorer blocked this site from downloading.." from the browser when implementing Ajax download (progress image),
my client code is like:
<telerik:RadAjaxPanel ID="RadAjaxPanel3" runat="server" LoadingPanelID="LoadingPanel1"> My Download button here...
</telerik:RadAjaxPanel>
My server side code
if (GetPDF() == true)
Response.Redirect("PDFDownload.aspx");
.....| <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=" 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; | |
| } |
| <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> |
| [System.Web.Services.WebMethod()] |
| public static string SaveShit(string stuff) |
| { |
| return "did something"; |
| } |

| .RadSlider_simbaSkin .rslItemsWrapper .rslItemSelected |
| { /*background: url('Slider/DragVerticalHandle.png') no-repeat;*/ |
| background: url('Slider/DragVerticalHandle.png') no-repeat; |
| /*border:1px solid green;*/ |
| color: #999900; |
| } |
| .Radslider .rslVertical .rslItemsWrapper .rslItemFirst, .RadSlider .rslHorizontal .rslItemsWrapper .rslItemFirst { |
| background-image:none; |
| } |