hi guys
i have a problem with GridTemplateColumn
my program do this steps:
1- on the server side and on the page load i load some of data and binding the Grid to show personels image and info
DAL.Personels ObjPersonels = new DAL.Personels();
DataTable PersonelsDT = new DataTable();
PersonelsDT = ObjPersonels.Personels_SELECT_BY_DepartmentID(1,true);
RadGrid1.DataSource = PersonelsDT;
RadGrid1.DataBind();
on this step every thing is OK and the IMG in the GridTemplateColumn shows currectly
2-After Page Load the user can click on a Organization chart and show personels work on that node. this step must be client side
my
codes for binding client side Grid:
on this step all columns show correctly, but the IMG tag in the templateColumn shows the Old data,and dont refresh, like catching !!!
here is my full server side code
here is my Full Client side Code:
I tested some methods like set DataFiels="Pic" and UniqueName="Pic" but not work, i think we cannot use this method:
but it works when we Bind server side,but maybe catched when binding client side
how can i program my idea?
i attached the a screen shot of my main page program.
i can attach the full project if need
thank my friends
i have a problem with GridTemplateColumn
my program do this steps:
1- on the server side and on the page load i load some of data and binding the Grid to show personels image and info
DAL.Personels ObjPersonels = new DAL.Personels();
DataTable PersonelsDT = new DataTable();
PersonelsDT = ObjPersonels.Personels_SELECT_BY_DepartmentID(1,true);
RadGrid1.DataSource = PersonelsDT;
RadGrid1.DataBind();
on this step every thing is OK and the IMG in the GridTemplateColumn shows currectly
2-After Page Load the user can click on a Organization chart and show personels work on that node. this step must be client side
my
GridTemplateColumn:<telerik:GridTemplateColumn> <ItemTemplate> <img src='pics/personels/<%# Eval("Pic") %>' width="60px" height="70px"/> </ItemTemplate> </telerik:GridTemplateColumn>codes for binding client side Grid:
function OrganizationChartNode_Chicked(sender, args) { var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView(); PageMethods.GetData(args.get_node().get_value(), false, 1, tableView.get_pageSize(), tableView.get_sortExpressions().toString(), tableView.get_filterExpressions(), updateGrid); } function updateGrid(result) { var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView(); tableView.set_dataSource(result); tableView.dataBind(); }on this step all columns show correctly, but the IMG tag in the templateColumn shows the Old data,and dont refresh, like catching !!!
here is my full server side code
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Web.Services;using Telerik.Web.UI;public partial class MonthlyOutputState : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { //Initializing WorkPeriodsComboBox: Start DAL.WorkPeriods objWorkPeriods = new DAL.WorkPeriods(); DataTable WorkPeriodsDT = new DataTable(); WorkPeriodsDT = objWorkPeriods.WorkPeriods_Select_All(); for (int i = 0; i < WorkPeriodsDT.Rows.Count; i++) { Telerik.Web.UI.RadComboBoxItem ComboBoxItem=new Telerik.Web.UI.RadComboBoxItem(WorkPeriodsDT.Rows[i][1].ToString(),WorkPeriodsDT.Rows[i][0].ToString()); ComboBoxItem.Attributes.Add("Sdate", WorkPeriodsDT.Rows[i][2].ToString()); ComboBoxItem.Attributes.Add("Edate", WorkPeriodsDT.Rows[i][3].ToString()); RadComboBoxWorkPeriods.Items.Add(ComboBoxItem); } RadComboBoxWorkPeriods.FindItemByValue(objWorkPeriods.WorkPeriods_Get_Current().Rows[0][0].ToString()).Selected=true; //Initializing WorkPeriodsComboBox: End //Initializing Menu: Start Telerik.Web.UI.RadTreeNode Node = new Telerik.Web.UI.RadTreeNode(); Node.Text = "چارت سازماني"; Node.Value = "0"; RadTreeView1.Nodes.Add(Node); DAL.departments objdepartments = new DAL.departments(); DataTable departmentsDT = new DataTable(); departmentsDT = objdepartments.departments_Select_All(); AddSubTree(departmentsDT, Node); RadTreeView1.ExpandAllNodes(); //Initializing Menu: End //Initializing Grid: Start DAL.Personels ObjPersonels = new DAL.Personels(); DataTable PersonelsDT = new DataTable(); PersonelsDT = ObjPersonels.Personels_SELECT_BY_DepartmentID(1,true); RadGrid1.DataSource = PersonelsDT; RadGrid1.DataBind(); //Initializing Grid: End } public void AddSubTree(DataTable dt, Telerik.Web.UI.RadTreeNode Node) { for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i][1].ToString() == Node.Value) { Telerik.Web.UI.RadTreeNode Node22 = new Telerik.Web.UI.RadTreeNode(); Node22.Value = dt.Rows[i][0].ToString(); Node22.Text = dt.Rows[i][2].ToString(); // Node22.NavigateUrl = ; //Node22.ToolTip = dt.Rows[i][3].ToString(); //if (dt.Rows[i][7].ToString() != "") // // Node22.Attributes.Add("URL", dt.Rows[i][7].ToString()); //else // Node22.Attributes.Add("URL", "NULL"); Node.Nodes.Add(Node22); AddSubTree(dt, Node22); } } } [WebMethod] public static int GetCount(List<GridFilterExpression> filterExpressions) { return 0; } [WebMethod] public static List<object> GetData(int departmentID, bool SelectSubNodesPersonels, int startIndex, int maximumRows, string sortExpressions, List<GridFilterExpression> filterExpressions) { DAL.Personels ObjPersonels = new DAL.Personels(); DataTable DT = ObjPersonels.Personels_SELECT_BY_DepartmentID(departmentID, SelectSubNodesPersonels); return ObjPersonels.Convert_DataTable_To_List_Object(DT); }}here is my Full Client side Code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="OutputState_Sum.aspx.cs" Inherits="MonthlyOutputState" %><!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> <link href="css/MainStylesheet.css" rel="stylesheet" type="text/css" /></head><body> <script language="javascript" type="text/javascript"> function OrganizationChartNode_Chicked(sender, args) { var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView(); PageMethods.GetData(args.get_node().get_value(), false, 1, tableView.get_pageSize(), tableView.get_sortExpressions().toString(), tableView.get_filterExpressions(), updateGrid); } function updateGrid(result) { var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView(); tableView.set_dataSource(result); tableView.dataBind(); } function OnClientContextMenuItemClicked(sender, args) { var menuItem = args.get_menuItem(); var treeNode = args.get_node(); menuItem.get_menu().hide(); treeNode.select(); switch (menuItem.get_value()) { case "OpenNodeWithSubs": { var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView(); PageMethods.GetData(args.get_node().get_value(), true, 1, tableView.get_pageSize(), tableView.get_sortExpressions().toString(), tableView.get_filterExpressions(), updateGrid); // args.get_node().get_value } break; //////////////////////////////////////////// Adding tab and page views: End case "Rename": treeNode.startEdit(); break; } } </script> <form id="form1" runat="server" dir="rtl" style="width: 100%; height: 100%"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="True"> </telerik:RadScriptManager> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"> </telerik:RadAjaxLoadingPanel> <div class="parent"> <div class="FixedTop" style="height: 60px"> <table style="width: 100%; height: 100%; vertical-align: top;" cellpadding="0px" cellspacing="0px"> <tr> <td> <table> <tr> <td> دوره </td> <td> <telerik:RadComboBox ID="RadComboBoxWorkPeriods" runat="server" Style="z-index: 7001"> </telerik:RadComboBox> </td> <td> گروه </td> <td> <telerik:RadComboBox ID="RadComboBox2" runat="server"> </telerik:RadComboBox> </td> <td> شماره پرسنلي </td> <td> <input type="text" /> </td> </tr> </table> </td> </tr> <tr style="background-image: url('../UI/Pics/Icons/bar1.png');"> <td dir="rtl"> <telerik:RadMenu ID="RadMenu1" runat="server" dir="rtl" Skin="Telerik" Flow="Horizontal" Style="top: 0px; right: 0px"> <Items> <telerik:RadMenuItem runat="server" Text="محاسبه" ImageUrl="~/Pics/Icons/Calculate.gif"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" IsSeparator="true"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" Text="فيلتر" ImageUrl="~/Pics/Icons/Filter.gif"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" IsSeparator="true"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" Text="ايجاد کار" ImageUrl="~/Pics/Icons/Task.png"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" IsSeparator="true"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" Text="نمايش ريز کارها" ImageUrl="~/Pics/Icons/Filter.gif"> </telerik:RadMenuItem> </Items> </telerik:RadMenu> </td> </tr> </table> </div> <div class="FullOfRemainingBody" style="top: 60px"> <table style="width: 100%; height: 100%;"> <tr> <td id="Chart" style="width: 200px; vertical-align: top"> <telerik:RadTreeView ID="RadTreeView1" runat="server" Skin="Default" dir="rtl" Font-Names="KasraB Traffic" Font-Bold="True" OnClientNodeClicking="OrganizationChartNode_Chicked" OnClientContextMenuItemClicked="OnClientContextMenuItemClicked"> <ContextMenus> <telerik:RadTreeViewContextMenu ID="RadTreeViewContextMenu1" runat="server"> <Items> <telerik:RadMenuItem runat="server" Text="کليه زير مجموعه ها" Value="OpenNodeWithSubs"> </telerik:RadMenuItem> </Items> <Items> <telerik:RadMenuItem runat="server" Text="سرجمع براي واحدهاي يک سطح پايين تر" Value="OpenNodeWithSubs"> </telerik:RadMenuItem> </Items> </telerik:RadTreeViewContextMenu> </ContextMenus> </telerik:RadTreeView> </td> <td style="vertical-align: top"> <telerik:RadGrid ID="RadGrid1" runat="server" Skin="Vista"> <ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True"> <Selecting AllowRowSelect="True" /> </ClientSettings> <MasterTableView Font-Names="KasraB Traffic" Font-Bold="true" AllowSorting="true"> <Columns> <telerik:GridTemplateColumn> <ItemTemplate> <img src='pics/personels/<%# Eval("Pic") %>' width="60px" height="70px"/> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid> </td> </tr> </table> </div> </div> </form></body></html>I tested some methods like set DataFiels="Pic" and UniqueName="Pic" but not work, i think we cannot use this method:
<ItemTemplate><img src='pics/personels/<%# Eval("Pic") %>' width="60px" height="70px"/></ItemTemplate>but it works when we Bind server side,but maybe catched when binding client side
how can i program my idea?
i attached the a screen shot of my main page program.
i can attach the full project if need
thank my friends
