or
protected
void grdDelegation_ItemCommand(object source, GridCommandEventArgs e)
{
try
{
hdnDelegationCommandName.Value = e.CommandName;
switch (e.CommandName)
{
case RadGrid.EditCommandName:
hdnDelegationGridAddUpdate.Value =
"2";
if (grdDelegation.MasterTableView.IsItemInserted)
{
e.Canceled =
true;
}
break;
case RadGrid.InitInsertCommandName:
//Pair filterPair = (Pair)e.CommandArgument;
//TextBox filterBox = (e.Item as GridFilteringItem)[filterPair.Second.ToString()].Controls[0] as TextBox;
//filterBox.Text = "";
<style type="text/css" > .RadListBox1 div.rlbHeader { height:25px; } </style> <asp:Panel runat="server" id="pnlCustomFieldListValues" CssClass="fieldPanel" Visible="false"> <div style="float: left; width: 750px;"> <asp:Label ID="Label2" runat="server" AssociatedControlId="radCustomFieldListValues" Text="List Values:" /> <telerik:RadListBox runat="server" ID="radCustomFieldListValues" Width="100%" Height="200px" SelectionMode="Single" AllowReorder="true" AllowDelete="true" EnableDragAndDrop="true" DataValueField="Id" ButtonSettings-ReorderButtons="All" ButtonSettings-ShowDelete="true" CssClass="RadListBox1" > <HeaderTemplate> <asp:Label runat="server" Width="200" Text="Name" /> <asp:Label runat="server" Width="200" Text="Value" /> </HeaderTemplate> <ItemTemplate> <asp:Label runat="server" ID="lblListValueName" Width="200" Text='<%# DataBinder.Eval(Container.DataItem, "Name")%>' /> <asp:Label runat="server" ID="lblListValue" Width="200" Text='<%# DataBinder.Eval(Container.DataItem, "Value")%>' /> </ItemTemplate> </telerik:RadListBox> </div> </asp:Panel> 
| <form id="form1" runat="server"> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> |
| </telerik:RadScriptManager> |
| <telerik:RadCodeBlock runat="server"> |
| <script type="text/javascript"> |
| function RowDblClick(sender, eventArgs) { |
| sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical()); |
| } |
| function onRequestStart(sender, args) { |
| if (args.get_eventTarget().indexOf("ExportToExcelButton") >= 0 || |
| args.get_eventTarget().indexOf("ExportToWordButton") >= 0 || |
| args.get_eventTarget().indexOf("ExportToPdfButton") >= 0 || |
| args.get_eventTarget().indexOf("ExportToCsvButton") >= 0) { |
| args.set_enableAjax(false); |
| } |
| } |
| </script> |
| </telerik:RadCodeBlock> |
| <div> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| <ClientEvents OnRequestStart="onRequestStart" /> |
| </telerik:RadAjaxManager> |
| <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default"> |
| </telerik:RadAjaxLoadingPanel> |
| <div align=center> |
| <asp:Label ID="Label1" runat="server" |
| Text="Qwest Tele Sales Crossmedia Report Tool" Font-Bold="True" |
| Font-Italic="True" Font-Size="XX-Large"></asp:Label> |
| <p /> |
| </div> |
| <telerik:RadGrid ID="RadGrid1" runat="server" AllowAutomaticUpdates="True" |
| AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" DataSourceID="SqlDataSource1" |
| GridLines="None" EnableLinqExpressions="False" |
| OnItemCommand="RadGrid1_ItemCommand" |
| onexcelmlexportrowcreated="RadGrid1_ExcelMLExportRowCreated" |
| onexcelmlexportstylescreated="RadGrid1_ExcelMLExportStylesCreated" |
| onitemcreated="RadGrid1_ItemCreated"> |
| <MasterTableView AutoGenerateColumns="False" DataKeyNames="ID" |
| DataSourceID="SqlDataSource1" EditMode="PopUp"> |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridEditCommandColumn> |
| </telerik:GridEditCommandColumn> |
| <telerik:GridBoundColumn DataField="ID" DataType="System.Int64" HeaderText="ID" ReadOnly="True" |
| SortExpression="ID" UniqueName="ID" HeaderStyle-Width="110px"> |
| <FilterTemplate> |
| Clear filters |
| <asp:ImageButton ID="btnShowAll" runat="server" ImageUrl="Img/filterCancel.gif" OnClick="btnShowAll_Click" |
| Style="vertical-align: middle" /> |
| </FilterTemplate> |
| <HeaderStyle Width="110px"></HeaderStyle> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="SID" DataType="System.Int64" HeaderText="SID" ReadOnly="true" ForceExtractValue="InEditMode" |
| SortExpression="SID" UniqueName="SID"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Username" HeaderText="Username" SortExpression="Username" ReadOnly="true" ForceExtractValue="InEditMode" |
| UniqueName="Username"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="First" HeaderText="First" SortExpression="First" ReadOnly="true" ForceExtractValue="InEditMode" |
| UniqueName="First"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Last" HeaderText="Last" SortExpression="Last" ReadOnly="true" ForceExtractValue="InEditMode" |
| UniqueName="Last"> |
| </telerik:GridBoundColumn> |
| <telerik:GridCheckBoxColumn DataField="EngPostcard" DataType="System.Boolean" HeaderText="EngPostcard" |
| SortExpression="EngPostcard" UniqueName="EngPostcard"> |
| </telerik:GridCheckBoxColumn> |
| <telerik:GridCheckBoxColumn DataField="EngEmail" DataType="System.Boolean" HeaderText="EngEmail" |
| SortExpression="EngEmail" UniqueName="EngEmail"> |
| </telerik:GridCheckBoxColumn> |
| <telerik:GridBoundColumn DataField="Name" HeaderText="Name" SortExpression="Name" |
| UniqueName="Name"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Speed" HeaderText="Speed" SortExpression="Speed" |
| UniqueName="Speed"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Email" HeaderText="Email" SortExpression="Email" |
| UniqueName="Email"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Address1" HeaderText="Address1" SortExpression="Address1" |
| UniqueName="Address1"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Address2" HeaderText="Address2" SortExpression="Address2" |
| UniqueName="Address2"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="City" HeaderText="City" SortExpression="City" |
| UniqueName="City"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="State" HeaderText="State" SortExpression="State" |
| UniqueName="State"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="Zip" HeaderText="Zip" SortExpression="Zip" UniqueName="Zip"> |
| </telerik:GridBoundColumn> |
| <telerik:GridDateTimeColumn DataField="DateVisited" DataType="System.DateTime" HeaderText="DateVisited" |
| SortExpression="DateVisited" UniqueName="DateVisited"> |
| </telerik:GridDateTimeColumn> |
| <telerik:GridBoundColumn DataField="DateRegistered" DataType="System.DateTime" HeaderText="DateRegistered" |
| SortExpression="DateRegistered" UniqueName="DateRegistered" > |
| <FilterTemplate> |
| From |
| <telerik:RadDatePicker ID="FromDateRegisteredPicker" runat="server" Width="85px" |
| ClientEvents-OnDateSelected="FromDateRegisteredSelected" MinDate="06-01-2010" |
| MaxDate="01-01-2020" FocusedDate="07-04-2010" DbSelectedDate='<%# startDate %>' /> |
| to |
| <telerik:RadDatePicker ID="ToDateRegisteredPicker" runat="server" Width="85px" ClientEvents-OnDateSelected="ToDateRegisteredSelected" |
| MinDate="06-01-2010" MaxDate="01-01-2020" FocusedDate="08-08-2010" DbSelectedDate='<%# endDate %>' /> |
| <telerik:RadScriptBlock runat="server" ID="RadScriptBlock1"> |
| <script type="text/javascript"> |
| function FromDateRegisteredSelected(sender, args) { |
| var tableView = $find("<%#((GridItem)Container).OwnerTableView.ClientID %>"); |
| var ToDateRegisteredPicker = $find('<%#((GridItem)Container).FindControl("ToDateRegisteredPicker").ClientID %>'); |
| var fromDateRegistered = FormatSelectedDate(sender); |
| var toDateRegistered = FormatSelectedDate(ToDateRegisteredPicker); |
| tableView.filter("DateRegistered", fromDateRegistered + " " + toDateRegistered, "Between"); |
| } |
| function ToDateRegisteredSelected(sender, args) { |
| var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>"); |
| var fromDateRegisteredPicker = $find('<%# ((GridItem)Container).FindControl("FromDateRegisteredPicker").ClientID %>'); |
| var fromDateRegistered = FormatSelectedDate(fromDateRegisteredPicker); |
| var toDateRegistered = FormatSelectedDate(sender); |
| tableView.filter("DateRegistered", fromDateRegistered + " " + toDateRegistered, "Between"); |
| } |
| function FormatSelectedDate(picker) { |
| var date = picker.get_selectedDate(); |
| var dateInput = picker.get_dateInput(); |
| var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat()); |
| return formattedDate; |
| } |
| </script> |
| </telerik:RadScriptBlock> |
| </FilterTemplate> |
| </telerik:GridBoundColumn> |
| <telerik:GridCheckBoxColumn DataField="Optout" DataType="System.Boolean" HeaderText="Optout" |
| SortExpression="Optout" UniqueName="Optout"> |
| </telerik:GridCheckBoxColumn> |
| </Columns> |
| <EditFormSettings> |
| <EditColumn UniqueName="EditCommandColumn1"></EditColumn> |
| </EditFormSettings> |
| </MasterTableView> |
| <ClientSettings> |
| <ClientEvents OnRowDblClick="RowDblClick" /> |
| </ClientSettings> |
| </telerik:RadGrid> |
| </div> |
| <div class="module" style="height: 110px; width: 92%"> |
| <asp:CheckBox ID="CheckBox1" Text="Export only data" runat="server"></asp:CheckBox> |
| <br /> |
| <asp:CheckBox ID="CheckBox2" Text="Ignore paging (exports all pages)" runat="server"></asp:CheckBox> |
| <br /> |
| <asp:CheckBox ID="CheckBox3" Text="Open exported data in new browser window" runat="server"></asp:CheckBox> |
| <br /> |
| <br /> |
| <asp:Button ID="Button1" Width="150px" Text="Export to Excel" OnClick="Button1_Click" |
| runat="server"></asp:Button> |
| <asp:Button ID="Button4" Width="150px" Text="Export to ExcelML" OnClick="Button4_Click" |
| runat="server"></asp:Button> |
| <asp:Button ID="Button2" Width="150px" Text="Export to Word" OnClick="Button2_Click" |
| runat="server"></asp:Button> |
| <asp:Button ID="Button3" Width="150px" Text="Export to CSV" OnClick="Button3_Click" |
| runat="server"></asp:Button> |
| </div> |
| <br /> |
| </form> |
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource" AllowSorting="True" AllowFilteringByColumn="True" AllowPaging="True"> <MasterTableView CommandItemDisplay="Bottom"> <Columns> . . . <Columns> <CommandItemTemplate> <table id="tblCommand"><tr><td> <div style="height: 30px; line-height: 30px; position: relative; float: left; padding-left: 5px;"> <asp:LinkButton ID="lnkInsert" runat="server" CommandName="InitInsert"><img style="border:0px" alt="" src="/App_Images/Add.png" /> Add new record</asp:LinkButton> </div> <div style="height: 30px; line-height: 30px; position: relative; float: left; padding-left: 15px;"> <asp:LinkButton ID="lnkDelete" runat="server" CommandName="Delete"><img style="border:0px" alt="" src="/App_Images/Delete.png" /> Delete record(s)</asp:LinkButton> </div> </td><td> <div style="height: 30px; text-align: right; position: relative; float: right;"> <asp:Image ID="imgCancelChanges" runat="server" ImageUrl="/App_Images/cancel.gif" AlternateText="Cancel changes" ToolTip="Cancel changes" Height="24px" Style="cursor: pointer; margin: 2px 5px 0px 0px;" onclick="CancelChanges();" /> <asp:Image ID="imgProcessChanges" runat="server" ImageUrl="/App_Images/ok.gif" AlternateText="Process changes" ToolTip="Process changes" Height="24px" Style="cursor: pointer; margin: 2px 5px 0px 0px;" onclick="ProcessChanges();" /> </div> </td></tr> </table> </CommandItemTemplate> <PagerStyle AlwaysVisible="true" /> </MasterTableView> <ClientSettings> <ClientEvents OnGridCreated="GridCreated" /> <Scrolling AllowScroll="true" /> </ClientSettings></telerik:RadGrid><telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> jQuery(document).ready(function ($) { $('#tblCommand').width(cphContent_ctl00$cphContent$RadGrid1Panel.offsetWidth); }); function GridCreated(sender, args) { var scrollArea = sender.GridDataDiv; var dataHeight = sender.get_masterTableView().get_element().clientHeight; if (dataHeight < 350) { scrollArea.style.height = dataHeight + 18 + "px"; } } </script></telerik:RadCodeBlock><form id="form1" runat="server"> <div> <telerik:RadScriptManager ID="ScriptManager1" runat="server" EnableTheming="True"> </telerik:RadScriptManager> <telerik:radgrid id="RadGrid1" runat="server" onneeddatasource="RadGrid1_NeedDataSource" enableajax="true" autogenerateeditcolumn="True" showgrouppanel="True" width="99%" allowpaging="True" allowautomaticupdates="true" allowsorting="True" allowmultirowselection="True" height="100%" skin="Vista" onitemupdated="RadGrid1_ItemUpdated" onupdatecommand="RadGrid1_UpdateCommand"> <ClientSettings AllowDragToGroup="True" AllowColumnsReorder="True" ReorderColumnsOnClient="True" AllowKeyboardNavigation="True"> <Selecting AllowRowSelect="True" /> <ClientEvents OnGridCreated="ResizeEvent" /> <Scrolling AllowScroll="True" UseStaticHeaders="True" FrozenColumnsCount="3" /> <Resizing ResizeGridOnColumnResize="True" AllowColumnResize="True" /> </ClientSettings> <MasterTableView TableLayout="Fixed" Width="99%" GridLines="Both" AllowAutomaticUpdates="True" AutoGenerateColumns="False"> <ExpandCollapseColumn> <HeaderStyle Width="20px" /> </ExpandCollapseColumn> <EditFormSettings ColumnNumber="3"> <EditColumn ButtonType="PushButton" UniqueName="EditCommandColumn1"> </EditColumn> </EditFormSettings> <PagerStyle AlwaysVisible="True" /> <HeaderStyle Wrap="False" /> </MasterTableView> </telerik:radgrid> </div> </form>GridTest = public partial class(TBasePage) private FGridHelper: TGridHelper; method GetDataGrid: RadGrid; protected method Page_Load(sender: Object; e: EventArgs); method RadGrid1_NeedDataSource(source: System.Object; e: Telerik.Web.UI.GridNeedDataSourceEventArgs); method RadGrid1_UpdateCommand(sender: Object; e: Telerik.Web.UI.GridCommandEventArgs); method RadGrid1_ItemUpdated(source: System.Object; e: Telerik.Web.UI.GridUpdatedEventArgs); property grdData: RadGrid read GetDataGrid; end;implementationmethod GridTest.GetDataGrid: RadGrid;begin Result := RadGrid1;end;method GridTest.Page_Load(sender: Object; e: EventArgs);begin FGridHelper := new TGridHelper(EasyIPConnection, grdData, Session);end;method GridTest.RadGrid1_ItemUpdated(source: System.Object; e: Telerik.Web.UI.GridUpdatedEventArgs);begin FGridHelper.UpdateCommand(source, e);end;method GridTest.RadGrid1_UpdateCommand(sender: Object; e: Telerik.Web.UI.GridCommandEventArgs);var editedItem : GridEditableItem; PlantID,PlantName,updateQuery : String; NewValues: Hashtable;begin editedItem := e.Item as GridEditableItem; var editMan : GridEditManager; editMan := editedItem.EditManager; //for each column:GridColumn in e.Item.OwnerTableView.RenderColumns do //begin //if (column is IGridEditableColumn) then //begin //var str : String; //str := "abc"; //end; //end; // //var txt := new TextBox; NewValues := new Hashtable; e.Item.OwnerTableView.ExtractValuesFromItem(NewValues, editedItem);end;method GridTest.RadGrid1_NeedDataSource(source: System.Object; e: Telerik.Web.UI.GridNeedDataSourceEventArgs);var SubnetData : DataTable;begin //if Boolean(Session['LoggedIn']) then //FGridHelper.OpenGrid(FTreeHelper.GetNodeData(tvSubnets.SelectedNode).NodeType, //FTreeHelper.GetNodeData(tvSubnets.SelectedNode).AutonomousNetworkId, //FTreeHelper.GetNodeData(tvSubnets.SelectedNode).SubnetId); // When we require to pass field id than we have to use this method and remove comment. // FGridHelper.OpenGrid(RadTextBox2.Text.Trim,hdnSearchText.Value.ToUpper,getUserTableID(hdnSearchText.Value.ToUpper),GetOption(hdnSearchMethod.Value),GetFieldId(hdnFieldList.Value.ToString())); // Bind grid for right side search //FGridHelper.OpenGrid( ("","SUBNET","SUBNET","",nil); FGridHelper.OpenGrid("","ADDRESSES",2,EasyIPLibrary_Intf.TSearchOption.soContains,nil) end;TGridHelper = public class private FGridView: RadGrid; FEasyIPConnection: TClientConnection; FTableType: TTableType; FDataset: DataSet; FDatatable: DataTable; FSession: HttpSessionState; method FGridView_UpdateCommand(source: Object; e: GridCommandEventArgs); procedure DeleteCommand(source: System.Object; e: GridCommandEventArgs); method FGridView_DeleteCommand(source: Object; e: GridCommandEventArgs); method ItemDataBound(sender: System.Object; e: Telerik.Web.UI.GridItemEventArgs); function AddNewColumn(FieldName, HeaderText: String; IsReadOnly: Boolean): GridBoundColumn; method CreateColumnEditor(sender: System.Object; e: Telerik.Web.UI.GridCreateColumnEditorEventArgs); method ItemCreated(sender: System.Object; e: Telerik.Web.UI.GridItemEventArgs); method ItemCommand(sender: System.Object; e: Telerik.Web.UI.GridCommandEventArgs); method UpdateCommand(sender: System.Object; e: Telerik.Web.UI.GridCommandEventArgs); method ItemUpdated(sender: System.Object; e: Telerik.Web.UI.GridUpdatedEventArgs); property Session: HttpSessionState read FSession; protected public constructor(EasyIPConnection: TClientConnection; Grid: RadGrid; ASession: HttpSessionState); method OpenGrid(NodeType: TNodeType; AutonomousNetworkId, SubnetId: Int64); method OpenGrid(const SearchText: String; const TableName: String; TableId: Int64; SearchOption: TSearchOption; FieldIds: Array of System.Int64); method OpenGrid(const TableName: String); method OpenGrid; method UpdateCommand(source: System.Object; e: Telerik.Web.UI.GridUpdatedEventArgs); method CloseGrid; end;implementationconst ImageInfoField = '_IMAGE_INFO_FIELD_';constructor TGridHelper(EasyIPConnection: TClientConnection; Grid: RadGrid; ASession: HttpSessionState);begin FEasyIPConnection := EasyIPConnection; FSession := ASession; FGridView := Grid; FGridView.ItemDataBound += @ItemDataBound; FGridView.ItemUpdated += @UpdateCommand; FGridView.DeleteCommand += @DeleteCommand; FGridView.CreateColumnEditor += @CreateColumnEditor; FGridView.ItemCommand += @ItemCommand; FGridView.UpdateCommand += @UpdateCommand; end;function TGridHelper.AddNewColumn(FieldName, HeaderText: String; IsReadOnly: Boolean): GridBoundColumn; begin Result := new GridBoundColumn; Result.ReadOnly := IsReadOnly; Result.HeaderText := HeaderText; Result.DataField := FieldName; Result.HeaderStyle.Wrap := FALSE; Result.ItemStyle.Wrap := FALSE; Result.UniqueName := FieldName; if HeaderText = 'Subnet icon' then begin Result.HeaderText := ""; Result.HeaderStyle.Width := 30; Result.ItemStyle.HorizontalAlign := Result.ItemStyle.HorizontalAlign.Center; Result.Resizable := false; Result.Reorderable := false; end else Result.HeaderStyle.Width := 350; FGridView.MasterTableView.Columns.Add(Result);end;method TGridHelper.ItemDataBound(sender: System.Object; e: Telerik.Web.UI.GridItemEventArgs);var AGridItem: GridDataItem; AValue: String; NormalImageURL, SelectedImageURL: String; i: Integer; UserField: TUserField; LookupItem: TUserFieldLookup; Column: GridBoundColumn; ImageInfos: TStringList;begin if e.Item is GridDataItem then begin AGridItem := GridDataItem(e.Item); if FTableType = TTableType.ttSubnets then begin ImageInfos := new TStringList; // CIDR_MASK, ADDRESS_COUNT, CHILD_COUNT, ITEM_TYPE, SECONDARY_ITEM_TYPE for each s:String in AGridItem[ImageInfoField].Text.Split([',']) do ImageInfos.Add(s); if ImageInfos.Count = 5 then begin if ImageInfos[3] = 'G' then GetNodeImages(NormalImageURL, SelectedImageURL, TNodeType.ntGroup) else GetNodeImages(NormalImageURL, SelectedImageURL, TNodeType.ntSubnet, Integer.Parse(ImageInfos[0]), ImageInfos[1] <> '0', ImageInfos[2] <> '0'); AGridItem[ImageInfoField].Text := system.string.format('<img src="{0}" alt="" style="border-width:0px"/>', [NormalImageURL]); end else AGridItem[ImageInfoField].Text := ''; end; for i := 0 to pred(FGridView.Columns.Count) do begin if FGridView.Columns[i] is GridBoundColumn then begin Column := FGridView.Columns[i] as GridBoundColumn; UserField := FEasyIPConnection.FindUserField(TableTypeToTableName(FTableType), Column.DataField); if Assigned(UserField) then begin LookupItem := nil; for LoopLookupItem in UserField.LookupList do if LoopLookupItem.Caption = AValue then begin LookupItem := LoopLookupItem; Break; end; if Assigned(LookupItem) then begin if LookupItem.Description <> '' then AGridItem.Cells[i].Text := LookupItem.Description; if LookupItem.FontColour <> nil then AGridItem.Cells[i].ForeColor := GetWebColor(Integer(LookupItem.FontColour)); if LookupItem.BackgroundColour <> nil then AGridItem.Cells[i].BackColor := GetWebColor(Integer(LookupItem.BackgroundColour)); AGridItem.Cells[i].Font.Bold := LookupItem.FontBold; AGridItem.Cells[i].Font.Underline := LookupItem.FontUnderline; AGridItem.Cells[i].Font.Italic := LookupItem.FontItalic; end else begin if UserField.BackgroundColour <> nil then AGridItem.Cells[i].BackColor := GetWebColor(Integer(UserField.BackgroundColour)); if UserField.FontColour <> nil then AGridItem.Cells[i].ForeColor := GetWebColor(Integer(UserField.FontColour)); AGridItem.Cells[i].Font.Bold := UserField.FontBold; AGridItem.Cells[i].Font.Underline := UserField.FontUnderline; AGridItem.Cells[i].Font.Italic := UserField.FontItalic; end; end; end; end; end;end;method TGridHelper.UpdateCommand(source: System.Object; e: Telerik.Web.UI.GridUpdatedEventArgs);var EditedItem: GridEditableItem; SubnetId, KeyValue: Int64; NewValues: Hashtable; FieldNames: List<String>; FieldValues: List<Object>; TableName: String; i: Integer;begin EditedItem := e.Item as GridEditableItem; KeyValue := Int64(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]['ID']); NewValues := Hashtable.Create; FieldNames := new List<String>; FieldValues := new List<Object>; //The GridTableView will fill the values from all editable columns in the hash e.Item.OwnerTableView.ExtractValuesFromItem(NewValues, EditedItem); for Entry:KeyValuePair<String, Object> in NewValues do begin FieldNames.Add(Entry.Key.ToString); FieldValues.Add(Entry.Value); end; case FTableType of TTableType.ttAddresses: TableName := 'ADDRESSES_USER_DATA'; TTableType.ttSubnets: TableName := 'SUBNETS_USER_DATA'; end; // case FEasyIPConnection.UpdateUserFields(TableName, KeyValue, FieldNames.ToArray, FieldValues.ToArray); (* ChangedRow := ChangedRows[0]; ChangedRow.BeginEdit; ATransaction := nil; try for Entry in newValues do begin FieldPropertiesItem := SessionHelper.FieldPropertiesList.GetFieldPropertiesItem(Session['TableName'].ToString, Entry.Key.ToString); if (Assigned(FieldPropertiesItem)) and (FieldPropertiesItem.Mandatory) and ((not Assigned(Entry.Value)) or (Entry.Value.ToString = '')) then raise EEasyIPError.Create(system.string.Format(GetLocalisationString(105), [Entry.Key.ToString])); if not Assigned(entry.Value) then // Null cannot be assigned to ChangedRow ChangedRow[entry.Key.ToString] := DBNULL.Value else try ChangedRow[entry.Key.ToString] := entry.Value; except raise EEasyIPError.Create(system.string.format(GetLocalisationString(28), [entry.Value, entry.Key.ToString])); end; if SetSQL <> '' then SetSQL := concat(SetSQL, ','); SetSQL := system.string.format('{0}"{1}"=@P{2}', [SetSQL, entry.Key.ToString, ParamCounter.ToString]); SessionHelper.DBConnection.SQLCommand.Parameters.Add(FBParameter.Create(system.string.format('@P{0}', [ParamCounter.ToString]), ChangedRow[entry.Key.ToString])); inc(ParamCounter); end; UpdateText := system.string.format(UpdateText, [SetSQL]); SessionHelper.ExecuteQuery(UpdateText); ChangedRow.EndEdit; SessionHelper.DBConnection.DataSet.AcceptChanges; SessionHelper.CommitTransaction; except on ex:Exception do begin ChangedRow.CancelEdit; e.Canceled := TRUE; SessionHelper.RollbackTransaction; With (e.Item as GridEditFormItem).FindControl('lblUpdateErrorTop') as &Label do begin Text := SessionHelper.DBConnection.TranslateException(ex); Visible := TRUE; end; With (e.Item as GridEditFormItem).FindControl('lblUpdateErrorBottom') as &Label do begin Text := SessionHelper.DBConnection.TranslateException(ex); Visible := TRUE; end; end; end; end;*)end;procedure TGridHelper.DeleteCommand(source: System.Object; e: GridCommandEventArgs);var EditedItem: GridEditableItem; SubnetId, KeyValue: Int64;begin EditedItem := e.Item as GridEditableItem; KeyValue := Int64(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]['ID']); SubnetId := Int64(Session['LastDataGridSubnetId']); FEasyIPConnection.DeleteIPAddressesById(SubnetId, [KeyValue]);end;method TGridHelper.CloseGrid;begin FGridView.DataSource := nil; FGridView.Visible := FALSE;end;method TGridHelper.OpenGrid(NodeType: TNodeType; AutonomousNetworkId, SubnetId: Int64);begin FDataSet := nil; FTableType := TTableType.ttSubnets; case NodeType of TNodeType.ntAutonomousNetwork: begin FDataSet := FEasyIPConnection.GetGridRootNodes(AutonomousNetworkId); end; TNodeType.ntGroupWithChildren, TNodeType.ntRestrictedGroupWithChildren, TNodeType.ntSubnetWithChildren: begin FDataSet := FEasyIPConnection.GetGridChildNodes(AutonomousNetworkId, SubnetId); end; TNodeType.ntSubnetWithIPAddresses: begin FDataSet := FEasyIPConnection.GetGridNodeIPAddresses(SubnetId); FTableType := TTableType.ttAddresses; end; end; // case if Assigned(FDataSet) then begin FGridView.DataSource := FDataSet; FGridView.MasterTableView.DataMember := FDataset.Tables[0].TableName; FGridView.Visible := TRUE; OpenGrid; end else CloseGrid; Session['LastDataGridSubnetId'] := SubnetId;end;method TGridHelper.OpenGrid;const IMAGE_COL_WIDTH = 30;var UserFields: array of TUserField; NewButton: GridEditCommandColumn; NewGridButtonColumn: GridButtonColumn; KeyFieldNames: Array of String; i, FixedColCount: Integer; VisibleColumnCount, VisibleColumnIndex: Integer;begin FGridView.Columns.Clear; FixedColCount := 0; VisibleColumnCount := 0; SetLength(KeyFieldNames, 1); KeyFieldNames[0] := 'ID'; FGridView.MasterTableView.DataKeyNames := KeyFieldNames; case FTableType of TTableType.ttSubnets: begin FGridView.MasterTableView.EditFormSettings.CaptionDataField := 'SHORT_SUBNET'; FGridView.MasterTableView.EditFormSettings.CaptionFormatString := 'Subnet: <B>{0}</B>'; end; TTableType.ttAddresses: begin FGridView.MasterTableView.EditFormSettings.CaptionDataField := 'SHORT_IP_ADDRESS'; FGridView.MasterTableView.EditFormSettings.CaptionFormatString := 'IP Address: <B>{0}</B>'; end; end; FGridView.AutoGenerateEditColumn := true; FGridView.AllowAutomaticUpdates := false; // Create edit button NewButton := GridEditCommandColumn.Create; FGridView.Columns.Add(NewButton); NewButton.ButtonType := Telerik.Web.UI.GridButtonColumnType.ImageButton; NewButton.Groupable := FALSE; NewButton.HeaderStyle.Width := IMAGE_COL_WIDTH; NewButton.Reorderable := FALSE; NewButton.Resizable := FALSE; Inc(FixedColCount); // Create delete button if FTableType = TTableType.ttAddresses then begin NewGridButtonColumn := GridButtonColumn.Create; FGridView.Columns.Add(NewGridButtonColumn); NewGridButtonColumn.CommandName := 'Delete'; NewGridButtonColumn.ConfirmText := 'Are you sure you want to delete the selected IP address?'; NewGridButtonColumn.Text := '<img src="./Images/General/Delete.png" alt="x" style="border-width:0px"/>'; NewGridButtonColumn.HeaderStyle.Width := IMAGE_COL_WIDTH; NewGridButtonColumn.Groupable := FALSE; NewGridButtonColumn.Reorderable := FALSE; NewGridButtonColumn.Resizable := FALSE; Inc(FixedColCount); end; // Find the fields for the selected table UserFields := FEasyIPConnection.GetUserFields(TableTypeToTableName(FTableType)); for UserField in UserFields do begin if ((UserField.Selectable) and (not UserField.HiddenColumn)) or ((FTableType = TTableType.ttSubnets) and (UserField.FieldName = ImageInfoField)) then begin if UserField.FixedColumn then Inc(FixedColCount); if UserField.DisplayName = '' then AddNewColumn(UserField.FieldName, Uncapitalise(UserField.FieldName), UserField.ReadOnly) else AddNewColumn(UserField.FieldName, UserField.DisplayName, UserField.ReadOnly); if not UserField.ReadOnly then Inc(VisibleColumnCount); end; end; FGridView.ClientSettings.Scrolling.FrozenColumnsCount := FixedColCount; VisibleColumnIndex := 0; for i := 0 to pred(FGridView.Columns.Count) do if (FGridView.Columns[i] is GridBoundColumn) and (GridBoundColumn(FGridView.Columns[i]).Visible) and (not GridBoundColumn(FGridView.Columns[i]).ReadOnly) then begin GridBoundColumn(FGridView.Columns[i]).EditFormColumnIndex := Trunc((System.Double(FGridView.MasterTableView.EditFormSettings.ColumnNumber) / System.Double(VisibleColumnCount)) * System.Double(VisibleColumnIndex)); Inc(VisibleColumnIndex); end; end;method TGridHelper.ItemCreated(sender: System.Object; e: Telerik.Web.UI.GridItemEventArgs);//var// lbl: &Label;begin {if (e.Item is GridEditFormItem) and (e.Item.IsInEditMode) then begin lbl := &Label.Create; lbl.ID := 'lblUpdateErrorTop'; lbl.Visible := false; lbl.CssClass := 'label_error'; (e.Item as GridEditFormItem).EditFormCell.Controls.AddAt(0, lbl); lbl := &Label.Create; lbl.ID := 'lblUpdateErrorBottom'; lbl.Visible := false; lbl.CssClass := 'label_error'; (e.Item as GridEditFormItem).EditFormCell.Controls.Add(lbl); end;}end;method TGridHelper.CreateColumnEditor(sender: System.Object; e: Telerik.Web.UI.GridCreateColumnEditorEventArgs);var UserField: TUserField; MaxLength: Integer; FieldName, Skin: String; ARadComboBoxItem: RadComboBoxItem; ARadComboBox: RadComboBox;begin if e.Column is GridBoundColumn then begin MaxLength := 0; UserField := FEasyIPConnection.FindUserField(TableTypeToTableName(FTableType), (e.Column as GridBoundColumn).DataField); if Assigned(UserField) then begin FieldName := (e.Column as GridBoundColumn).DataField.ToString; MaxLength := UserField.FieldSize; if UserField.FieldType in [TEIPDataType.edatString, TEIPDataType.edatWideString] then begin if UserField.LookupType <> TUserFieldLookupType.ltNone then begin e.ColumnEditor := new TCustomColumnEditor(concat('DropDown_', FieldName), TEditorType.etComboBox); ARadComboBox := ((e.ColumnEditor as TCustomColumnEditor).EditControl as RadComboBox); ARadComboBox.AllowCustomText := UserField.LookupType = TUserFieldLookupType.ltEditable; ARadComboBox.Items.Clear; for LookupItem in UserField.LookupList do begin ARadComboBoxItem := new RadComboBoxItem; ARadComboBoxItem.Value := LookupItem.Caption; ARadComboBoxItem.Text := LookupItem.Caption; if LookupItem.FontColour <> nil then ARadComboBoxItem.ForeColor := GetWebColor(Integer(LookupItem.FontColour)); if LookupItem.BackgroundColour <> nil then ARadComboBoxItem.BackColor := GetWebColor(Integer(LookupItem.BackgroundColour)); ARadComboBoxItem.Font.Bold := LookupItem.FontBold; ARadComboBoxItem.Font.Underline := LookupItem.FontUnderline; ARadComboBoxItem.Font.Italic := LookupItem.FontItalic; ARadComboBox.Items.Add(ARadComboBoxItem); end; ARadComboBoxItem := RadComboBoxItem.Create; ARadComboBoxItem.Value := ''; ARadComboBoxItem.Text := '[Blank]'; ARadComboBox.Items.Add(ARadComboBoxItem); ARadComboBox.MaxLength := MaxLength; end else if UserField.EditMask <> '' then begin e.ColumnEditor := new TCustomColumnEditor(concat('MaskEdit_', FieldName), TEditorType.etMaskedText); ((e.ColumnEditor as TCustomColumnEditor).EditControl as RadMaskedTextBox).Mask := UserField.EditMask; ((e.ColumnEditor as TCustomColumnEditor).EditControl as RadMaskedTextBox).MaxLength := MaxLength; end else begin e.ColumnEditor := new TCustomColumnEditor(concat('Edit_', FieldName), TEditorType.etText); ((e.ColumnEditor as TCustomColumnEditor).EditControl as RadTextBox).MaxLength := MaxLength; end; end else begin if UserField.FieldType in [TEIPDataType.edatWideMemo, TEIPDataType.edatMemo] then e.ColumnEditor := new TCustomColumnEditor(concat('TextBox_', FieldName), TEditorType.etMemo, Skin); end; end; end;end;method TGridHelper.FGridView_DeleteCommand(source: Object; e: GridCommandEventArgs);beginend;method TGridHelper.OpenGrid(const SearchText: String; const TableName: String; TableId: Int64; SearchOption: TSearchOption; FieldIds: Array of System.Int64);begin if TableName = 'SUBNETS' then begin FTableType := TTableType.ttSubnets; FDatatable := FEasyIPConnection.SearchTableBasic(TableId,SearchText,SearchOption,FieldIds); end else if TableName = 'ADDRESSES' then begin FTableType := TTableType.ttAddresses; FDatatable := FEasyIPConnection.SearchTableBasic(TableId,SearchText,SearchOption,FieldIds); end else if TableName = 'GLOBAL ARP TABLE' then begin FDatatable := FEasyIPConnection.SearchARPEntries(SearchText); end else begin // raise error end; // Load FDataset here (FDataset := FEasyIPConnection.SearchTableBasic(.... if FDatatable <> nil then begin FGridView.DataSource := FDatatable; FGridView.MasterTableView.DataMember := FDatatable.TableName; FGridView.Visible := TRUE; OpenGrid; end; end;method TGridHelper.OpenGrid(const TableName: String);begin FGridView.DataSource := FEasyIPConnection.GetUserFields(TableName.ToUpper());;; FGridView.MasterTableView.DataMember := FDatatable.TableName; FGridView.Visible := TRUE; OpenGrid; end;method TGridHelper.ItemCommand(sender: System.Object; e: Telerik.Web.UI.GridCommandEventArgs);begin if e.CommandName = RadGrid.EditCommandName then begin //OpenGrid; end; if e.CommandName = RadGrid.InitInsertCommandName then FGridView.MasterTableView.ClearEditItems(); if e.CommandName = RadGrid.UpdateCommandName then begin //UpdateCommand(sender,e); //var str : String; //str := "Update" end end;method TGridHelper.ItemUpdated(sender: System.Object; e: Telerik.Web.UI.GridUpdatedEventArgs); var EditedItem: GridEditableItem;begin EditedItem := e.Item as GridEditableItem;end;method TGridHelper.UpdateCommand(sender: System.Object; e: Telerik.Web.UI.GridCommandEventArgs);var EditedItem: GridEditableItem; Item : GridEditFormItem; SubnetId, KeyValue: Int64; NewValues: Hashtable; FieldNames: List<String>; FieldValues: List<Object>; TableName,PlantName: String; i: Integer;begin EditedItem := e.Item as GridEditableItem; FGridView.MasterTableView.ClearEditItems(); KeyValue := Int64(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]['ID']); NewValues := new Hashtable; FieldNames := new List<String>; FieldValues := new List<Object>; if e.Item.IsInEditMode = true then begin var str : String; str := "Edit"; end; //The GridTableView will fill the values from all editable columns in the hash e.Item.OwnerTableView.ExtractValuesFromItem(NewValues, EditedItem); var IPAddress : String; IPAddress := (editedItem["Location"].Controls[1] as TextBox).Text; for Entry:DictionaryEntry in NewValues do begin FieldNames.Add(Entry.Key.ToString); FieldValues.Add(Entry.Value); end; case FTableType of TTableType.ttAddresses: TableName := 'ADDRESSES_USER_DATA'; TTableType.ttSubnets: TableName := 'SUBNETS_USER_DATA'; end; // case FEasyIPConnection.UpdateUserFields(TableName, KeyValue, FieldNames.ToArray, FieldValues.ToArray); (* ChangedRow := ChangedRows[0]; ChangedRow.BeginEdit; ATransaction := nil; try for Entry in newValues do begin FieldPropertiesItem := SessionHelper.FieldPropertiesList.GetFieldPropertiesItem(Session['TableName'].ToString, Entry.Key.ToString); if (Assigned(FieldPropertiesItem)) and (FieldPropertiesItem.Mandatory) and ((not Assigned(Entry.Value)) or (Entry.Value.ToString = '')) then raise EEasyIPError.Create(system.string.Format(GetLocalisationString(105), [Entry.Key.ToString])); if not Assigned(entry.Value) then // Null cannot be assigned to ChangedRow ChangedRow[entry.Key.ToString] := DBNULL.Value else try ChangedRow[entry.Key.ToString] := entry.Value; except raise EEasyIPError.Create(system.string.format(GetLocalisationString(28), [entry.Value, entry.Key.ToString])); end; if SetSQL <> '' then SetSQL := concat(SetSQL, ','); SetSQL := system.string.format('{0}"{1}"=@P{2}', [SetSQL, entry.Key.ToString, ParamCounter.ToString]); SessionHelper.DBConnection.SQLCommand.Parameters.Add(FBParameter.Create(system.string.format('@P{0}', [ParamCounter.ToString]), ChangedRow[entry.Key.ToString])); inc(ParamCounter); end; UpdateText := system.string.format(UpdateText, [SetSQL]); SessionHelper.ExecuteQuery(UpdateText); ChangedRow.EndEdit; SessionHelper.DBConnection.DataSet.AcceptChanges; SessionHelper.CommitTransaction; except on ex:Exception do begin ChangedRow.CancelEdit; e.Canceled := TRUE; SessionHelper.RollbackTransaction; With (e.Item as GridEditFormItem).FindControl('lblUpdateErrorTop') as &Label do begin Text := SessionHelper.DBConnection.TranslateException(ex); Visible := TRUE; end; With (e.Item as GridEditFormItem).FindControl('lblUpdateErrorBottom') as &Label do begin Text := SessionHelper.DBConnection.TranslateException(ex); Visible := TRUE; end; end; end; end;*)end;method TGridHelper.FGridView_UpdateCommand(source: Object; e: GridCommandEventArgs);beginend;protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e){ DataClassesDataContext db = new DataClassesDataContext(); var query = from episodes in db.Episode_Dims orderby episodes.ep_skey descending select new { episodes.season_skey, episodes.ep_skey, date_skey = Convert.ToDateTime(episodes.date_skey.ToString()) }; if (maxSeason > 0) query = query.Where(p => p.season_skey == maxSeason); RadGrid1.DataSource = query;}