Hi,
I am loading a grid with data and attaching to the SelectedIndexChanged event. When the grid is loaded I want to select the first row and have the code in the SelectedIndexChanged handler run. The only way I can manage this is to explicitly call the handler.
My C# code is as follows:
and my HTML is:
Can anyone tell me what I need to change to get this to work without the need to call the handler directly?
Thanks,
David
I am loading a grid with data and attaching to the SelectedIndexChanged event. When the grid is loaded I want to select the first row and have the code in the SelectedIndexChanged handler run. The only way I can manage this is to explicitly call the handler.
My C# code is as follows:
protected void grdTicket_NeedDataSource(object source, GridNeedDataSourceEventArgs e){ DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt.Columns.Add("UserId"); for (int i = 0; i < 15; i++) { DataRow dr = dt.NewRow(); dr["UserId"] = "XYZ" + i.ToString(); dt.Rows.Add(dr); } ds.Tables.Add(dt); grdTicket.DataSource = ds;}protected void grdTicket_PreRender(object sender, EventArgs e){ RadGrid grid = sender as RadGrid; if (grid.MasterTableView.Items.Count > 0) { if (grid.SelectedIndexes.Count == 0) { //grid.SelectedIndexes.Add(0); grid.MasterTableView.Items[0].Selected = true; // This just feels dirty!! // Why doesn't the event fire when I set the row's Selected property grdTicket_SelectedIndexChanged(sender, null); } }}protected void grdTicket_SelectedIndexChanged(object sender, EventArgs e){ RadGrid grid = sender as RadGrid; int index = Convert.ToInt32(grid.SelectedIndexes[0]); lblSelectedIndex.Text = "Selected index = " + index;}and my HTML is:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><telerik:RadGrid ID="grdTicket" runat="server" AutoGenerateColumns="false" Width="946px" Font-Names="Verdana" Font-Size="x-small" EnableViewState="true" AllowSorting="true" AllowPaging="true" AllowMultiRowSelection="false" OnNeedDataSource="grdTicket_NeedDataSource" OnPreRender="grdTicket_PreRender" OnSelectedIndexChanged="grdTicket_SelectedIndexChanged"> <ClientSettings EnablePostBackOnRowClick="True"> <Selecting AllowRowSelect="True" /> </ClientSettings> <MasterTableView Width="100%" NoDetailRecordsText="No Records To Display"> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> </RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn HeaderText="User ID" DataField="UserId" UniqueName="UserID"> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <PagerStyle Mode="NextPrevNumericAndAdvanced" ShowPagerText="true" /> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> </HeaderContextMenu></telerik:RadGrid><br /><asp:Label runat="server" ID="lblSelectedIndex" />Can anyone tell me what I need to change to get this to work without the need to call the handler directly?
Thanks,
David