We need to change the selected item of RadComboBox's hosted in RadGrid in BatchEdit mode.
We have a RadGrid with parent child relationships. If the parent row combobox is changed then the change needs to ripple through and change the same value in the child rows. If a child row is changed the parent may need to be changed as well.
The parent can be set to "Multiple,Detailed,Deferred" and a couple other values. If the parent is changed to Detailed then all the children become detailed. If the parent is Detailed and one of the children is changed to something other than Detailed then the parent must change to Multiple. If all the children changed to the same value then the parent should be changed to that value as well.
We are triggering processing with the grid OnBatchEditSetCellValue client event.
MasterTableView EditMode="Batch"
BatchEditSetting EditType="Cell"
Hi,
I'm trying to use the Treelist for a data source with the following definition
public class MyGridItem
{
public string ID { get; set; }
public string Name { get; set; }
public string ParentID { get; set; }
public bool IsIncluded { get; set; }
public bool IsExcluded { get; set; }
}
In markup I've got
<telerik:RadTreeList ID="RadTreeMarkers" runat="server" ParentDataKeyNames="ParentID" DataKeyNames="ID" AutoGenerateColumns="false"
OnNeedDataSource="RadTreeMarkers_NeedDataSource" AllowMultiItemEdit="true" ExpandCollapseMode="Client" EditMode="InPlace"
AllowPaging="false" AllowSorting="false" OnItemDataBound="RadTreeMarkers_ItemDataBound">
<Columns>
<telerik:TreeListBoundColumn DataField="ID" UniqueName="ID" Visible="false" ForceExtractValue="Always"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumn DataField="ParentID" UniqueName="ParentID" Visible="false"></telerik:TreeListBoundColumn>
<telerik:TreeListBoundColumn DataField="Name" UniqueName="Name" HeaderText="Mark" ReadOnly="true"></telerik:TreeListBoundColumn>
<telerik:TreeListCheckBoxColumn DataField="IsIncluded" UniqueName="IsIncluded" HeaderText="Included" ForceExtractValue="Always"></telerik:TreeListCheckBoxColumn>
<telerik:TreeListCheckBoxColumn DataField="IsExcluded" UniqueName="IsExcluded" HeaderText="Excluded" ForceExtractValue="Always"></telerik:TreeListCheckBoxColumn>
</Columns>
</telerik:RadTreeList>
protected void RadTreeMarkers_NeedDataSource(object sender, TreeListNeedDataSourceEventArgs e)
{
var treeData = MyFacade.GetTreeData();
var treeDataGridItems = treeData.Select(m => new GridItem
{
ID = m.ID.ToString(),
Name = m.Name,
ParentID = m.ParentID.HasValue ? m.ParentID.Value.ToString() : string.Empty,
IsIncluded = m.IsIncluded.HasValue && m.IsIncluded == true,
IsExcluded = m.IsIncluded.HasValue && m.IsIncluded == false
}
).ToList();
RadTreeMarkers.DataSource = treeDataGridItems;
}
protected void RadTreeMarkers_ItemDataBound(object sender, TreeListItemDataBoundEventArgs e)
{
if (e.Item is TreeListDataItem item)
{
item.Edit = true;
}
}
The intention is for (only) the two checkboxes to be always editable in the client.
However, when rendered in the client the root items are editable but none of the child items is editable.
What am I doing wrong?
I am trying to disable embeddedscripts for radgrid - everything works but context menu - which scripts altogether do I need to add?
This write up (linked below) is incorrect or out of date - can someone please help.
https://docs.telerik.com/devtools/aspnet-ajax/getting-started/performance/disabling-embedded-resources#disabling-embedded-resources
Hi guys,
I'm using 2 MonthYearPickers on a page and need that one of them to show only the year.
How can i do this? Tryed the css solution with #rcMView_month but that changes for both controls.
Thanks,
Antonio
Hello,
We have a requirement to attach emails to records for audit purposes. Is this possible with your controls?
Regards,
D
I have a radcombobox that uses a headertemplate and an itemtemplate and I would like my users to be able to sort by clicking on the text from the headertemplate.
Here is the radcombobox. It works and it's pretty simple but I can't work out how to get it to sort the items based on clicking text in the header.
<telerik:RadComboBox ID="rcbEmp2" runat="server" Width="570px" AutoPostBack="true"
MarkFirstMatch="true" HighlightTemplatedItems="true" AppendDataBoundItems="true" >
<HeaderTemplate>
<ul>
<li>Employee</li>
<li>Miles</li>
<li>Shifts</li>
<li>Availability</li>
</ul>
</HeaderTemplate>
<ItemTemplate>
<ul>
<li><asp:Label runat="server" ID="lbEmpNameg" Text='<%# Eval("EmpFullName")%> '></asp:Label></li>
<li><asp:Label runat="server" ID="Label1" Text='<%# Eval("KsDistance")%> '></asp:Label></li>
<li><%# DataBinder.Eval(Container.DataItem, "ThisWeeksDemoCount")%></li>
<li><%# DataBinder.Eval(Container.DataItem, "AvailText")%></li>
</ul>
</ItemTemplate>
</telerik:RadComboBox>
Thanks in advance!
Hi. I have RadGrid with filter implemented as combo box. On Item command of GridColumnButton I update the record that changes value of the field being filtered by and rebind the grid. If before grid was filtered by the column that is updated and result contains only one record, rebind crashes the application. After record is updated, the only valid value for column "Sections" is Any Sections Not Complete.
<telerik:GridButtonColumn UniqueName="ImageButton" CommandName="MarkRecord" ButtonType="ImageButton"
ImageUrl="Content/Images/Reverse.jpg" HeaderStyle-Width="60px" Exportable="false">
</telerik:GridButtonColumn>
<telerik:GridBoundColumn UniqueName="Sections" DataField="Sections" HeaderText="Sections" HeaderStyle-Width="180px" Exportable="false">
<FilterTemplate>
<telerik:RadComboBox ID="ddlSection" runat="server" DataSource="<%#Sections %>"
DataTextField="Name" DataValueField="Name" Width="130px" AppendDataBoundItems="true"
SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("Sections").CurrentFilterValue %>'
OnClientSelectedIndexChanged="SectionsIndexChanged">
<Items>
<telerik:RadComboBoxItem Text="All" />
</Items>
</telerik:RadComboBox>
<telerik:RadScriptBlock ID="RadScriptBlock3" runat="server">
<script type="text/javascript">
function SectionsIndexChanged(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
alert(args.get_item().get_value());
tableView.filter("Sections", args.get_item().get_value(), "EqualTo");
}
</script>
</telerik:RadScriptBlock>
</FilterTemplate>
</telerik:GridBoundColumn>
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
string strNewStatus;
string btnAction;
if(e.CommandName == "Complete" || e.CommandName == "Reverse")
{
if (e.CommandName == "Complete")
{
strNewStatus = "COMPLETE";
btnAction = "Mark Complete";
}
else
{
strNewStatus = "PENDING";
btnAction = "Reverse Complete";
}
GridDataItem dataItem = e.Item as GridDataItem;
var id = (int)dataItem.OwnerTableView.DataKeyValues[dataItem.ItemIndex]["EncounterID"];
Encounter enc = Encounters.Find(i => i.EncounterID == id);
string userName = HttpContext.Current.User.Identity.Name.Replace("ROTHMAN\\", String.Empty);
string retValue;
retValue = DataAccess.UpdateVisitInfo(Convert.ToInt32(enc.tid), enc.EncounterID, enc.ECWAcct, userName, strNewStatus, enc.notes, ddlSource.SelectedValue);
if (retValue != "")
{
//handle error
e.Canceled = true;
radWindowManager.RadAlert(retValue, 280, 100, "Error", null);
return;
}
retValue = DataAccess.UpdateTracker(userName, enc.EncounterID, Convert.ToInt32(enc.ECWAcct), btnAction, strNewStatus, "", ddlSource.SelectedValue);
if (retValue != "")
{
e.Canceled = true;
radWindowManager.RadAlert(retValue, 280, 100, "Error", null);
return;
}
// refresh grid
Session["Encounters"] = null;
RadGrid1.Rebind();
}
}