Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
36 views
I have an ASP .NET 2.0 application using standard asp controls. My project is to replace the asp controls with Telerik controls. We have versions from 2007 to 2012, which version would be the best to use for the update project?

Thanks,

Steve Holdorf
lovehans@nc.rr.com
holdorfs.ctr@jdi.socom.mil
Rumen
Telerik team
 answered on 17 Jan 2013
4 answers
217 views
So far as I know I've been following your documentation to the letter.  (http://www.telerik.com/help/aspnet-ajax/editor-default-font-for-editable-content.html  etc...)

I have a RadEditor with the necessary EditContentArea.css.

In the css I have:
body {
     background-color: white;      
    font-family: Arial !important; 
    font-size: 10pt !important;
}

But no matter what I do, the editor always comes up in Times-Roman 16pt.

What could I be missing?
Rumen
Telerik team
 answered on 17 Jan 2013
3 answers
237 views
I have a RadGrid that has several columns.  (18 to be precise) though only 6 of these columns display by default. The rest are set to 'display=false'.   I'm trying to make it show that when a user changes what columns are displayed that change is persisted through their experience using sessions so that if they navigate away and come back to the page it will retain the changes they made.

I am following the instructions provided:  http://demos.telerik.com/aspnet-ajax/grid/examples/programming/savinggridsettingsonperuserbasis/defaultcs.aspx on the demo however I am having issues with modifying this so that it calls my SaveSettings method.

Is there a way to have it so that when the user hides or shows a column that it calls the SaveSettings method?
ASPX
<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>

Code Behind
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 If
End Sub   
Private Sub SaveSettings()
        Dim SavePersister As New GridSettingsPersister(gvDash)
        Session("Acc.Funds.GridSettings") = SavePersister.SaveSettings()
    End Sub
Kostadin
Telerik team
 answered on 17 Jan 2013
1 answer
89 views
How  can i show the height of dropdown based on the number of items in the radcombobox? 
Princy
Top achievements
Rank 2
 answered on 17 Jan 2013
3 answers
152 views

I 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:

 

  1. Click the "Add New Case Number" button (the Case Number form template is displayed)
  2. Fill in the required Case Number fields and click the insert button (upon doing this the "Add New Offense" button is displayed under the Case Number just inserted into the grid)
  3. Click the "Add New Offense" button (the Offense form template is displayed)
  4. Click the expand/collapse button next to the Case Number to collapse the Offense form template
  5. Click the expand/collapse button next to the Case Number to expand the Offense form template

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.

Antonio Stoilkov
Telerik team
 answered on 17 Jan 2013
21 answers
556 views

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.  


I have implemented this once before using the javascript from the Code Library at the link below and it has worked fine.


Now I am trying to apply it to a raddatepicker that is inside of an EditForm and it will not work.  

I can pass in the RadDatePicker's client ID and when I debug I see that it finds the object, but it continually tells me that the object does not contain those methods or properties.  

The applicable code is below.  Please let me know if you can help me or if you need any further information.

<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> 

Maria Ilieva
Telerik team
 answered on 17 Jan 2013
2 answers
214 views
How would I validate checked for a radbutton with ToggleType="CheckBox"

I have one checkbox( ToggleType="CheckBox") and then a regular radbutton(ButtonType="StandardButton") to proceed.

I am using this for "Accept Terms"

Thanks, Marty

moegal
Top achievements
Rank 1
 answered on 17 Jan 2013
1 answer
203 views
Hi,

I've pasted my code below. I need to know which row caused the itemcommand server side. This works fine in below code as long as the OnCommand client event is not used. When i start using it the ItemIndex is always 0. The same issue is described in http://www.telerik.com/community/forums/aspnet-ajax/grid/itemcommand-why-is-my-itemindex-always-zero.aspx, but the solution does not work for me as the selected row might be different. GetDataKeyValue also does not work it always returns the data key from first row.

Is there a way to find which row caused the itemcommand while have the client side OnCommand?

Thanks!

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">
<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>

Princy
Top achievements
Rank 2
 answered on 17 Jan 2013
1 answer
124 views

I have a FormView hooked into an ObjectDataSource.  Inside the FormView sits a RadPanelBar.  I have some databound controls within the RadPanelBar and I've had a terrible time getting them to work.

First, I used the suggested method, DataBinder.Eval(FormView1.DataItem, "BillingDate").  This causes the FormView to have an empty oldValues and newValues collection when it updates.  That took me days to figure out.

I then tried an alternative method, strongly typing the DataItem from the container.  

((Wcsr.ProjectBilling.Business.Data.ProjectTask)
                            (Container.DataItem ?? new Wcsr.ProjectBilling.Business.Data.ProjectTask())).Code


I am getting a null DataItem here.  If I use FormView1.DataItem, the oldValues and newValues collections become empty again.  What can I do?

<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>
Kate
Telerik team
 answered on 17 Jan 2013
7 answers
416 views
ive recently installed the telerik tools in my site, but keep getting this error when i try and build the solution.

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(3607,9): warning MSB3061: Unable to delete file "C:\Sites\MySite\bin\Telerik.Web.UI.xml". Access to the path 'C:\Sites\MySite\bin\Telerik.Web.UI.xml' is denied.

i shut down VS and ensure the bin folder has read-only removed, but this error keeps coming back every time.

how do i eradicate it ?
Edward
Top achievements
Rank 1
 answered on 17 Jan 2013
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
Iron
Iron
Iron
Alexander
Top achievements
Rank 1
Veteran
Iron
Serkan
Top achievements
Rank 1
Iron
Shawn
Top achievements
Rank 1
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
Iron
Iron
Iron
Alexander
Top achievements
Rank 1
Veteran
Iron
Serkan
Top achievements
Rank 1
Iron
Shawn
Top achievements
Rank 1
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?