Hi - I've been searching for the way to do this and haven't found it yet.
I have a grid defined on my page in the normal fashion - with bound columns that allow editing:
<asp:DataGrid id="dgActivityGroup" runat="server" ForeColor="Black" GridLines="Vertical" CellPadding="3"
AutoGenerateColumns="False" BackColor="White" Width="704px" BorderWidth="1px" BorderStyle="Solid"
BorderColor="Silver" Font-Names="Arial">
<FooterStyle Font-Bold="True" ForeColor="#244272" BorderColor="#B3C5E1" BackColor="#E0EEFE"></FooterStyle>
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#6699CC"></SelectedItemStyle>
<EditItemStyle BackColor="#6699CC"></EditItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#244272" BorderColor="#B3C5E1" BackColor="#E0EEFE"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="ItemIndex" ReadOnly="True" HeaderText="ItemIndex"></asp:BoundColumn>
<asp:BoundColumn DataField="ActivityGroup" HeaderText="Activity Group"></asp:BoundColumn>
<asp:BoundColumn DataField="Description" HeaderText="Description"></asp:BoundColumn>
<asp:BoundColumn DataField="ReportGroup" HeaderText="Report Group"></asp:BoundColumn>
<asp:BoundColumn DataField="TrendTotalGroup" HeaderText="Trend Total Group"></asp:BoundColumn>
<asp:BoundColumn DataField="UnitOfMeasure" HeaderText="Unit of Measure"></asp:BoundColumn>
<asp:BoundColumn DataField="SortOrder" HeaderText="Sort Order"></asp:BoundColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" HeaderText="Edit" CancelText="Cancel"
EditText="Edit"></asp:EditCommandColumn>
<asp:ButtonColumn Text="Delete" HeaderText="Delete" CommandName="Delete"></asp:ButtonColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="Black" BackColor="#999999"></PagerStyle>
</asp:DataGrid>
I also have an additional INPUT field on the page that tracks if someone is making changes to the data so I can pop up an "Are you sure" message.
<INPUT id="hdnPageChange" style="WIDTH: 40px; HEIGHT: 19px" type="hidden" size="1" value="false" name="hdnPageChange" runat="server">
In the older version of the Telerik controls that I was using with VisualStudio 2003, I used to prerender event to add client script as such:
private void dgActivityGroup_PreRender(object sender, System.EventArgs e)
{
if (dgActivityGroup.EditItemIndex > -1)
{
int currentIndex = int.Parse(dgActivityGroup.Items[dgActivityGroup.EditItemIndex].Cells[CELL_ITEM_INDEX].Text);
((LinkButton)dgActivityGroup.Items[dgActivityGroup.EditItemIndex].Cells[CELL_EDIT_LINK].Controls[0]).Attributes.Add("onclick", "checkScrollPos(); hdnPageChange.value = 'false'");
((LinkButton)dgActivityGroup.Items[dgActivityGroup.EditItemIndex].Cells[CELL_EDIT_LINK].Controls[2]).Attributes.Add("onclick", "checkScrollPos(); hdnPageChange.value = 'false'");
((LinkButton)dgActivityGroup.Items[dgActivityGroup.EditItemIndex].Cells[CELL_DELETE_LINK].Controls[0]).Enabled = false;
}
}
This code worked perfectly before - when the person clicked the Edit button - it would call the client code to set the hdnPageChange.value = false. But now in the new version of the controls, I get an error:
Unhandled exception at line 103, column 948 in http://localhost:5040/ActivityGroup.aspx
0x800a1391 - JavaScript runtime error: 'hdnPageChange' is undefined
But hdnPageChange definitely exists... even when I do a view source on the page I can see it. Any idea what I'm doing wrong? Is there a better way to solve the problem with the new version of the code?
Thanks!