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