or
Dear All,
I’m setting the visibility of the command item (Hyper Link)in the command item template (Add New Record) on the grid pre render event based on logged in user permissions.
The code used is shown below:
| foreach (GridItem Item in grdUsers.MasterTableView.GetItems(GridItemType.CommandItem)) |
| { |
| GridCommandItem CommandItem = (GridCommandItem)Item; |
| LinkButton InitLinkButton = (LinkButton)CommandItem.FindControl(functionalitiesRow.ControlName); |
| if (InitLinkButton != null) |
| { |
| InitLinkButton.Visible = false; |
| break; |
| } |
| } //End for each |
The problem is that when I do reordering for the column on the server side the code in grid pre render even is executed and the Hyper Link visibility is set to false but when the page appears the (Add New Record) hyper link is visible to the user and s/he can click on it.
This problem only appears on the reordering columns functionality.
I don’t want to reorder the column on client side, because am preserving the grid state and columns order for the logged in user.
Any suggests to my problem?
| function setDefaultReport() { |
| selectedReportsList.trackChanges(); |
| var selectedItem = selectedReportsList.get_selectedItem(); |
| if (selectedItem) { |
| if (defaultReport) { |
| defaultReport.set_imageUrl(""); |
| } |
| } |
| selectedItem.set_imageUrl("/images/icon.gif"); |
| defaultReport = selectedItem; |
| } |
| selectedReportsList.commitChanges(); |
| } |
| <telerik:GridTemplateColumn HeaderText="Class" UniqueName="Class" SortExpression="Class" ShowSortIcon="true" HeaderStyle-Width="200"> |
| <ItemTemplate> |
| <asp:Label ID="Label1" runat="server" Text='<%# Eval("Class") %>' /> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <telerik:RadComboBox ID="ClassCombo" runat="server" Width="190px" Height="200px" MarkFirstMatch="true" |
| OnClientItemsRequested="OnClientItemsRequested" OnClientItemsRequesting="OnClientItemsRequesting" OnClientDropDownClosed="OnClientDropDownClosed" |
| OnClientSelectedIndexChanged="OnClientSelectedIndexChanged" |
| EnableLoadOnDemand="true" AllowCustomText="false" > |
| <ExpandAnimation Type="none" /> |
| <CollapseAnimation Type="none" /> |
| <WebServiceSettings Path="/Lookup.asmx" Method="Classes" /> |
| </telerik:RadComboBox> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| function OnClientItemsRequesting(sender, args){ |
| startTime = new Date(); |
| } |
| function OnClientItemsRequested(sender, args){ |
| var endTime = new Date(); |
| } |
| function OnClientSelectedIndexChanged(sender, args) { |
| var item = args.get_item(); |
| var text = item.get_text(); |
| var val = item.get_value(); |
| alert(val); |
| } |
| function OnClientDropDownClosed(sender, args) { |
| sender.clearItems(); |
| if(args.get_domEvent().stopPropagation) |
| args.get_domEvent().stopPropagation(); |
| } |
| Public Overrides Sub RenderControl(ByVal writer As System.Web.UI.HtmlTextWriter) |
| writer.AddAttribute(HtmlTextWriterAttribute.Id, Me.ClientID) |
| writer.RenderBeginTag(HtmlTextWriterTag.Div) |
| MyBase.RenderControl(writer) |
| writer.RenderEndTag() |
| End Sub |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="btnCreateAccount"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| <telerik:AjaxSetting AjaxControlID="lnkPasswordRecovery"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| <telerik:AjaxSetting AjaxControlID="lnkPrivacy"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| <telerik:AjaxSetting AjaxControlID="lnkSecurity"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <telerik:RadWindowManager ID="RadWindowManager1" runat="server" |
| DestroyOnClose="true" |
| Behaviors="Close,Move" |
| Modal="false" |
| KeepInScreenBounds="true" |
| VisibleStatusbar="false" |
| VisibleOnPageLoad="true" |
| Animation="None" |
| > |
| </telerik:RadWindowManager> |
| Dim rw As New RadWindow |
| With rw |
| .NavigateUrl = NavigateUrl |
| .Height = Height |
| .Width = Width |
| End With |
| ' Add it to the RadWindowManager's Windows collection |
| rwManager.Windows.Add(rw) |
| <telerik:RadGrid ID="ValueGrid" runat="server" AutoGenerateColumns="False" |
| Width="100%" GridLines="Horizontal" |
| AllowAutomaticDeletes="true" AllowAutomaticInserts="false" AllowAutomaticUpdates="false" |
| OnNeedDataSource="ValueGrid_NeedDataSource" |
| OnItemDataBound="ValueGrid_ItemDataBound" |
| OnDeleteCommand="ValueGrid_DeleteCommand" |
| OnInsertCommand="ValueGrid_InsertCommand" |
| OnUpdateCommand="ValueGrid_UpdateCommand"> |
| <MasterTableView DataKeyNames="Key" CommandItemDisplay="Top" |
| NoMasterRecordsText="No additional info data for this contract." |
| ShowHeadersWhenNoRecords="true"> |
| <Columns> |
| <telerik:GridButtonColumn CommandName="Edit" ButtonType="ImageButton" Text="Edit" |
| UniqueName="EditCommandColumn" |
| ImageUrl="~/App_Themes/Default/buttons/grid_edit.jpg"> |
| <HeaderStyle Width="20px" /> |
| </telerik:GridButtonColumn> |
| <telerik:GridTemplateColumn DataField="Attribute" HeaderText="Type"> |
| <HeaderStyle Width="100px" /> |
| <ItemStyle Width="100px" /> |
| <ItemTemplate> |
| <asp:Literal ID="AttributeLabel" runat="server" |
| Text='<%#DataBinder.Eval(Container, "DataItem.Attribute.Name") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="Value"> |
| <HeaderStyle Width="300px" /> |
| <ItemStyle Width="300px" /> |
| <ItemTemplate> |
| <asp:Literal ID="ValueLabel" runat="server" |
| Text='<%# ((AttributeValue)DataBinder.Eval(Container, "DataItem")).DisplayMarkup %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridBoundColumn DataField="Note" HeaderText="Note"> |
| <HeaderStyle Width="150px" /> |
| <ItemStyle Width="150px" /> |
| </telerik:GridBoundColumn> |
| <telerik:GridButtonColumn ButtonType="ImageButton" UniqueName="DeleteColumn" CommandName="Delete" |
| ImageUrl="~/App_Themes/Default/buttons/grid_delete.jpg" |
| ConfirmText="<%$Resources:AvailsResources, DeleteConfirmationGeneral%>"> |
| <HeaderStyle Width="20px" /> |
| </telerik:GridButtonColumn> |
| </Columns> |
| <CommandItemSettings AddNewRecordText="Add" /> |
| <EditFormSettings |
| UserControlName="~/Controls/AttributeValueEdit.ascx" |
| EditFormType="WebUserControl" > |
| <EditColumn ButtonType="ImageButton" |
| InsertImageUrl="~/App_Themes/Default/buttons/grid_add.jpg" |
| UpdateImageUrl="~/App_Themes/Default/buttons/grid_update.jpg" |
| CancelImageUrl="~/App_Themes/Default/buttons/grid_cancel.jpg"> |
| </EditColumn> |
| </EditFormSettings> |
| </MasterTableView> |
| </telerik:RadGrid> |
| <table class="standardTable"> |
| <colgroup> |
| <col width="80px" /> |
| <col width="100%" /> |
| </colgroup> |
| <tr> |
| <td> |
| <asp:Label ID="AttributeLabel" runat="server" meta:resourcekey="AttributeLabel" /></td> |
| <td> |
| <asp:DropDownList ID="AttributeEdit" runat="server" AutoPostBack="True" |
| Width="200px" |
| DataValueField="Key" DataTextField="Name" |
| OnSelectedIndexChanged="AttributeEdit_SelectedIndexChanged"> |
| </asp:DropDownList> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <asp:Label ID="ValueLabel" runat="server" meta:resourcekey="ValueLabel" /> |
| </td> |
| <td> |
| <telerik:RadDatePicker ID="ValueDateEdit" runat="server" Width="104px" Skin="Web20"> |
| <Calendar ID="ValueDateCalendar" runat="server" Skin="Web20"> |
| </Calendar> |
| <DateInput runat="server" EnabledStyle-HorizontalAlign="Right" Skin="Default" MinDate="1900-01-01" DateFormat="<%$ SystemSetting:ShortDatePattern %>" /> |
| <DatePopupButton ImageUrl="~/App_Themes/Default/icons/icon_datePickerPopup.gif" |
| HoverImageUrl="~/App_Themes/Default/icons/icon_datePickerPopupHover.gif" /> |
| </telerik:RadDatePicker> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <asp:Label ID="NoteLabel" runat="server" meta:resourcekey="NoteLabel" /></td> |
| <td> |
| <asp:TextBox ID="NoteEdit" runat="server" Width="150px" /> |
| </td> |
| </tr> |
| <tr> |
| <td colspan="2"> |
| <asp:Button ID="SaveButton" runat="server" CommandName="Update" meta:resourcekey="SaveButton" /> |
| <asp:Button ID="CancelButton" runat="server" meta:resourcekey="CancelButton" |
| CausesValidation="False" CommandName="Cancel" /> |
| </td> |
| </tr> |
| </table> |
| table.standardTable |
| { |
| table-layout : fixed; |
| border : none 0px; |
| border-collapse : collapse; |
| border-spacing : 0px; |
| } |
| table.standardTable select, table.standardTable input |
| { |
| font : menu; |
| } |
| protected void tk_Grid_ItemDataBound(object sender, GridItemEventArgs e) |
| { |
| if (e.Item is GridDataItem) |
| { |
| GridDataItem dataItem = (GridDataItem)e.Item; |
| HyperLink h1 = new HyperLink(); |
| h1.NavigateUrl = "frmAnexoBalance.aspx?Periodo=APERTURA&MesID=0&TCID=0&GGPPID=" + dataItem["FormatoGananciaPerdidaID"].Text.Trim() + "&FBID=0"; |
| //h1.Target= "blank"; |
| h1.Text = dataItem.GetDataKeyValue("Apertura").ToString(); |
| h1.CssClass = "gridtext"; |
| dataItem["Apertura"].Controls.Add(h1); |