We have a radgrid that gets bound in 2 different ways. This depends on what action has been performed on the page..e.g
1. select comboboxA - will bind radgrid via server side binding using NeedDataSource event
2. select comboboxB - will bind radgrid via page method + client side binding . Below are are the the main 2 javascript functions in use .
function GetDataForGrid() { PageMethods.GetDataForGrid(GetDataForGridBy_Result, GetDataForGridByHeader_Failed);}
function GetDataForGrid_Result(result) {
var tableView = $find("<%=RadGrid.ClientID %>").get_masterTableView();
tableView.set_dataSource(result.Value);
tableView.dataBind();
}
The problem is, after the client side binding, if the user clicks on a certain row we need to do some processing in a server side event - RadGrid_ItemCommand(object sender, GridCommandEventArgs e) ...
However when we obtain the datakey within this server side event, it is always wrong....
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <telerik:RadStyleSheetManager id="RadStyleSheetManager1" runat="server" /></head><body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <%--Needed for JavaScript IntelliSense in VS2010--%> <%--For VS2008 replace RadScriptManager with ScriptManager--%> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <script type="text/javascript"> function yo(sender, e) { radopen("test.aspx", null); } </script> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> </telerik:RadAjaxManager> <telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true" RestrictionZoneID="RestrictionZone" ShowContentDuringLoad="False"> <Windows> <telerik:RadWindow ID="win1" runat="server" VisibleStatusbar="false" Behaviors="Close,Move" Width="750px" Height="400px" Modal="true" Title="I'm not working" /> </Windows> </telerik:RadWindowManager> <div> <telerik:RadButton ID="yo" runat="server" Text="yo" AutoPostBack="false" OnClientClicked="yo"> </telerik:RadButton> </div> </form></body></html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <script type="text/javascript"> function here(sender, e) { var win = GetRadWindow().BrowserWindow; win.radopen(null, "win1"); // Open a window that is define in the radWindowManager of the parentPage } // Donne la référence d'une fenêtre radWindow function GetRadWindow() { var oWindow = null; if (window.radWindow) oWindow = window.radWindow; else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; return oWindow; } </script></head><body> <form id="form1" runat="server"> <div> <telerik:RadButton ID="but1" runat="server" AutoPostBack="false" Text="Click here Dude!" OnClientClicked="here"> </telerik:RadButton> <telerik:RadScriptManager runat="server"></telerik:RadScriptManager> <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_needDS"> <MasterTableView AutoGenerateColumns="false" Name="test" CommandItemDisplay="Top" DataKeyNames="Id"> <CommandItemTemplate> <telerik:RadToolBar ID="RadToolBarGrid" runat="server" OnClientButtonClicking="here"> <Items> <telerik:RadToolBarButton Text="Add new" ImageUrl="~/Images/Add.png"> </telerik:RadToolBarButton> </Items> </telerik:RadToolBar> </CommandItemTemplate> <Columns> <telerik:GridBoundColumn DataField="Id" HeaderText="Id" UniqueName="Id"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Title" HeaderText="Title" UniqueName="Title"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Style" HeaderText="Style" UniqueName="Style"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Rating" HeaderText="Rating" UniqueName="Rating"> </telerik:GridBoundColumn> </Columns> </MasterTableView> </telerik:RadGrid> </div> </form></body></html>using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace RadControlsWebApp5{ public partial class test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void RadGrid1_needDS(object sender, EventArgs e) { List<movie> movies = new List<movie>(); movies.Add(new movie(1, "King Kong", "Action", "4/5")); movies.Add(new movie(2, "The Black Knight", "Action", "4.5/5")); movies.Add(new movie(3, "Harry Potter and the deadly hallow", "Fantasy", "4/5")); movies.Add(new movie(4, "Inception", "Sc-fiction", "5/5")); movies.Add(new movie(5, "Transformer : The revenge of the fallen", "Action, Sc-Fiction", "3/5")); RadGrid1.DataSource = movies; } } public class movie { public movie(int id, string title, string style, string rating) { Id = id; Title = title; Style = style; Rating = rating; } public int Id { get; private set; } public string Title { get; private set; } public string Style { get; private set; } public string Rating { get; private set; } }}Hello,
in my Grid, I set AllowFilteringByColumn=true, so that a User A can filter the Grid. Then i want to disable (or invisible) the Filter Controls, so that a User B can see the Filters of the filtered Grid, but User B should not change the Filters.
Is this possible?
Best Regards
Tom
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="TripoliActivities.aspx.vb" Inherits="BeitElYasmine._TripoliActivities" MasterPageFile="~/MasterPages/FrontEnd.Master" %> <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> <asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder2"> <telerik:RadAjaxPanel ID="AjaxPanel1" runat="server" LoadingPanelID="LoadingPanel1"></telerik:RadAjaxPanel> <div style="text-align: center"> <asp:ImageMap ID="ImageMap1" HotSpotMode="Navigate" ImageUrl="Img/FloorPlan.jpg"AlternateText="FloorPlan" runat="server"> <asp:PolygonHotSpot Coordinates="36,221,36,304,134,304,134,278,228,278,228,304,359,304,359,279,349,228,346,205,301,205,301,34,36,34,36,221" /> <asp:PolygonHotSpot Coordinates="301,34,490,34,490,151,301,149,301,34" /> <asp:PolygonHotSpot Coordinates="301,149,301,204,347,204,350,225,470,225,470,152,301,149" /> <asp:PolygonHotSpot Coordinates="350,226,360,289,469,289,469,226,350,226" /> </asp:ImageMap> </div> <telerik:RadToolTip ID="tooltip" RelativeTo="Mouse" runat="server" TargetControlID="area0" Animation="FlyIn" Position="BottomCenter" IsClientID="true" ShowCallout="false" EnableShadow="true"> <img src="Img/livingRoom.jpg" alt="LivingRoom" /></telerik:RadToolTip> <telerik:RadToolTip ID="RadToolTip1" RelativeTo="Mouse" runat="server" TargetControlID="area1" Animation="FlyIn" Position="TopRight" IsClientID="true" ShowCallout="false" EnableShadow="true"> <img src="Img/kitchen.jpg" alt="Kitchen" /></telerik:RadToolTip> <telerik:RadToolTip ID="RadToolTip2" RelativeTo="Mouse" runat="server" TargetControlID="area2" Animation="FlyIn" Position="MiddleRight" IsClientID="true" ShowCallout="false" EnableShadow="true"> <img src="Img/bathroom.jpg" alt="Bathroom" /></telerik:RadToolTip> <telerik:RadToolTip ID="RadToolTip3" RelativeTo="Mouse" runat="server" TargetControlID="area3" Animation="FlyIn" Position="BottomRight" IsClientID="true" ShowCallout="false" EnableShadow="true"> <img src="Img/entrance.jpg" alt="Entrance" /></telerik:RadToolTip> <script type="text/javascript"> //<![CDATA[ var map = document.getElementsByName("ImageMapImageMap1")[0]; var areas = map.getElementsByTagName("AREA"); for (var i = 0; i < areas.length; i++) { var area = areas[i]; area.setAttribute("id", "area" + i); //Prevent from postbacking the page area.onclick = function(e) { return false; }; } //]]> </script> </asp:Content>