
<
telerik:RadGrid ID="grdDailyOvertime" runat="server" AutoGenerateColumns="False"
Enabled="false" AutoGenerateEditColumn="false" EnableTheming="true" OnDeleteCommand="grdDailyOvertime_DeleteCommand"
OnInsertCommand="grdDailyOvertime_InsertCommand" OnNeedDataSource="grdDailyOvertime_NeedDataSource"
OnUpdateCommand="grdDailyOvertime_UpdateCommand" OnItemCommand="grdDailyOvertime_ItemCommand"
HeaderStyle-HorizontalAlign="Center">
<MasterTableView Width="100%" CommandItemSettings-ShowRefreshButton="false" CommandItemStyle-HorizontalAlign="Right"
CommandItemDisplay="Top" CommandItemSettings-AddNewRecordText="<%$ Resources:PDICulture, GridAddNewRow %>"
EditMode="InPlace">
<Columns>
<telerik:GridTemplateColumn Visible="false" UniqueName="Key" DataField="Key">
<ItemTemplate>
<asp:Label ID="lblDailyOvertimeID" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Key") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:HiddenField ID="hdnDailyOvertimeID" runat="server" Value='<%#DataBinder.Eval(Container.DataItem,"Key") %>' />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridEditCommandColumn HeaderText="<%$ Resources:PDICulture, grdEditColumnHeaderText %>"
HeaderStyle-Width="20%" ButtonType="ImageButton" UniqueName="EditColumn">
<ItemStyle CssClass="MyImageButton" />
</telerik:GridEditCommandColumn>
<telerik:GridTemplateColumn HeaderText="<%$ Resources:PDICulture, grdDailyOvertimeHours %>"
UniqueName="DailyHoursExceeding" DataField="DailyHoursExceeding">
<ItemTemplate>
<asp:Label ID="lblDailyHours" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"DailyHoursExceeding") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadTextBox ID="txtDailyHours" MaxLength="5" Width="53%" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"DailyHoursExceeding") %>'>
</telerik:RadTextBox>
<asp:HiddenField ID="hdnDailyHour" runat="server" Value='<%#DataBinder.Eval(Container.DataItem,"DailyHoursExceeding") %>' />
</EditItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="<%$ Resources:PDICulture, grdDailyOvertimeRate %>"
UniqueName="DailyRate" DataField="DailyRate">
<ItemTemplate>
<asp:Label ID="lblDailyRate" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"DailyRate") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadTextBox ID="txtDailyRate" MaxLength="3" Width="65%" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"DailyRate") %>'>
</telerik:RadTextBox>
<asp:HiddenField ID="hdnDailyRate" runat="server" Value='<%#DataBinder.Eval(Container.DataItem,"DailyRate") %>' />
</EditItemTemplate>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</telerik:GridTemplateColumn>
<telerik:GridButtonColumn HeaderText="<%$ Resources:PDICulture, grdDeleteColumnHeaderText %>"
ConfirmText="<%$ Resources:PDICulture, grdDailyDeleteConfirmText %>" ConfirmDialogType="RadWindow"
ConfirmTitle="<%$ Resources:PDICulture, grdDeleteColumnHeaderText %>" ButtonType="ImageButton"
CommandName="Delete" UniqueName="DeleteColumn">
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" />
</telerik:GridButtonColumn>
</Columns>
<NoRecordsTemplate>
<asp:Label runat="server" ID="lblDOTGrdNoRecord" Text="<%$ Resources:PDICulture, GridEmptyMessage %>">
</asp:Label>
</NoRecordsTemplate>
</MasterTableView>
<HeaderStyle Font-Bold="true" CssClass="contentArea" />
<ItemStyle CssClass="contentArea" />
<AlternatingItemStyle CssClass="contentArea" />
</telerik:RadGrid>
Thanks
Rajesh
Issues:
1. When the DataListView is rebound (step 3 above), the DataPager control only displays 2 new page buttons. The additional page buttons which should be there do not appear until after one of the buttons have been clicked. For example, if 3 pages of results are returned then the DataPager will show [1, 2], and if I click on 1 or 2 then it is refreshed and shows [1, 2, 3, n....]
2. Another hideous problem is that the DataListView "OnPageIndexChanged" event goes into a loop on the server side (ouch!!!)
Please could you advise as there are no examples of binding the DataListView and RadDataPager using anything other than a static datasource.
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { IList<EngineerHelper.EngProfile> engProfiles = EngineerHelper.return_RandomEngineers(5); RadListView1.DataSource = engProfiles; RadListView1.DataBind(); } } protected void RadListView2_PageIndexChanged(object sender, RadListViewPageChangedEventArgs e) { IList<EngineerHelper.EngProfile> engProfiles = EngineerHelper.return_RandomEngineers(0); RadListView1.DataSource = engProfiles; RadListView1.DataBind(); } protected void returnEngineers(object sender, RadComboBoxSelectedIndexChangedEventArgs e) { IList<EngineerHelper.EngProfile> engProfiles = EngineerHelper.return_SelectedEngineers(EngineerHelper.engineerIDsBySkillGenre(Convert.ToInt16(e.Value))); RadListView1.DataSource = engProfiles; RadListView1.DataBind(); } <telerik:RadGrid AllowMultiRowSelection="True" ID="RadGrid1" runat="server" DataSourceID="AccessDataSource1" GridLines="None" OnPreRender="RadGrid1_PreRender" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" PageSize="5" AutoGenerateEditColumn="True"> <MasterTableView AutoGenerateColumns="False" DataKeyNames="CustomerID" DataSourceID="AccessDataSource1"> <RowIndicatorColumn Visible="False"> <HeaderStyle Width="20px" /> </RowIndicatorColumn> <ExpandCollapseColumn Resizable="False" Visible="False"> <HeaderStyle Width="20px" /> </ExpandCollapseColumn> <Columns> <%-- removed onkeydown event from all text boxes --%> <telerik:GridBoundColumn DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" SortExpression="CustomerID" UniqueName="CustomerID"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" UniqueName="CompanyName"> <ItemTemplate> <telerik:RadComboBox ID="RadComboBox1" Runat="server" DataTextField="CompanyName" AllowCustomText="True" DataValueField="CompanyName" Text="select value" AutoPostBack="True" > <Items> <telerik:RadComboBoxItem runat="server" Text="arr" Value="arr" /> <telerik:RadComboBoxItem runat="server" Text="dep" Value="dep" /> </Items> </telerik:RadComboBox> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" UniqueName="ContactName"> <ItemTemplate> <asp:TextBox ID="box2" runat="server" Text='<%#Eval("ContactName") %>'></asp:TextBox> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="ContactTitle" HeaderText="ContactTitle" SortExpression="ContactTitle" UniqueName="ContactTitle"> <ItemTemplate> <asp:TextBox ID="box3" runat="server" Text='<%#Eval("ContactTitle") %>'></asp:TextBox> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="Address" HeaderText="Address" SortExpression="Address" UniqueName="Address"> <ItemTemplate> <asp:TextBox ID="box4" runat="server" Text='<%#Eval("Address") %>'></asp:TextBox> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="City" HeaderText="City" SortExpression="City" UniqueName="City"> <ItemTemplate> <asp:TextBox ID="box5" runat="server" Text='<%#Eval("City") %>'></asp:TextBox> </ItemTemplate> </telerik:GridTemplateColumn>/Columns> </MasterTableView> <ClientSettings> <Selecting AllowRowSelect="True" /> <ClientEvents OnKeyPress="keyPress" OnGridCreated="gridCreated" OnRowSelecting="rowSelecting" /> </ClientSettings> <EditItemStyle BackColor="Yellow" /> </telerik:RadGrid><script type="text/javascript"> var RadGrid1; var columnCounter = 0; var rowCounter = 0; var currentCell = null; function getCell(grid) { var cell; var columnName = grid.get_masterTableView().get_columns()[columnCounter].get_uniqueName(); var row = grid.get_masterTableView().get_dataItems()[rowCounter]; cell = grid.get_masterTableView().getCellByColumnUniqueName(row, columnName); return cell; } function getColumnName(grid) { return grid.get_masterTableView().get_columns()[columnCounter].get_uniqueName(); } function handleKeyPress(keyCode) { if (keyCode == 39) { if (columnCounter < RadGrid1.get_masterTableView().get_columns().length - 1) { if (currentCell != null) { currentCell.className = ""; } columnCounter++; currentCell = getCell(RadGrid1); currentCell.className = "class1"; if (getColumnName(RadGrid1) == "CustomerID") { currentCell.className = "class1"; } if (getColumnName(RadGrid1) == "CompanyName") { $telerik.findElement(currentCell, "RadComboBox1").focus(); } if (getColumnName(RadGrid1) == "ContactName") { $telerik.findElement(currentCell, "box2").focus(); } if (getColumnName(RadGrid1) == "ContactTitle") { $telerik.findElement(currentCell, "box3").focus(); } if (getColumnName(RadGrid1) == "Address") { $telerik.findElement(currentCell, "box4").focus(); } if (getColumnName(RadGrid1) == "City") { $telerik.findElement(currentCell, "box5").focus(); } if (getColumnName(RadGrid1) == "Region") { $telerik.findElement(currentCell, "box6").focus(); } if (getColumnName(RadGrid1) == "PostalCode") { $telerik.findElement(currentCell, "box7").focus(); } if (getColumnName(RadGrid1) == "Phone") { $telerik.findElement(currentCell, "box8").focus(); } if (getColumnName(RadGrid1) == "Fax") { $telerik.findElement(currentCell, "box9").focus(); } } } else if (keyCode == 37) { if (currentCell != null) { currentCell.className = ""; } if (columnCounter > 0) { columnCounter--; currentCell = getCell(RadGrid1); currentCell.className = "class1"; } if (getColumnName(RadGrid1) == "CustomerID") { currentCell.className = "class1"; } if (getColumnName(RadGrid1) == "CompanyName") { $telerik.findElement(currentCell, "RadComboBox1").focus(); } if (getColumnName(RadGrid1) == "ContactName") { $telerik.findElement(currentCell, "box2").focus(); } if (getColumnName(RadGrid1) == "ContactTitle") { $telerik.findElement(currentCell, "box3").focus(); } if (getColumnName(RadGrid1) == "Address") { $telerik.findElement(currentCell, "box4").focus(); } if (getColumnName(RadGrid1) == "City") { $telerik.findElement(currentCell, "box5").focus(); } if (getColumnName(RadGrid1) == "Region") { $telerik.findElement(currentCell, "box6").focus(); } if (getColumnName(RadGrid1) == "PostalCode") { $telerik.findElement(currentCell, "box7").focus(); } if (getColumnName(RadGrid1) == "Phone") { $telerik.findElement(currentCell, "box8").focus(); } if (getColumnName(RadGrid1) == "Fax") { $telerik.findElement(currentCell, "box9").focus(); } } else if (keyCode == 38) { if (rowCounter > 0) { if (currentCell != null) { currentCell.className = ""; } rowCounter--; currentCell = getCell(RadGrid1); currentCell.className = "class1"; } if (getColumnName(RadGrid1) == "CustomerID") { currentCell.className = "class1"; } if (getColumnName(RadGrid1) == "CompanyName") { $telerik.findElement(currentCell, "RadComboBox1").focus(); } if (getColumnName(RadGrid1) == "ContactName") { $telerik.findElement(currentCell, "box2").focus(); } if (getColumnName(RadGrid1) == "ContactTitle") { $telerik.findElement(currentCell, "box3").focus(); } if (getColumnName(RadGrid1) == "Address") { $telerik.findElement(currentCell, "box4").focus(); } if (getColumnName(RadGrid1) == "City") { $telerik.findElement(currentCell, "box5").focus(); } if (getColumnName(RadGrid1) == "Region") { $telerik.findElement(currentCell, "box6").focus(); } if (getColumnName(RadGrid1) == "PostalCode") { $telerik.findElement(currentCell, "box7").focus(); } if (getColumnName(RadGrid1) == "Phone") { $telerik.findElement(currentCell, "box8").focus(); } if (getColumnName(RadGrid1) == "Fax") { $telerik.findElement(currentCell, "box9").focus(); } } else if (keyCode == 40) { if (rowCounter < RadGrid1.get_masterTableView().get_dataItems().length - 1) { if (currentCell != null) { currentCell.className = ""; } rowCounter++; currentCell = getCell(RadGrid1); currentCell.className = "class1"; } if (getColumnName(RadGrid1) == "CustomerID") { currentCell.className = "class1"; } if (getColumnName(RadGrid1) == "CompanyName") { $telerik.findElement(currentCell, "RadComboBox1").focus(); } if (getColumnName(RadGrid1) == "ContactName") { $telerik.findElement(currentCell, "box2").focus(); } if (getColumnName(RadGrid1) == "ContactTitle") { $telerik.findElement(currentCell, "box3").focus(); } if (getColumnName(RadGrid1) == "Address") { $telerik.findElement(currentCell, "box4").focus(); } if (getColumnName(RadGrid1) == "City") { $telerik.findElement(currentCell, "box5").focus(); } if (getColumnName(RadGrid1) == "Region") { $telerik.findElement(currentCell, "box6").focus(); } if (getColumnName(RadGrid1) == "PostalCode") { $telerik.findElement(currentCell, "box7").focus(); } if (getColumnName(RadGrid1) == "Phone") { $telerik.findElement(currentCell, "box8").focus(); } if (getColumnName(RadGrid1) == "Fax") { $telerik.findElement(currentCell, "box9").focus(); } } } function textBoxKeyPress(e) { var evt = e ? e : window.event; //focus next control in the cell //or if not any, continue to next cell. handleKeyPress(e.keyCode); } function keyPress(sender, args) { var keyCode = args.get_keyCode(); handleKeyPress(keyCode); } function gridCreated(sender, args) { RadGrid1 = sender; currentCell = RadGrid1.get_masterTableView().getCellByColumnUniqueName(RadGrid1.get_masterTableView().get_dataItems()[0], "CustomerID"); currentCell.className = "class1"; } function rowSelecting() { return false; }