


<telerik:RadGrid ID="gvDash" runat="server" GridLines="None" AutoGenerateColumns="false" DataSourceID="dsDashboard" PageSize="15" Width="100%" ShowStatusBar="true" AllowPaging="true" AllowSorting="true"> <MasterTableView DataKeyNames="FileID" CommandItemDisplay="Top" AllowMultiColumnSorting="true" EnableHeaderContextMenu="true" EditMode="PopUp"> <CommandItemSettings ShowAddNewRecordButton="false" ShowExportToWordButton="true" ShowExportToExcelButton="true" /> <NoRecordsTemplate> <em>No Records</em> </NoRecordsTemplate> <AlternatingItemStyle CssClass="alt-row" /> <Columns> <telerik:GridTemplateColumn UniqueName="Options" Groupable="false" AllowFiltering="false" HeaderText="Options"> <ItemTemplate> <asp:HyperLink ID="EditLink" runat="server" Text="Edit"></asp:HyperLink> <asp:LinkButton ID="btnView" runat="server" Text="View" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn UniqueName="FileNo" DataField="FileNo" HeaderText="File Number" SortExpression="FileNo" Groupable="false" /> <telerik:GridBoundColumn UniqueName="DisplayName" DataField="DisplayName" HeaderText="Vessel" SortExpression="DisplayName" /> <telerik:GridBoundColumn UniqueName="VesselStatusName" DataField="VesselStatusName" HeaderText="Status" SortExpression="VesselStatusName" /> <telerik:GridBoundColumn UniqueName="OfficeName" DataField="OfficeName" HeaderText="Office Location" SortExpression="OfficeName" /> <telerik:GridCheckBoxColumn UniqueName="AddedToQB" DataField="AddedToQB" HeaderText="Vsl Added QB" SortExpression="AddedToQB" /> <telerik:GridBoundColumn UniqueName="VesselSailed" DataField="VesselSailed" HeaderText="Sail Date" SortExpression="VesselSailed" DataFormatString="{0:M/d/yyyy HH:mm}" /> <telerik:GridCheckBoxColumn UniqueName="SailDateQB" DataField="SailDateQB" HeaderText="Sail Date Added QB" SortExpression="SailDateQB" /> <telerik:GridBoundColumn UniqueName="CargoName" DataField="CargoName" HeaderText="Cargo" SortExpression="CargoName" /> <telerik:GridTemplateColumn UniqueName="PayingPrinci" HeaderText="Paying Principal" GroupByExpression="PayingPrinciName Group By PayingPrinciName" SortExpression="PayingPrinciName"> <ItemTemplate> <asp:Label ID="lblPayingPrinci" runat="server" Text='<%# Bind("PayingPrinciName") %>'></asp:Label> <br /><asp:Label ID="lblPayingPrinciAddress" CssClass="label-note" runat="server" Text='<%# Bind("PayingPrinciAddress") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn UniqueName="PDAAmnt" DataField="PDAAmnt" HeaderText="PDA AMT" SortExpression="PDAAmnt" DataFormatString="{0:c}" /> <telerik:GridBoundColumn UniqueName="RECVDAmnt" DataField="RECVDAmnt" HeaderText="PDA AMT Rcvd" SortExpression="RECVDAmnt" DataFormatString="{0:c}" /> <telerik:GridBoundColumn UniqueName="PerformaDateRcvd" DataField="PerformaDateRcvd" HeaderText="PDA Date Rcvd" SortExpression="PerformaDateRcvd" DataFormatString="{0:M/d/yyyy}" /> <telerik:GridBoundColumn UniqueName="CTMAmnt" Display="false" DataField="CTMAmnt" HeaderText="CTM AMT" SortExpression="CTMAmnt" DataFormatString="{0:c}" /> <telerik:GridBoundColumn UniqueName="CTMAmntRcvd" Display="false" DataField="CTMAmntRcvd" HeaderText="CTM AMT Rcvd" SortExpression="RECVDAmnt" DataFormatString="{0:c}" /> <telerik:GridBoundColumn UniqueName="CTMAmntDate" Display="false" DataField="CTMAmntDate" HeaderText="CTM Date Rcvd" SortExpression="PerformaDateRcvd" DataFormatString="{0:M/d/yyyy}" /> <telerik:GridBoundColumn UniqueName="PortName" DataField="PortName" HeaderText="Port" SortExpression="PortName" /> <telerik:GridBoundColumn UniqueName="AccountingNotes" Display="false" DataField="AccountingNotes" HeaderText="Comments" /> </Columns> </MasterTableView> <ClientSettings AllowColumnsReorder="true" AllowColumnHide="true"> <Resizing AllowColumnResize="true" AllowResizeToFit="true" /> </ClientSettings> </telerik:RadGrid>Private Sub LoadSettings() If Not IsNothing(Session("Acc.Funds.GridSettings")) Then Dim LoadPersister As New GridSettingsPersister(gvDash) Dim settings As String = DirectCast(Session("Acc.Funds.GridSettings"), String) LoadPersister.LoadSettings(settings) End IfEnd Sub Private Sub SaveSettings() Dim SavePersister As New GridSettingsPersister(gvDash) Session("Acc.Funds.GridSettings") = SavePersister.SaveSettings() End SubI have a hierarchy radgrid that contains "Case Number" parent objects and "Offense" child objects and supports Insert/Update/Delete functionality.
I am getting the following error:
DataBinding: 'Telerik.Web.UI.GridInsertionObject' does not contain a property with the name 'AgencyID'.
To get this error I am performing the following actions:
The error occurs at this point!
My question is how do I go about fixing this problem?
My grid definition is as follows:
<telerik:RadGrid ID="radGridCaseNumbers" AutoGenerateColumns="false" AllowMultiRowEdit="false" Visible="false" runat="server" OnInsertCommand="radGridCaseNumbers_InsertCommand" OnUpdateCommand="radGridCaseNumbers_UpdateCommand" OnDeleteCommand="radGridCaseNumbers_DeleteCommand" OnNeedDataSource="radGridCaseNumbers_NeedDataSource" OnDetailTableDataBind="radGridCaseNumbers_DetailTableDataBind" OnItemCommand="radGridCaseNumbers_ItemCommand"> <MasterTableView CommandItemDisplay="Top" DataKeyNames="CaseNumberID" TableLayout="Auto" Name="CaseNumbers" HierarchyDefaultExpanded="true" NoMasterRecordsText="No Case Number records to display"> <DetailTables> <telerik:GridTableView DataKeyNames="OffenseID" runat="server" CommandItemDisplay="Top" TableLayout="Auto" Name="Offenses" NoDetailRecordsText="No Offense records to display"> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="CaseNumberID" MasterKeyField="CaseNumberID" /> </ParentTableRelation> <CommandItemTemplate> <div> <telerik:RadButton ID="radButtonAddOffense" runat="server" Text="Add New Offense" CommandName="InitInsert" Visible='<%# !radGridCaseNumbers.MasterTableView.IsItemInserted %>' ButtonType="StandardButton"> </telerik:RadButton> </div> </CommandItemTemplate> <Columns> <telerik:GridDropDownColumn HeaderText="Arresting PD" EnableEmptyListItem="true" DataField="AgencyID" ListTextField="Name" ListValueField="ID" DataSourceID="objectDataSourceAgencies"> </telerik:GridDropDownColumn> <telerik:GridEditCommandColumn ButtonType="PushButton" UniqueName="EditOffenseCommandColumn" /> <telerik:GridButtonColumn UniqueName="DeleteOffenseColumn" ButtonType="PushButton" Text="Delete" CommandName="Delete" /> </Columns> <EditFormSettings EditFormType="Template"> <FormTemplate> <div> <table cellpadding="0" cellspacing="0" class="tableContentControls"> <tr> <td class="tableCellRequiredField"><asp:Label Text="*" runat="server" CssClass="labelRequiredField" /></td> <td class="tableCellLabel"><asp:Label Text="Arresting PD:" runat="server" CssClass="labelDescription" /></td> <td class="tableCellControl"> <telerik:RadComboBox ID="radComboBoxAgency" AutoPostBack="true" EmptyMessage="(Select an Arresting PD)" EnableLoadOnDemand="true" DataSourceID="objectDataSourceAgencies" DataTextField="Name" DataValueField="ID" SelectedValue='<%# Bind("AgencyID") %>' Filter="StartsWith" runat="server" OnSelectedIndexChanged="radComboBoxAgency_SelectedIndexChanged"> </telerik:RadComboBox> </td> <td class="tableCellValidation"> <asp:RequiredFieldValidator ID="requiredFieldValidatorAgency" ControlToValidate="radComboBoxAgency" runat="server" ValidationGroup="validationGroup_Details_OffensesGrid"> <table> <tr> <td><asp:Image runat="server" ImageUrl="~/Images/ValidationError.png" /></td> <td><asp:Label runat="server" Text="Arresting PD is required" CssClass="labelValidationError" /></td> </tr> </table> </asp:RequiredFieldValidator> </td> </tr> <tr> <td colspan="4"> <telerik:RadButton ID="radButtonInsertUpdateOffense" CausesValidation="true" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>' Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' ValidationGroup="validationGroup_Details_OffensesGrid" runat="server" OnClientClicking="performInsertOrUpdateOffense"> </telerik:RadButton> <telerik:RadButton ID="radButtonCancelInsertUpdateOffense" CausesValidation="false" CommandName="Cancel" Text="Cancel" runat="server" /> </td> </tr> </table> </div> </FormTemplate> </EditFormSettings> </telerik:GridTableView> </DetailTables> <CommandItemTemplate> <div> <telerik:RadButton ID="radButtonAddCaseNumber" runat="server" Text="Add New Case Number" CommandName="InitInsert" Visible='<%# !radGridCaseNumbers.MasterTableView.IsItemInserted %>' ButtonType="StandardButton"> </telerik:RadButton> </div> </CommandItemTemplate> <Columns> <telerik:GridBoundColumn HeaderText="Number" DataField="Number" HeaderStyle-Width="20" /> <telerik:GridDropDownColumn HeaderText="Type" EnableEmptyListItem="true" DataField="TypeID" ListTextField="Description" ListValueField="ID" DataSourceID="objectDataSourceCaseNumberTypes" HeaderStyle-Width="20" /> <telerik:GridEditCommandColumn ButtonType="PushButton" UniqueName="EditCaseNumberCommandColumn" HeaderStyle-Width="10" /> <telerik:GridButtonColumn UniqueName="DeleteCaseNumberColumn" ButtonType="PushButton" Text="Delete" CommandName="Delete" HeaderStyle-Width="200" /> </Columns> <EditFormSettings EditFormType="Template"> <FormTemplate> <div> <table> <tr> <td class="tableCellRequiredField"><asp:Label Text="*" runat="server" CssClass="labelRequiredField" /></td> <td class="tableCellLabel"><asp:Label Text="Number:" runat="server" CssClass="labelDescription" /></td> <td class="tableCellControl"><telerik:RadTextBox ID="radTextBoxNumber" Text='<%# Bind("Number") %>' runat="server" /></td> <td class="tableCellValidation"> <asp:RequiredFieldValidator ID="requiredFieldValidatorNumber" ControlToValidate="radTextBoxNumber" runat="server" ValidationGroup="validationGroup_Details_CaseNumbersGrid"> <table> <tr> <td><asp:Image runat="server" ImageUrl="~/Images/ValidationError.png" /></td> <td><asp:Label runat="server" Text="Number is required" CssClass="labelValidationError" /></td> </tr> </table> </asp:RequiredFieldValidator> </td> </tr> <tr> <td class="tableCellRequiredField"><asp:Label Text="*" runat="server" CssClass="labelRequiredField" /></td> <td class="tableCellLabel"><asp:Label Text="Type:" runat="server" CssClass="labelDescription" /></td> <td class="tableCellControl"> <telerik:RadComboBox ID="radComboBoxType" DataSourceID="objectDataSourceCaseNumberTypes" DataTextField="Description" DataValueField="ID" EmptyMessage="(Select a Type)" EnableLoadOnDemand="true" Filter="StartsWith" SelectedValue='<%# Bind("TypeID") %>' runat="server"> </telerik:RadComboBox> </td> <td class="tableCellValidation"> <asp:RequiredFieldValidator ID="requiredFieldValidatorType" ControlToValidate="radComboboxType" runat="server" ValidationGroup="validationGroup_Details_CaseNumbersGrid"> <table> <tr> <td><asp:Image runat="server" ImageUrl="~/Images/ValidationError.png" /></td> <td><asp:Label runat="server" Text="Type is required" CssClass="labelValidationError" /></td> </tr> </table> </asp:RequiredFieldValidator> </td> </tr> <tr> <td colspan="4"> <telerik:RadButton ID="radButtonInsertUpdateCaseNumber" CausesValidation="true" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>' Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' ValidationGroup="validationGroup_Details_CaseNumbersGrid" runat="server" OnClientClicking="performInsertOrUpdateCaseNumber"> </telerik:RadButton> <telerik:RadButton ID="radButtonCancelInsertUpdateCaseNumber" CausesValidation="false" CommandName="Cancel" Text="Cancel" runat="server" /> </td> </tr> </table> </div> </FormTemplate> </EditFormSettings> </MasterTableView> <ValidationSettings CommandsToValidate="PerformInsert,Update" /></telerik:RadGrid>The code-behind for the grid is as follows:
public DataSet CaseNumbers { get { object obj = ViewState["CaseNumbers"]; if (obj != null) return (DataSet)obj; DataSet caseNumbers = new DataSet(); ReferralDb referralDb = new ReferralDb(); caseNumbers = referralDb.GetReferralCaseNumbers(Convert.ToInt32(hiddenFieldReferralID.Value)); ViewState["CaseNumbers"] = caseNumbers; return caseNumbers; } } public DataSet Offenses { get { object obj = ViewState["Offenses"]; if (obj != null) return (DataSet)obj; DataSet offenses = new DataSet(); ReferralDb referralDb = new ReferralDb(); offenses = referralDb.GetReferralOffenses(Convert.ToInt32(hiddenFieldReferralID.Value)); ViewState["Offenses"] = offenses; return offenses; } }protected void radGridCaseNumbers_DeleteCommand(object sender, GridCommandEventArgs e) { string id = null; DataTable dataTableOffenses = null; DataTable dataTableCaseNumbers = null; if ("Offenses".Equals(e.Item.OwnerTableView.Name)) { id = ((GridDataItem)e.Item).OwnerTableView.DataKeyValues[e.Item.ItemIndex]["OffenseID"].ToString(); dataTableOffenses = Offenses.Tables["Offense"]; if (dataTableOffenses.Rows.Find(id) != null) dataTableOffenses.Rows.Find(id).Delete(); } else if ("CaseNumbers".Equals(e.Item.OwnerTableView.Name)) { id = ((GridDataItem)e.Item).OwnerTableView.DataKeyValues[e.Item.ItemIndex]["CaseNumberID"].ToString(); dataTableCaseNumbers = CaseNumbers.Tables["CaseNumber"]; if (dataTableCaseNumbers.Rows.Find(id) != null) dataTableCaseNumbers.Rows.Find(id).Delete(); dataTableOffenses = Offenses.Tables["Offense"]; DataRow[] offenses = Offenses.Tables["Offense"].Select("CaseNumberID = " + id); foreach (DataRow dataRow in offenses) { id = dataRow["OffenseID"].ToString(); dataTableOffenses.Rows.Find(id).Delete(); } } } protected void radGridCaseNumbers_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e) { GridDataItem gridDataItem = (GridDataItem)e.DetailTableView.ParentItem; int caseNumberID = (int)gridDataItem.GetDataKeyValue("CaseNumberID"); e.DetailTableView.DataSource = Offenses.Tables["Offense"].Select("CaseNumberID = " + caseNumberID.ToString()); Offenses.Tables["Offense"].PrimaryKey = new DataColumn[] { Offenses.Tables["Offense"].Columns["OffenseID"] }; } protected void radGridCaseNumbers_InsertCommand(object sender, GridCommandEventArgs e) { GridEditableItem gridEditableItem = null; DataTable dataTable = null; DataRow dataRowNew = null; DataRow[] allValues = null; Hashtable newValues = null; if ("Offenses".Equals(e.Item.OwnerTableView.Name)) { gridEditableItem = (GridEditableItem)e.Item; dataTable = Offenses.Tables["Offense"]; dataRowNew = dataTable.NewRow(); allValues = dataTable.Select("", "OffenseID", DataViewRowState.CurrentRows); if (allValues.Length > 0) dataRowNew["OffenseID"] = (int)allValues[allValues.Length - 1]["OffenseID"] + 1; else dataRowNew["OffenseID"] = 1; //table empty newValues = new Hashtable(); e.Item.OwnerTableView.ExtractValuesFromItem(newValues, gridEditableItem); try { foreach (DictionaryEntry entry in newValues) dataRowNew[(string)entry.Key] = entry.Value; GridDataItem parentItem = (GridDataItem)e.Item.OwnerTableView.ParentItem; dataRowNew["CaseNumberID"] = parentItem.OwnerTableView.DataKeyValues[parentItem.ItemIndex]["CaseNumberID"].ToString(); } catch { e.Canceled = true; } dataTable.Rows.Add(dataRowNew); } else if ("CaseNumbers".Equals(e.Item.OwnerTableView.Name)) { gridEditableItem = (GridEditableItem)e.Item; dataTable = CaseNumbers.Tables["CaseNumber"]; dataRowNew = dataTable.NewRow(); allValues = dataTable.Select("", "CaseNumberID", DataViewRowState.CurrentRows); if (allValues.Length > 0) dataRowNew["CaseNumberID"] = (int)allValues[allValues.Length - 1]["CaseNumberID"] + 1; else dataRowNew["CaseNumberID"] = 1; //table empty newValues = new Hashtable(); e.Item.OwnerTableView.ExtractValuesFromItem(newValues, gridEditableItem); try { foreach (DictionaryEntry entry in newValues) dataRowNew[(string)entry.Key] = entry.Value; } catch { e.Canceled = true; } dataTable.Rows.Add(dataRowNew); } } protected void radGridCaseNumbers_ItemCommand(object sender, GridCommandEventArgs e) { if (e.CommandName.Equals(RadGrid.EditCommandName)) radGridCaseNumbers.MasterTableView.IsItemInserted = false; if (e.CommandName.Equals(RadGrid.InitInsertCommandName)) radGridCaseNumbers.MasterTableView.ClearEditItems(); if ((e.CommandName.Equals(RadGrid.InitInsertCommandName)) && ("Offenses".Equals(e.Item.OwnerTableView.Name))) { if (e.Item.OwnerTableView.Items.Count.Equals(0)) { e.Canceled = true; System.Collections.Specialized.ListDictionary newVal = new System.Collections.Specialized.ListDictionary(); newVal["AgencyID"] = null; e.Item.OwnerTableView.InsertItem(newVal); } } } protected void radGridCaseNumbers_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { ((RadGrid)sender).DataSource = CaseNumbers; CaseNumbers.Tables["CaseNumber"].PrimaryKey = new DataColumn[] { CaseNumbers.Tables["CaseNumber"].Columns["CaseNumberID"] }; } protected void radGridCaseNumbers_UpdateCommand(object sender, GridCommandEventArgs e) { GridEditableItem gridEditableItem = null; DataTable dataTable = null; DataRow[] changedRows = null; Hashtable newValues = null; DataRow dataRowChanged = null; if ("Offenses".Equals(e.Item.OwnerTableView.Name)) { gridEditableItem = (GridEditableItem)e.Item; dataTable = Offenses.Tables["Offense"]; changedRows = dataTable.Select("OffenseID = " + gridEditableItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["OffenseID"]); newValues = new Hashtable(); e.Item.OwnerTableView.ExtractValuesFromItem(newValues, gridEditableItem); dataRowChanged = changedRows[0]; dataRowChanged.BeginEdit(); try { foreach (DictionaryEntry entry in newValues) dataRowChanged[(string)entry.Key] = entry.Value; dataRowChanged.EndEdit(); } catch { dataRowChanged.CancelEdit(); e.Canceled = true; } } else if ("CaseNumbers".Equals(e.Item.OwnerTableView.Name)) { gridEditableItem = (GridEditableItem)e.Item; dataTable = CaseNumbers.Tables["CaseNumber"]; changedRows = dataTable.Select("CaseNumberID = " + gridEditableItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["CaseNumberID"]); newValues = new Hashtable(); e.Item.OwnerTableView.ExtractValuesFromItem(newValues, gridEditableItem); dataRowChanged = changedRows[0]; dataRowChanged.BeginEdit(); try { foreach (DictionaryEntry entry in newValues) dataRowChanged[(string)entry.Key] = entry.Value; dataRowChanged.EndEdit(); } catch { dataRowChanged.CancelEdit(); e.Canceled = true; } } }I am already supressing a similar binding error in the ItemCommand event handler in the case where an insert is initiated into the "Offenses" detail table that is empty.
I was trying to do something similar in the case of an ExpandCollapse command but had no luck.
I'm trying to use a raddatepicker in a radgrid where the user can only select the Month and Year, rather than the date from the RadCalendar.
| <script type="text/javascript"> |
| //override the onload event handler to change the picker after the page is loaded |
| window.onload = function () |
| { |
| window.setTimeout(function() {SetCalendarTable();},200) |
| } |
| function SetCalendarTable() |
| { |
| var picker = "ctl00_RadPanel_ForecastGrid_ctl00_ctl02_ctl02_rdpForecastStartDate"; |
| var calendar = picker.get_calendar(); |
| var fastNavigation = calendar._getFastNavigation(); |
| $clearHandlers(picker.get_popupButton()); |
| $addHandler(picker.get_popupButton(), "click", function() |
| { |
| //debugger; |
| var textbox = picker.get_textBox(); |
| //adjust where to show the popup table |
| var x, y; |
| var adjustElement = textbox; |
| if (textbox.style.display == "none") |
| adjustElement = picker.get_popupImage(); |
| var pos = picker.getElementPosition(adjustElement); |
| x = pos.x; |
| y = pos.y + adjustElement.offsetHeight; |
| var e = { |
| clientX : x, |
| clientY : y |
| }; |
| //synchronize the input date if set with the picker one |
| var date = picker.get_selectedDate(); |
| if(date) |
| { |
| calendar.FocusedDate[0] = date.getFullYear(); |
| calendar.FocusedDate[1] = date.getMonth() + 1; |
| } |
| $get(calendar._titleID).onclick(e); |
| }); |
| fastNavigation.OnOK = |
| function() |
| { |
| var date = new Date(fastNavigation.Year, fastNavigation.Month, 1); |
| picker.get_dateInput().SetDate(date); |
| fastNavigation.Popup.Hide(); |
| } |
| fastNavigation.OnToday = |
| function() |
| { |
| var date = new Date(); |
| picker.get_dateInput().SetDate(date); |
| fastNavigation.Popup.Hide(); |
| } |
| } |
| </script> |
| <telerik:RadGrid ID="ForecastGrid" |
| AllowPaging="True" |
| AllowSorting="True" |
| EnableEmbeddedSkins="false" |
| GridLines="None" |
| OnInsertCommand="ForecastGrid_InsertCommand" |
| OnItemCommand="ForecastGrid_ItemCommand" |
| OnItemCreated="ForecastGrid_ItemCreated" |
| OnItemDataBound="ForecastGrid_ItemDataBound" |
| OnNeedDataSource="ForecastGrid_NeedDataSource" |
| OnUpdateCommand="ForecastGrid_UpdateCommand" |
| PageSize="15" |
| runat="server" |
| ShowFooter = "true" |
| Skin="AO" |
| Visible = "true"> |
| <MasterTableView CommandItemDisplay="Bottom" AutoGenerateColumns = "false" DataKeyNames="ForecastId"> |
| <EditFormSettings EditFormType = "Template"> |
| <FormTemplate> |
| <div style="padding: 10px;"> |
| <div class="text"> |
| Click the <b>Save</b> button to save your changes.</div> |
| <div> |
| <asp:Label Visible="false" ID="ErrorLabel" runat="server" /></div> |
| <div style="clear: both;"> |
| </div> |
| <div class="validation-summary"> |
| <asp:ValidationSummary HeaderText="Changes not saved." DisplayMode="SingleParagraph" |
| ID="ValidationSummary1" runat="server"></asp:ValidationSummary> |
| </div> |
| <div style="clear: both;"> |
| </div> |
| <div> |
| <asp:Label ID="ForecastIdLabel" Visible="false" runat="server" Text='<%# Bind("ForecastId") %>'></asp:Label></div> |
| <div> |
| <div> |
| <asp:Label ID="IsActiveLabel" Visible="false" runat="server" Text='<%# Bind("IsActive") %>'></asp:Label> |
| </div> |
| <div class="label-short" style="float: left; padding-bottom: 5px; width:150px;"> |
| Forecast Name:</div> |
| <div style="padding-bottom: 5px;"> |
| <Telerik:RadTextBox ID="ForecastName" runat="server" Skin="AO" EnableEmbeddedSkins="false" |
| Text='<%# Bind("ForecastName") %>' Width="240" MaxLength="50"> |
| </Telerik:RadTextBox> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="ForecastName" |
| ErrorMessage="Forecast Name is required.">*</asp:RequiredFieldValidator> |
| </div> |
| <div style="clear: both;"> |
| </div> |
| <div class="label-short" style="float: left; padding-bottom: 5px; width:150px;"> |
| Forecast Start Date:</div> |
| <div style="padding-bottom: 5px;"> |
| <telerik:RadDatePicker ID="rdpForecastStartDate" DateInput-DateFormat="MMMM, yyyy" runat="server" |
| AutoPostBack="false" ToolTip="Month" Width="130px" CssClass="date-picker" Skin="AO" |
| EnableEmbeddedSkins="false"> |
| </telerik:RadDatePicker> |
| <%--<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="rdpForecastStartDate" |
| ErrorMessage="Forecast Start Date is required.">*</asp:RequiredFieldValidator>--%> |
| </div> |
| <div style="clear: both;"> |
| </div> |
| <div class="label-short" style="float: left; padding-bottom: 5px; width:150px;"> |
| Forecast Length:</div> |
| <div style="padding-bottom: 5px;"> |
| <telerik:RadComboBox ID="rcbForecastLength" runat="server" ZIndex="7020" Skin="AO" EnableEmbeddedSkins="false" Width="243"> |
| </telerik:RadComboBox> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="rcbForecastLength" |
| ErrorMessage="Forecast Length is required.">*</asp:RequiredFieldValidator> |
| </div> |
| <div style="clear: both;"> |
| </div> |
| <div class="label-short" style="float: left; padding-bottom: 5px; width:150px;"> |
| Is Active:</div> |
| <div style="float: left; padding-bottom: 5px;"> |
| <asp:CheckBox ID="IsActiveCheckbox" runat="server"></asp:CheckBox> |
| </div> |
| <div style="clear: both;"> |
| </div> |
| <div> |
| <asp:Button ID="UpdateButton" CssClass="button" runat="server" Text="Save" CommandName="Update" /> |
| <asp:Button ID="InsertButton" CssClass="button" runat="server" Text="Save" CommandName="PerformInsert" /> |
| <asp:Button ID="CancelButton" CssClass="button" runat="server" Text="Cancel" CommandName="Cancel" |
| CausesValidation="false" /> |
| </div> |
| </div> |
| </FormTemplate> |
| </EditFormSettings> |
| </MasterTableView> |
| </telerik:RadGrid> |
using System;using Telerik.Web.UI;public partial class Default : System.Web.UI.Page { public class A { public int a { get; set; } public int b { get; set; } } protected void Page_Load(object sender, EventArgs e) { RadGrid1.DataSource = new A[] {new A() {a = 1, b = 2}, new A() {a = 3, b = 4}}; } protected void rg_ItemCommand(object sender, GridCommandEventArgs e) { int i = e.Item.ItemIndex; GridDataItem item = (GridDataItem)e.Item; int letterId = (int)item.GetDataKeyValue("a"); //GridDataItem dataItem = RadGrid1.SelectedItems[0] as GridDataItem; }}<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server" /></head><body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <asp:ScriptReference Assembly="Telerik.Web.UI, Version=2012.3.1205.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI, Version=2012.3.1205.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI, Version=2012.3.1205.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <script type="text/javascript"> //Put your JavaScript code here. </script> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> </telerik:RadAjaxManager> <div> <telerik:RadGrid ID="RadGrid1" runat="server" OnItemCommand="rg_ItemCommand"> <MasterTableView DataKeyNames="a" AutoGenerateColumns="False"> <Columns> <telerik:GridBoundColumn DataField="a" DataType="System.Int32"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="b" DataType="System.Int32"> </telerik:GridBoundColumn> <telerik:GridButtonColumn ButtonType="LinkButton" CommandName="test" Text="test"> </telerik:GridButtonColumn> </Columns> </MasterTableView> <ClientSettings> <%--removing Oncommand will make itemindex work--%> <ClientEvents OnCommand="rgCommand" /> </ClientSettings> </telerik:RadGrid> </div> <script type="text/javascript"> function rgCommand(sender, args) { var commandName = args.get_commandName(); } </script> </form></body></html>((Wcsr.ProjectBilling.Business.Data.ProjectTask) (Container.DataItem ?? new Wcsr.ProjectBilling.Business.Data.ProjectTask())).Code<asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1" DefaultMode="Edit" OnItemUpdated="FormView1_ItemUpdated" OnItemUpdating="FormView1_ItemUpdating"> <EditItemTemplate> <telerik:RadPanelBar ID="RadPanelBar1" runat="server" Skin="Metro" Width="100%"> <Items> <telerik:RadPanelItem runat="server" Expanded="True" PreventCollapse="True" Text="Basic Task Information"> <ContentTemplate> <div> <asp:Label ID="Label1" runat="server" CssClass="fieldLabel">Task Code</asp:Label> <%-- For some reason RadPanelItem requires you to do databinding with DataBinder.Eval --%> <asp:TextBox ID="TaskCodeTb" runat="server" MaxLength="20" Text='<%# ((Wcsr.ProjectBilling.Business.Data.ProjectTask) (Container.DataItem ?? new Wcsr.ProjectBilling.Business.Data.ProjectTask())).Code %>'></asp:TextBox> </div> <div> <asp:Label ID="Label4" runat="server" CssClass="fieldLabel">Task Description</asp:Label> <asp:TextBox ID="DescriptionTb" runat="server" MaxLength="250" Rows="3" Text='<%# ((Wcsr.ProjectBilling.Business.Data.ProjectTask) (Container.DataItem ?? new Wcsr.ProjectBilling.Business.Data.ProjectTask())).Description %>' TextMode="MultiLine"></asp:TextBox> </div> </ContentTemplate> </telerik:RadPanelItem> </telerik:RadPanelBar> <asp:LinkButton runat="server" ID="UpdateLb" Text="Update" CommandName="Update"></asp:LinkButton> <asp:LinkButton runat="server" ID="CancelLb" Text="Cancel" CommandName="Cancel"></asp:LinkButton> </EditItemTemplate> </asp:FormView>