Hello
I have a problem to solve
please, refer to this test page
1. select the item from the combo
2. in the top grid, select the 3rd row (year 2007) for edit items
3. look at the first combo (access): if the user selects PUBLIC, then the other combos (So, the question is: how can I access the combos from client side?
Here is the aspx section for the radgrid:
Here is the codebehind section (not optimized...):
and finally the javascript code:
thanks in advance
diego
I have a problem to solve
please, refer to this test page
1. select the item from the combo
2. in the top grid, select the 3rd row (year 2007) for edit items
3. look at the first combo (access): if the user selects PUBLIC, then the other combos (So, the question is: how can I access the combos from client side?
Here is the aspx section for the radgrid:
<
telerik:RadGrid
ID
=
"gridPolicy"
runat
=
"server"
AutoGenerateColumns
=
"False"
CellSpacing
=
"0"
DataSourceID
=
"sqlDataPol"
GridLines
=
"None"
OnItemDataBound
=
"gridPolicy_OnItemDataBound"
OnEditCommand
=
"gridPolicy_OnEditCommand"
Skin
=
"Windows7"
AllowFilteringByColumn
=
"false"
AllowPaging
=
"true"
PageSize
=
"7"
AllowAutomaticUpdates
=
"true"
>
<
MasterTableView
DataKeyNames
=
"polID"
AllowFilteringByColumn
=
"false"
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn"
></
telerik:GridEditCommandColumn
>
<
telerik:GridBoundColumn
DataField
=
"year"
FilterControlAltText
=
"Filter column column"
UniqueName
=
"year"
HeaderText
=
"Year"
ItemStyle-Width
=
"20px"
ReadOnly
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridDropDownColumn
DataField
=
"access"
UniqueName
=
"access"
ListTextField
=
"acc"
ListValueField
=
"acc"
DropDownControlType
=
"RadComboBox"
HeaderText
=
"access"
EmptyListItemText
=
"Select"
EmptyListItemValue
=
""
DataSourceID
=
"SqlDataSource5"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridDropDownColumn
DataField
=
"uso"
UniqueName
=
"uso"
ListTextField
=
"puse"
ListValueField
=
"puse"
DropDownControlType
=
"RadComboBox"
HeaderText
=
"Data use"
EmptyListItemText
=
"Select"
EmptyListItemValue
=
""
DataSourceID
=
"SqlDataSource3"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridDropDownColumn
DataField
=
"pi1"
UniqueName
=
"pi1"
ListTextField
=
"prjname"
ListValueField
=
"prjname"
DropDownControlType
=
"RadComboBox"
HeaderText
=
"PI Access #1"
EmptyListItemText
=
"Select"
EmptyListItemValue
=
""
DataSourceID
=
"SqlDataSource4"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridDropDownColumn
DataField
=
"pi2"
UniqueName
=
"pi2"
ListTextField
=
"prjname"
ListValueField
=
"prjname"
DropDownControlType
=
"RadComboBox"
HeaderText
=
"PI Access #2"
EmptyListItemText
=
"Select"
EmptyListItemValue
=
""
DataSourceID
=
"SqlDataSource4"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridDropDownColumn
DataField
=
"pi3"
UniqueName
=
"pi3"
ListTextField
=
"prjname"
ListValueField
=
"prjname"
DropDownControlType
=
"RadComboBox"
HeaderText
=
"PI Access #3"
EmptyListItemText
=
"Select"
EmptyListItemValue
=
""
DataSourceID
=
"SqlDataSource4"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridDropDownColumn
DataField
=
"Fluxnet"
UniqueName
=
"Fluxnet"
ListTextField
=
"FluxnetType"
ListValueField
=
"FluxnetType"
DropDownControlType
=
"RadComboBox"
HeaderText
=
"Fluxnet"
EmptyListItemText
=
"Select"
EmptyListItemValue
=
""
DataSourceID
=
"SqlDataSource6"
>
</
telerik:GridDropDownColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
></
EditColumn
>
</
EditFormSettings
>
</
MasterTableView
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Default"
>
</
HeaderContextMenu
>
<
ClientSettings
>
<
ClientEvents
OnCommand
=
"OnCommand"
/>
</
ClientSettings
>
</
telerik:RadGrid
>
protected void gridPolicy_OnItemDataBound(object sender, GridItemEventArgs e)
{
string[] pis = { "pi1", "pi2", "pi3" };
if ((e.Item is GridEditFormItem))
{
GridEditFormItem edititem = (GridEditFormItem)e.Item;
GridEditManager editMan = edititem.EditManager;
if (e.Item.IsInEditMode)
{
if (edititem.ParentItem["Fluxnet"].Text == "Free")
{
edititem["Fluxnet"].Enabled = false;
}
else
{
GridDropDownListColumnEditor editor = (GridDropDownListColumnEditor)(editMan.GetColumnEditor("Fluxnet"));
RadComboBox combo = editor.ComboBoxControl;
combo.OnClientSelectedIndexChanged = "setValue";
}
if (edititem.ParentItem["access"].Text == "Public")
{
edititem["access"].Enabled = false;
}
else
{
GridDropDownListColumnEditor editor = (GridDropDownListColumnEditor)(editMan.GetColumnEditor("access"));
RadComboBox combo = editor.ComboBoxControl;
combo.OnClientSelectedIndexChanged = "setValue";
}
if (edititem.ParentItem["uso"].Text == "Open")
{
edititem["uso"].Enabled = false;
}
else
{
GridDropDownListColumnEditor editor = (GridDropDownListColumnEditor)(editMan.GetColumnEditor("uso"));
RadComboBox combo = editor.ComboBoxControl;
combo.OnClientSelectedIndexChanged = "setValue";
}
for (int i = 0; i <
pis.Length
; i++)
{
if (edititem.ParentItem[pis[i]].Text == "xxxxxxxxxxxx")
{
edititem[pis[i]]
.Enabled
=
false
;
}
else
{
GridDropDownListColumnEditor editor = (GridDropDownListColumnEditor)(editMan.GetColumnEditor(pis[i]));
RadComboBox
combo
=
editor
.ComboBoxControl;
combo.OnClientSelectedIndexChanged
=
"setValue"
;
}
}
}
else
{
for (int
i
=
0
; i < pis.Length; i++)
{
if (edititem[pis[i]].Text == "xxxxxxxxxxxx")
{
edititem[pis[i]]
.BorderColor
=
System
.Drawing.Color.LightBlue;
//Response.Write(edititem["year"].Text + " PIS " + i + " xxx<br />");
}
else
{
//Response.Write(edititem["year"].Text + " PIS " + i + " " + (edititem[pis[i]].Text.Trim().Length) + "<
br
/>");
}
}
}
}
}
and finally the javascript code:
<
script
type
=
"text/javascript"
>
var unique = new Array("access", "uso", "pi1", "pi2", "pi3", "Fluxnet");
var oldVal = new Array("", "", "", "", "", "");
var grid;
var mtable;
var index;
function setValue(sender, args) {
grid = $find("<%=gridPolicy.ClientID %>");
mtable = grid.get_masterTableView();
var _sender = sender.get_id();
var value=args.get_item().get_value();
if (_sender.indexOf("access") >= 0) {
if (value == "Public") {
alert("PI a XXXX");
}
else {
alert("Libera PI");
}
}
else if (_sender.indexOf("uso") >= 0) {
if (value == "Open") {
alert("FLUX FREE");
}
else {
alert("reset flux");
}
}
}
function OnCommand(sender, eventArgs) {
index = eventArgs.get_commandArgument();
grid = $find("<%=gridPolicy.ClientID %>");
mtable = grid.get_masterTableView();
var cmd = eventArgs.get_commandName();
if (cmd == "Edit") {
var row = mtable.get_dataItems()[index];
for (i = 2; i <
mtable.get_columns
().length; i++) {
var
cell
=
mtable
.getCellByColumnUniqueName(row, unique[i-2]);
var
val
=
cell
.innerHTML.toString();
if (val.indexOf("&") >= 0) {
val="";
}
oldVal[i - 2] = cell.innerHTML;
}
}
}
</
script
>
thanks in advance
diego