The following code doesn't work - it doesn't cause the controls to fire their client-side events in edit mode - any thoughts?
CS:
protected
void
rgRepricingApproval_ItemCreated(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem item = (GridEditableItem)e.Item;
GridEditManager editMan = item.EditManager;
GridNumericColumnEditor editorAgreedSellPrice = (GridNumericColumnEditor)editMan.GetColumnEditor(
"AgreedSellPrice"
);
RadNumericTextBox txtAgreedSellPrice = editorAgreedSellPrice.NumericTextBox;
txtAgreedSellPrice.ClientEvents.OnValueChanged +=
string
.Format(
"return ToggleValues({0});"
, e.Item.ItemIndex);
RadDropDownList rcbHibernate = (RadDropDownList)item.FindControl(
"ddlHibernateID"
);
rcbHibernate.OnClientSelectedIndexChanged +=
string
.Format(
"return ToggleValues({0});"
, e.Item.ItemIndex);
// ONLY THIS WORKS (non-Telerik)
CheckBox chkIsError = (CheckBox)item.FindControl(
"chkIsError"
);
chkIsError.Attributes[
"onchange"
] +=
string
.Format(
"return ToggleValues({0});"
, e.Item.ItemIndex);
}
}
ASPX:
<
telerik:GridNumericColumn
HeaderText
=
"Agreed Sell Price"
UniqueName
=
"AgreedSellPrice"
DataField
=
"AgreedSellPrice"
NumericType
=
"Currency"
DecimalDigits
=
"3"
ColumnEditorID
=
"ceAgreedSellPrice"
>
<
HeaderStyle
Width
=
"120px"
/>
<
ItemStyle
Width
=
"120px"
/>
</
telerik:GridNumericColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Hibernate Period"
UniqueName
=
"HibernateID"
DataField
=
"HibernateID"
ConvertEmptyStringToNull
=
"true"
>
<
HeaderStyle
Width
=
"110px"
CssClass
=
"headerHibernate"
/>
<
ItemStyle
Width
=
"110px"
Height
=
"50px"
/>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblHibernate"
Text='<%# Eval("Hibernate.HibernateText") %>' />
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadDropDownList
runat
=
"server"
ID
=
"ddlHibernateID"
AppendDataBoundItems
=
"true"
DataSourceID
=
"edsHibernate"
DataValueField
=
"HibernateID"
DataTextField
=
"HibernateText"
>
<
Items
>
<
telerik:DropDownListItem
Value
=
""
Text
=
""
/>
</
Items
>
</
telerik:RadDropDownList
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Error?"
UniqueName
=
"Error"
AllowSorting
=
"false"
AllowFiltering
=
"false"
>
<
HeaderStyle
Width
=
"60px"
CssClass
=
"headerError"
/>
<
ItemStyle
Width
=
"60px"
HorizontalAlign
=
"Center"
/>
<
ItemTemplate
>
<
asp:CheckBox
ID
=
"chkIsError"
runat
=
"server"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Error Reason"
UniqueName
=
"ErrorReason"
DataField
=
"ErrorReason"
>
<
HeaderStyle
Width
=
"200px"
CssClass
=
"headerError"
/>
<
ItemStyle
Width
=
"200px"
/>
<
ItemTemplate
>
<
asp:TextBox
ID
=
"txtErrorReason"
runat
=
"server"
TextMode
=
"MultiLine"
Columns
=
"20"
Rows
=
"2"
Enabled
=
"false"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
All items are in edit mode:
protected void rgRepricingApproval_PreRender(object sender, EventArgs e)
{
for (int i = 0; i < rgRepricingApproval.MasterTableView.PageSize; i++)
{
rgRepricingApproval.EditIndexes.Add(i);
}
rgRepricingApproval.Rebind();
}