public interface IActivityInstanceBase : IDataLayerBase
{
string Id { get; set; }
DateTime ExecutionDate { get; set; }
DateTime PlannedDate { get; set; }
.....
string ActivityInstanceName { get; set; }
string ParentId { get; set; }
}
public interface IActivityInstance : IActivityInstanceBase, IExportable, IFileAddable
{
IMaintenanceGroup MaintenanceGroup { get; set; }
IActivity Activity { get; set; }
IActivityStatus Status { get; set; }
.....
string MaintenanceGroupName { get; set; }
string ParentGroupName { get; set; }
}
Datasource is of type IActivityInstance which inherits IActivityInstanceBase (connected over needdatasource event)
I have to group by a field from the base class (ParentId) which is not possible (Exception field not found in datasource).
In the definition of grid columns i can also use fields from the base class, only in the group by expression it isn“t possible.
Any ideas how to solve that?
regards,
Stefan
| var combo = $find('<%=RadComboType.ClientID%>'); |
| var comboItem = new Telerik.Web.UI.RadComboBoxItem(); |
| var inputtext = new Array("A", "B", "C"); |
| for(i=0; i<inputtext.length(); i++) |
| { |
| comboItem.set_text(inputtext[i]); |
| combo.trackChanges(); |
| combo.get_items().add(comboItem); |
| combo.commitChanges(); |
| } |
I would like to programmatically create a RadPanelBar using data binding from an object that implements the IEnumerable interface.
Furthermore, I would like to dynamically add a RadGrid to each created RadPanelItem.
The following program code does what I want, but unfortunately I am not able to get the SelectedIndexChanged event working for the Grids, which are included within the RadPanelBar.
I suppose, the problem is that the Grids for the RadPanelBar are created to late within the Page Live Cycle, because they should be created OnInit and not on the ItemDataBound event of the RadPanelBar.
I donāt know how to dynamically add Grids to the RadPanelBar, which have been created early enough within the page life cycle in order to maintain their view state. Does anybody know a solution for this issue?
public class EOBDCode
{
public string Code { get; set; }
public EOBDCode() {}
}
public partial class _Default : System.Web.UI.Page
{
private List<EOBDCode> GetEOBDCodesList()
{
List<EOBDCode> list = new List<EOBDCode>();
EOBDCode code;
for (int i = 0; i < 3; i++)
{
code = new EOBDCode();
code.Code = "P00" + i;
list.Add(code);
}
return list;
}
protected void Page_Init(object sender, EventArgs e)
{
placeHolder.Controls.Add(CreateGrid("RadGrid1"));
}
protected void Page_PreRender(object sender, EventArgs e)
{
RadPanel1.DataTextField = "Code";
RadPanel1.DataSource = GetEOBDCodesList();
RadPanel1.DataBind();
}
private RadGrid CreateGrid(string id)
{
RadGrid grid = new RadGrid();
grid.ID = id;
grid.ClientSettings.Selecting.AllowRowSelect = true;
grid.SelectedIndexChanged += Grid_SelectedIndexChanged;
grid.NeedDataSource += Grid_NeedDataSource;
grid.ClientSettings.EnablePostBackOnRowClick = true;
return grid;
}
protected void RadPanel_ItemDataBound(object sender, RadPanelBarEventArgs e)
{
EOBDCode row = (EOBDCode)e.Item.DataItem;
RadPanelItem item = new RadPanelItem();
item.Controls.Add(CreateGrid(row.Code));
e.Item.Items.Add(item);
}
protected void Grid_NeedDataSource(object sender, EventArgs ea)
{
RadGrid grid = (sender as RadGrid);
grid.DataSource = GetEOBDCodesList();
}
protected void Grid_SelectedIndexChanged(object sender, EventArgs e)
{
//not called for Grids included within the RadPanelBar,
//but called for the Grid within the placeholder.
}
<body>
<form id="form1" runat="server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<div>
<telerik:RadPanelBar ID="RadPanel1" runat="server" OnItemDataBound="RadPanel_ItemDataBound">
</telerik:RadPanelBar>
</div>
<asp:PlaceHolder ID="placeHolder" runat="server"></asp:PlaceHolder>
</form>
</body>
Hi
Environment: RadControls for ASP.NET AJAX Q3 2009 / VS 2008 SP1/IE7/WINXP SP 2.
I would like to conditionally hide or disallow the Update in GridEditFormItem for certain users. For Example If the User is 'PR Manager', all add/update/edit/delete options will be available, for others Radgrid will be read only.
I can hide the command items template without any problem but the problem is when the Grid is in GridEditFormItem. Just can't refer the EditCommandColumn1 (null exception error occurs) or hide its update text.
Ideal solution will be if user is not 'PR Manager', only the cancel option will be available in GridEditFormItem. Below is my Radgrid and Radgrid_Item Command.
Any help will be appreciated...
Thanks
GC_0620
| protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) |
| { |
| if ((Session["SessionUserEmplCategory"].ToString().Trim() != "PR Manager")) |
| { |
| // This works... |
| if (e.Item is GridCommandItem) |
| { |
| GridCommandItem cmdItem = (GridCommandItem)e.Item; |
| LinkButton btnedit = (LinkButton)cmdItem.FindControl("btnEditSelected"); |
| btnedit.Visible = false; |
| LinkButton btnupdate = (LinkButton)cmdItem.FindControl("btnUpdateEdited"); |
| btnupdate.Visible = false; |
| LinkButton btnadd = (LinkButton)cmdItem.FindControl("BtnInitInsert"); |
| btnadd.Visible = false; |
| LinkButton btninsert = (LinkButton)cmdItem.FindControl("btnPerformInsert"); |
| btninsert.Visible = false; |
| LinkButton btndelete = (LinkButton)cmdItem.FindControl("BtnDelete"); |
| btndelete.Visible = false; |
| LinkButton btnCancel = (LinkButton)cmdItem.FindControl("btnCancel"); |
| btnCancel.Visible = false; |
| LinkButton btnRefresh = (LinkButton)cmdItem.FindControl("btnRefresh"); |
| btnRefresh.Visible = false; |
| } //// Can't Hide the EditCommandColumn or hide its Update text. |
| if (e.Item is GridEditFormItem && e.Item.IsInEditMode) |
| { |
| /// Allow only Cancel option if not 'PR Manager'
|
| GridEditFormItem EditFormcmdItem = (GridEditFormItem)e.Item; |
| EditFormcmdItem.FindControl("EditCommandColumn1").Visible = false; |
| } |
| } |
Rad Grid:
| <telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" |
| AllowSorting="True" |
| ''' |
| '''" OnItemDataBound="RadGrid1_ItemDataBound"> |
| <MasterTableView DataKeyNames="ID" CommandItemDisplay="Top" Width="100%" Font-Size="11px"> |
| <CommandItemTemplate> |
| <div style="padding: 5px 5px;"> |
| Custom command item template |
| <asp:LinkButton ID="btnEditSelected" runat="server" CommandName="EditSelected" Visible='<%# RadGrid1.EditIndexes.Count == 0 %>'><img style="border:0px;vertical-align:middle;" alt="" src="Images/Edit.gif" />Edit selected</asp:LinkButton> |
| <asp:LinkButton ID="btnUpdateEdited" runat="server" CommandName="UpdateEdited" Visible='<%# RadGrid1.EditIndexes.Count > 0 %>'><img style="border:0px;vertical-align:middle;" alt="" src="Images/Update.gif" />Update</asp:LinkButton> |
| <asp:LinkButton ID="btnCancel" runat="server" CommandName="CancelAll" Visible='<%# RadGrid1.EditIndexes.Count > 0 || RadGrid1.MasterTableView.IsItemInserted %>'><img style="border:0px;vertical-align:middle;" alt="" src="Images/Cancel.gif" />Cancel editing</asp:LinkButton> |
| <asp:LinkButton ID="BtnInitInsert" runat="server" CommandName="InitInsert" Visible='<%# !RadGrid1.MasterTableView.IsItemInserted %>'><img style="border:0px;vertical-align:middle;" alt="" src="Images/AddRecord.gif" />Add new</asp:LinkButton> |
| <asp:LinkButton ID="btnPerformInsert" runat="server" CommandName="PerformInsert" |
| Visible='<%# RadGrid1.MasterTableView.IsItemInserted %>'><img style="border:0px;vertical-align:middle;" alt="" src="Images/Insert.gif" /> Add this Attachment</asp:LinkButton> |
| <asp:LinkButton ID="BtnDelete" OnClientClick="javascript:return confirm('Delete all selected Attachments?')" |
| runat="server" CommandName="DeleteSelected"><img style="border:0px;vertical-align:middle;" alt="" src="Images/Delete.gif" />Delete selected Attachments</asp:LinkButton> |
| <asp:LinkButton ID="BtnView" runat="server" CommandName="EditSelected" Visible='<%# RadGrid1.EditIndexes.Count == 0 %>'><img style="border:0px;vertical-align:middle;" alt="" src="Images/Preview-icon.png" /> View selected</asp:LinkButton> |
| <asp:LinkButton ID="btnRefresh" runat="server" CommandName="RebindGrid"><img style="border:0px;vertical-align:middle;" alt="" src="Images/Refresh.gif" />Refresh Attachment list</asp:LinkButton> |
| </div> |
| </CommandItemTemplate> |
| <Columns> |
| '''' '''' |
| </Columns> |
| <EditFormSettings> |
| <EditColumn InsertText="Insert" UpdateText="Update" UniqueName="EditCommandColumn1" // Allow only Cancel if user is not 'PR Manager' |
| CancelText="Cancel"> |
| </EditColumn> |
| <FormTableButtonRowStyle HorizontalAlign="Right"></FormTableButtonRowStyle> |
| </EditFormSettings> |
| </MasterTableView> |
| <ClientSettings> |
| <Selecting AllowRowSelect="True" /> |
| <ClientEvents OnCommand="gridCommand" /> |
| </ClientSettings> |
| </telerik:RadGrid> |