or
<asp:LinkButton ID="btnAddInvoice" runat="server" CssClass="button small radius" Text="Add Checked to New Invoice" OnClick="btnAddInvoice_Click"></asp:LinkButton> <asp:Literal runat="server" ID="litAddInvoice"></asp:Literal> <div class="reset"> <telerik:RadGrid ID="rgTracker" runat="server" AllowSorting="true" AllowPaging="true" PageSize="100" OnItemCreated="rgTracker_ItemCreated" OnNeedDataSource="rgTracker_NeedDataSource" AllowFilteringByColumn="True" OnItemCommand="rgTracker_ItemCommand" OnItemDataBound="rgTracker_ItemDataBound" Skin="Windows7" OnPreRender="rgTracker_PreRender"> <ExportSettings HideStructureColumns="true"> </ExportSettings> <GroupingSettings CaseSensitive="false" /> <MasterTableView AutoGenerateColumns="false" EnableHierarchyExpandAll="true" DataKeyNames="rdID, jobID" > <PagerStyle PageSizes="10,50,100,200,500" Mode="NextPrevAndNumeric" PageSizeLabelText="Show results: " Position="TopAndBottom" AlwaysVisible="true" /> <Columns> <telerik:GridBoundColumn DataField="rdID" Visible="false" ReadOnly="true" UniqueName="rdID" ForceExtractValue="Always" ConvertEmptyStringToNull="true"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="jobID" Visible="false" ReadOnly="true" UniqueName="jobID" ForceExtractValue="Always" ConvertEmptyStringToNull="true"></telerik:GridBoundColumn> <telerik:GridHyperLinkColumn HeaderText="Customer Name" DataTextField="customerName" UniqueName="customerName" DataNavigateUrlFields="jobID" DataNavigateUrlFormatString="/pensionlitedetail/{0}" > <HeaderStyle Width="150px" /> </telerik:GridHyperLinkColumn> <telerik:GridBoundColumn HeaderText="Postcode" DataField="customerPostcode" UniqueName="customerPostcode" FilterControlWidth="30px" ReadOnly="true"> <HeaderStyle Width="50px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Phone" DataField="customerPhone" UniqueName="customerPhone" FilterControlWidth="70px" ReadOnly="true"> <HeaderStyle Width="90px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Pension Value" DataField="customerPensionValue" UniqueName="customerPensionValue" DataFormatString="{0:C}" FilterControlWidth="40px" ReadOnly="true"> <HeaderStyle Width="75px" /> </telerik:GridBoundColumn> <telerik:GridDateTimeColumn HeaderText="Sale Date" DataField="saleDate" UniqueName="saleDate" DataFormatString="{0:g}" PickerType="DatePicker" EnableRangeFiltering="true" FilterControlWidth="100px" EnableTimeIndependentFiltering="true" ReadOnly="true"> <HeaderStyle Width="120px" /> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn HeaderText="Appt Date" DataField="apptDate" UniqueName="apptDate" DataFormatString="{0:g}" PickerType="DatePicker" EnableRangeFiltering="true" FilterControlWidth="100px" EnableTimeIndependentFiltering="true" ReadOnly="true"> <HeaderStyle Width="120px" /></telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn HeaderText="Updated" DataField="updatedDate" UniqueName="updatedDate" DataFormatString="{0:g}" PickerType="DatePicker" EnableRangeFiltering="true" FilterControlWidth="100px" EnableTimeIndependentFiltering="true" ReadOnly="true"> <HeaderStyle Width="120px" /></telerik:GridDateTimeColumn> <telerik:GridBoundColumn HeaderText="Current Status" DataField="currentStatus" UniqueName="currentStatus" ReadOnly="true"> <HeaderStyle Width="100px" /> <FilterTemplate> <telerik:RadComboBox ID="RadComboBoxStatus" AppendDataBoundItems="true" SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("currentStatus").CurrentFilterValue %>' runat="server" OnClientSelectedIndexChanged="StatusIndexChanged" Skin="Windows7" Width="200px"> <Items> <telerik:RadComboBoxItem Text="All" /> <telerik:RadComboBoxItem Text="Lead Pending" Value="Lead Pending" /> <telerik:RadComboBoxItem Text="Lead Accepted" Value="Lead Accepted" /> <telerik:RadComboBoxItem Text="Lead Rejected" Value="Lead Rejected" /> </Items> </telerik:RadComboBox> <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"> <script type="text/javascript"> function StatusIndexChanged(sender, args) { var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>"); tableView.filter("currentStatus", args.get_item().get_value(), "EqualTo"); } </script> </telerik:RadScriptBlock> </FilterTemplate> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Invoiced" DataField="invoiced" UniqueName="invoiced" Display="false" ForceExtractValue="Always" ReadOnly="true"> <HeaderStyle Width="50px" /> </telerik:GridBoundColumn> <telerik:GridTemplateColumn UniqueName="InvoicedCheckboxColumn" AllowFiltering="false"> <HeaderStyle Width="20px" /> <ItemTemplate> <asp:CheckBox ID="chkInvoiced" runat="server" /> </ItemTemplate> <HeaderTemplate> Invoiced<br /><asp:CheckBox ID="chkInoicedHeader" runat="server" OnCheckedChanged="chkInoicedHeader_CheckedChanged" AutoPostBack="true" /> </HeaderTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn HeaderText="Credit" DataField="credited" UniqueName="credited" Display="false" ForceExtractValue="Always" ReadOnly="true"> <HeaderStyle Width="50px" /> </telerik:GridBoundColumn> <telerik:GridTemplateColumn UniqueName="CreditedCheckboxColumn" AllowFiltering="false"> <HeaderStyle Width="20px" /> <ItemTemplate> <asp:CheckBox ID="chkCredited" runat="server" /> </ItemTemplate> <HeaderTemplate> Credited<br /><asp:CheckBox ID="chkCreditedHeader" runat="server" OnCheckedChanged="chkCreditedHeader_CheckedChanged" AutoPostBack="true" /> </HeaderTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid> </div>protected void rgTracker_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { rgTracker.DataSource = GetData(); } protected void rgTracker_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e) { } protected void rgTracker_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) { if (e.Item is GridDataItem) { GridDataItem dataItem = (GridDataItem)e.Item; string cStatus = dataItem["currentStatus"].Text; if (cStatus == "Lead Rejected") { dataItem.BackColor = Color.LightCoral; } if (cStatus == "Lead Accepted") { dataItem.BackColor = Color.LightGreen; } CheckBox chkInvoiced = (CheckBox)e.Item.FindControl("chkInvoiced"); string sInv = dataItem["invoiced"].Text; bool bInv = false; Boolean.TryParse(sInv, out bInv); if (bInv) { chkInvoiced.Checked = true; chkInvoiced.Enabled = false; } CheckBox chkCredited = (CheckBox)e.Item.FindControl("chkCredited"); string sCred = dataItem["credited"].Text; bool bCred = false; Boolean.TryParse(sCred, out bCred); if (bCred) { chkCredited.Checked = true; chkCredited.Enabled = false; } } } protected void rgTracker_PreRender(object sender, EventArgs e) { } protected void rgTracker_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e) { GridFilteringItem filteringItem = e.Item as GridFilteringItem; if (filteringItem != null) { LiteralControl literalTo1 = filteringItem["saleDate"].Controls[3] as LiteralControl; literalTo1.Text = "<br />To:"; LiteralControl literalTo2 = filteringItem["apptDate"].Controls[3] as LiteralControl; literalTo2.Text = "<br />To:"; LiteralControl literalTo3 = filteringItem["updatedDate"].Controls[3] as LiteralControl; literalTo3.Text = "<br />To:"; } } protected void chkInoicedHeader_CheckedChanged(object sender, EventArgs e) { CheckBox headerCheckBox = (sender as CheckBox); foreach (GridDataItem dataItem in rgTracker.MasterTableView.Items) { if ((dataItem.FindControl("chkInvoiced") as CheckBox).Enabled) { (dataItem.FindControl("chkInvoiced") as CheckBox).Checked = headerCheckBox.Checked; dataItem.Selected = headerCheckBox.Checked; } } } protected void chkCreditedHeader_CheckedChanged(object sender, EventArgs e) { CheckBox headerCheckBox = (sender as CheckBox); foreach (GridDataItem dataItem in rgTracker.MasterTableView.Items) { if ((dataItem.FindControl("chkCredited") as CheckBox).Enabled) { (dataItem.FindControl("chkCredited") as CheckBox).Checked = headerCheckBox.Checked; dataItem.Selected = headerCheckBox.Checked; } } } protected void btnAddInvoice_Click(object sender, EventArgs e) { //TODO: Wire in credits and check for duplicate sales Invoice inv = new Invoice(); inv.ClientID = 11; inv.InvoiceDate = DateTime.Now; dbContext.Invoices.Add(inv); dbContext.SaveChanges(); foreach (GridDataItem item in rgTracker.MasterTableView.Items) { CheckBox chkInvoiced = (CheckBox)item.FindControl("chkInvoiced"); if (chkInvoiced.Checked && chkInvoiced.Enabled) { //ReportDetails rd = (ReportDetails)item.DataItem; //litAddInvoice.Text += string.Format("<div data-alert class='alert-box info radius'>{0} {1} - {2}</div>", rd.customerName, rd.customerPhone, rd.jobId); string strJID = item.GetDataKeyValue("jobID").ToString(); litAddInvoice.Text += string.Format("<div data-alert class='alert-box info radius'>Job ID: {0}</div>", strJID); int intJID = 0; Int32.TryParse(strJID, out intJID); Job j = new Job(); j = dbContext.Jobs.Where(x => x.ID == intJID).FirstOrDefault(); if (j.ID > 0) { InvoiceDetail id = new InvoiceDetail(); id.JobID = j.ID; id.Credit = false; id.JobSchemaID = j.JobSchemata.OrderByDescending(x => x.ID).Select(x => x.ID).FirstOrDefault(); id.StatusWhenInvoiced = j.JobSchemata.OrderByDescending(x => x.ID).Select(x => x.JobStage1.JobStage1).FirstOrDefault(); id.InvoiceID = inv.ID; dbContext.InvoiceDetails.Add(id); dbContext.SaveChanges(); } } CheckBox chkCredited = (CheckBox)item.FindControl("chkCredited"); if (chkCredited.Checked && chkCredited.Enabled) { //ReportDetails rd = (ReportDetails)item.DataItem; //litAddInvoice.Text += string.Format("<div data-alert class='alert-box info radius'>{0} {1} - {2}</div>", rd.customerName, rd.customerPhone, rd.jobId); string strJID = item.GetDataKeyValue("jobID").ToString(); litAddInvoice.Text += string.Format("<div data-alert class='alert-box warning radius'>Job ID: {0}</div>", strJID); int intJID = 0; Int32.TryParse(strJID, out intJID); Job j = new Job(); j = dbContext.Jobs.Where(x => x.ID == intJID).FirstOrDefault(); if (j.ID > 0) { InvoiceDetail id = new InvoiceDetail(); id.JobID = j.ID; id.Credit = true; id.JobSchemaID = j.JobSchemata.OrderByDescending(x => x.ID).Select(x => x.ID).FirstOrDefault(); id.StatusWhenInvoiced = j.JobSchemata.OrderByDescending(x => x.ID).Select(x => x.JobStage1.JobStage1).FirstOrDefault(); id.InvoiceID = inv.ID; dbContext.InvoiceDetails.Add(id); dbContext.SaveChanges(); } } rgTracker.Rebind(); } litAddInvoice.Text += "<div data-alert class='alert-box success radius'>Invoice Generated</div>"; }GridColumnCollection cols = grid.MasterTableView.Columns;GridColumn c = cols.FindByUniqueName(columnName);if (c != null){ int start = c.OrderIndex; for (int i= start; i < cols.Count; i++) { c = cols[i]; if (i < cols.Count - 1) c.OrderIndex = i+1; else c.OrderIndex = start; }}var newDataSource=new kendo.data.DataSource({ transport : { read : { url : context+"/master/common/listLocationByCountry/"+data.country.id+"?marketDifferentialId="+data.id+"&locationId="+data.location.id } } }); newDataSource.read(); var locationName = data.location.name; var locationValue=data.location.id; var locationDropDown = $("#locationId").data("kendoDropDownList"); locationDropDown.setOptions({ dataTextField: "name", dataValueField: "id" }); locationDropDown.setDataSource(newDataSource); $("#locationId").val(locationValue).data("kendoDropDownList").text(locationName);function loadTreeView(sender, args) {var dropdowntree1 = $find("<%=ddtList.ClientID%>");var tree = dropdowntree1.get_embeddedTree();$(".rddtFilterInput").keyup(function () {if ($(".rddtFilterInput").val() == '')treeCollapseAllNodes(tree);}