Telerik Forums
UI for ASP.NET AJAX Forum
3 answers
431 views
I  am opening  a page in rad window. ( Radwindow manager is on the maser page described as follow). I have cacel button on the page.
Which has code according to your example.
When I cancel out it closes the window but when I open window second time and click on cancel it closes current window and now it's showing the old window again. For this example I am using radWINModalPostLogin windwow.

<

 

telerik:RadWindowManager ID="radWindowManager" Style="z-index: 8001;"

 

 

runat="server" Skin="Vista" OnClientClose="OnClientClose" EnableViewState="false" ShowContentDuringLoad="false" >

 

 

<Windows>

 

 

<telerik:RadWindow ID="radWINModalPostLogin" runat="server" ReloadOnShow="True" DestroyOnClose="true" Behaviors="None"

 

 

Left="" VisibleTitlebar="False" VisibleOnPageLoad="false" Style="display: none;" Top="" Modal="True" KeepInScreenBounds="True" >

 

 

</telerik:RadWindow>

 

 

<telerik:RadWindow ID="radWINDialogPostLogin" VisibleStatusbar="false" runat="server" VisibleOnPageLoad="false"

 

 

Left="" VisibleTitlebar="True" Style="display: none;" Top="" Modal="False" Behaviors="Close" >

 

 

</telerik:RadWindow>

 

 

</Windows>

 

 

</telerik:RadWindowManager>

 

Anumeha
Top achievements
Rank 1
 answered on 04 Jan 2011
0 answers
91 views
I am using Dynamic data with DynamicRadGrid, and i am running into problem with paging.
<XXX:DynamicRadGrid ID="RadGrid1" AllowPaging="True" AutoGenerateColumns="false"              runat="server" DataSourceID="GridDataSource" OnItemDataBound="RadGrid1_ItemDataBound"                OnItemCommand="RadGrid1_ItemCommand"
                   <PagerStyle CssClass="clPanelPaging" BackColor="White" ShowPagerText="true" Mode="NumericPages" /> 
                   <ExportSettings ExportOnlyData="true" IgnorePaging="true" OpenInNewWindow="true" /> 
                   <MasterTableView EditMode="InPlace"
                       <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings
                          
                   </MasterTableView
               </XXX:DynamicRadGrid
           <asp:DataServiceLinqDataSource ID="GridDataSource" runat="server" EnableDelete="true"  EnableUpdate="true" AutoPage="false"
           </asp:DataServiceLinqDataSource>

If i set autopage to false, i see page by page. But as its server side paging i dont get correct item count. If i set the autopage to false, then i get the complete data set, but paging doesnt work.

When i click on page-2, it binds the data again and moves back to page-1.
Any suggestions?

thanks in advance!!
-guru
Guru
Top achievements
Rank 1
 asked on 04 Jan 2011
4 answers
107 views

... i binded to in codebehind?

I Have started to get up and running with my small test-projekt for evaluating Telerik ...

I have managed to bind a datattable through NeedDatasource. Like this:

'Set datasource
ProductGrid.DataSource = New Products.Table(Client.ConnectionString)

The tableobject is a custom object wich inherit a Data.DatatTable wich has connection and adapter objects etc. Insert, Update and delete commands are generated and I can save all changes by simply calling

ProductTable.Save()
 
Nothing fancy about it ... When building WinForm I just bind to my table make some chnages in grid and then call save and voila ... Done!

But can I do this way too when working with RadGrid? Or do I have to retrieve all values and do a manual update?

//h
Henrik
Top achievements
Rank 1
 answered on 04 Jan 2011
1 answer
88 views
Hi

I not able to overlay RadMenu when using jquery dialog with modal option.

Any ideas on how to fix this issue so that I can disable the RadMenu along with rest of page when calling the dialog. This is code

$(

"#dialog1").dialog({modal:true,   });

 

Thanks

Mustapha
Top achievements
Rank 1
 answered on 04 Jan 2011
3 answers
129 views

Hello ,

i have a radtagcloud item , i want use it like shopping - basket.

user select a row from RadGrid in Client ,  and i want to add "ID" value on grid into RadTagCloud via Java Script. How can i do that ?

here is the code below :

 

function

 

OnRowSelected(sender, eventArgs) {

 

 

// add into radtagcloud

 

 

 

var colIndex = 0;

 

 

var rowIndex = eventArgs._itemIndexHierarchical;

 

 

if (rowIndex > -1) {

 

 

var value = sender._selection._masterTable.children[rowIndex].cells[colIndex].innerText;

 

 

if (value != null) {

 

 

// add this item into cloud.

 

??

 

 

 

 

 

 

                         }

}

 

}

}

thanks

Pero
Telerik team
 answered on 04 Jan 2011
1 answer
70 views
Hi,

I want the selected item image to be shown in my combo boxes and found this code snippet:
http://www.telerik.com/community/code-library/aspnet-ajax/combobox/show-the-selected-item-image-in-input.aspx

Unfortunately, it seems to work in IE but not Firefox. Any possible workarounds?

Regards,
JH
Kalina
Telerik team
 answered on 04 Jan 2011
1 answer
122 views
Hi all,

How can I spell check the ASP:textbox TextBoxcomments in this repeater? If I specify isClientID="true" it runs but says it can't find a valid HTML item. If I remove the isClientId I get a message saying it can't be Null. Thanks in advance, Dan

<asp:Repeater ID="repeaterApproveDept" Runat="server">
                    <ItemTemplate>
                        <TR>
                            <TD class="APR_ARIAL_10PT" width="100">
                                <%# FormatName((System.Data.DataRowView)Container.DataItem)%>
                            </TD>
                            <td valign="middle">
                            <cc1:myCCFDropDownList Enabled = "false" id="Myccfdropdownlist2" runat="server" Width="100" SetValue='<%# DataBinder.Eval(Container.DataItem, "RecommendedRating")%>' AutoPostBack="False" apAssessmentID='<%# DataBinder.Eval(Container.DataItem, "apAssessmentID")%>' siStaffID='<%# DataBinder.Eval(Container.DataItem, "siStaffID")%>' DeptAssignID='<%# DataBinder.Eval(Container.DataItem, "DeptAssignID")%>' IsLeadership='<%# DataBinder.Eval(Container.DataItem, "IsLeadership")%>' BogReviewerStatus='<%# DataBinder.Eval(Container.DataItem, "BogReviewerStatus")%>' DivStatus='<%# DataBinder.Eval(Container.DataItem, "DivStatus")%>'>
                                    <asp:ListItem Value="">Not Selected</asp:ListItem>
                                    <asp:ListItem Value="E">Exceeds</asp:ListItem>
                                    <asp:ListItem Value="A">Achieves</asp:ListItem>
                                    <asp:ListItem Value="I">Needs Improvement</asp:ListItem>
                                    <asp:ListItem Value="NR">NR</asp:ListItem>
                                    <asp:ListItem Value="RET">RET</asp:ListItem>
                                    <asp:ListItem Value="TNTR">TNTR</asp:ListItem>
                                    <asp:ListItem Value="WR">WR</asp:ListItem>
                                </cc1:myCCFDropDownList>
                            </td>
  
                            <TD width="85%" valign="middle">
                                <asp:textbox cssclass="APR_ARIAL_10PT" id="TextBoxComments" TextMode="MultiLine" runat="server" Rows= 5 Columns = 140 Text='<%# DataBinder.Eval(Container.DataItem, "Comments")%>'>
                                </asp:textbox>
                            </TD>
                            <td align="center">
                                <asp:CheckBox ID="CheckBoxCompleted" Runat="server" Checked='<%# DataBinder.Eval(Container.DataItem, "IsCompleted").ToString()=="1"%>' onclick="return false;">
                                </asp:CheckBox>
                            </td>
                        </TR>
                        <tr>
                            <td colspan="4"><hr>
                            </td>
                        </tr>
                    </ItemTemplate>
                </asp:Repeater>
Dan
Top achievements
Rank 1
 answered on 04 Jan 2011
1 answer
85 views
Hi,

In Sharepoint aspx page i have dropdown and radcombobox controls.

When i try to fill radcombobox and asp:dropdownlist controls from the code behind file, only asp:dropdownlist is getting filled.
I am unable to fill radcombobox or any other rad controls in the codebehind file.

I double checked radcontrols id's in the aspx and in the code behind. There is no mismatch in the ID names.
Still only all my rad controls are null in the code behind. (asp.net controls i am able to access in the same code behind file)

Similar problem was found in one of the telerik forums  http://www.telerik.com/community/forums/aspnet-ajax/ajax/radlistbox-and-sharepoint-code-behind-project.aspx.

Pleass help me to resolve this issue.

//Code Behind File
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using System.Web.UI.WebControls;
using Microsoft.SharePoint.Utilities;
using Telerik.Web.UI;
  
namespace SPTelerikTest 
    public partial class SPTelerikTest : System.Web.UI.Page 
    
        protected DropDownList DropDownList1; 
        protected RadComboBox RadComboBox1; 
  
        protected void Page_Load(object sender, EventArgs e) 
        
  
           if (!Page.IsPostBack) 
            
               DropDownList1.Items.Add("Item1");
               RadComboBoxItem oradComboBoxItem = new RadComboBoxItem("Item1);
               RadComboBox1.Items.Add(oradComboBoxItem);
            }  
        
   }
}
 
 
 
//Aspx Page code snippet
 
<table>
        <tr>
            <td>
            <telerik:RadComboBox ID="RadComboBox1" runat="server" Width="120px" Skin="WebBlue"   EmptyMessage="Select Partner Name" ></telerik:RadComboBox>
            </td>
            <td>
            <asp:DropDownList ID="DropDownList1" runat="server" Width="120px"  >
                                    </asp:DropDownList>
 
            </td>
      </tr>
</table>

Kalina
Telerik team
 answered on 04 Jan 2011
0 answers
207 views
Hi All,
Please assist, I'm testing Demo Client Edit with batch server update

After all when I browse, I got error, click on column for sorting, click on pageno. also got error.
And double click on row to edit doesn't work also.
Please advice ... Please see attached file fro your ref.
My code is as below ....
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="WebForm2.aspx.vb" Inherits="Jan2WebAppPrj.WebForm2" %>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
     <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        <Scripts>
        </Scripts>
    </telerik:RadScriptManager>
       
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <script type="text/javascript">
        <!--
            //Custom js code section used to edit records, store changes and switch the visibility of column editors
 
            //global variables for edited cell and edited rows ids
            var editedCell;
            var arrayIndex = 0;
            var editedItemsIds = [];
 
            function RowCreated(sender, eventArgs) {
                var dataItem = eventArgs.get_gridDataItem();
 
                //traverse the cells in the created client row object and attach dblclick handler for each of them
                for (var i = 1; i < dataItem.get_element().cells.length; i++) {
                    var cell = dataItem.get_element().cells[i];
                    if (cell) {
                        $addHandler(cell, "dblclick", Function.createDelegate(cell, ShowColumnEditor));
                    }
                }
            }
 
            //detach the ondblclick handlers from the cells on row disposing
            function RowDestroying(sender, eventArgs) {
                if (eventArgs.get_id() === "") return;
                var row = eventArgs.get_gridDataItem().get_element();
                var cells = row.cells;
                for (var j = 0, len = cells.length; j < len; j++) {
                    var cell = cells[j];
                    if (cell) {
                        $clearHandlers(cell);
                    }
                }
            }
 
            function RowClick(sender, eventArgs) {
                if (editedCell) {
                    //if the click target is table cell or span and there is an edited cell, update the value in it
                    //skip update if clicking a span that happens to be a form decorator element (having a class that starts with "rfd")
                    if ((eventArgs.get_domEvent().target.tagName == "TD") ||
                        (eventArgs.get_domEvent().target.tagName == "SPAN" && !eventArgs.get_domEvent().target.className.startsWith("rfd"))) {
                        UpdateValues(sender);
                        editedCell = false;
                    }
                }
            }
            function ShowColumnEditor() {
                editedCell = this;
 
                //hide text and show column editor in the edited cell
                var cellText = this.getElementsByTagName("span")[0];
                cellText.style.display = "none";
 
                //display the span which wrapps the hidden checkbox editor
                if (this.getElementsByTagName("span")[1]) {
                    this.getElementsByTagName("span")[1].style.display = "";
                }
                var colEditor = this.getElementsByTagName("input")[0] || this.getElementsByTagName("select")[0];
                //if the column editor is a form decorated select dropdown, show it instead of the original
                if (colEditor.className == "rfdRealInput" && colEditor.tagName.toLowerCase() == "select") colEditor = Telerik.Web.UI.RadFormDecorator.getDecoratedElement(colEditor);
                colEditor.style.display = "";
                colEditor.focus();
            }
            function StoreEditedItemId(editCell) {
                //get edited row key value and add it to the array which holds them
                var gridRow = $find(editCell.parentNode.id);
                var rowKeyValue = gridRow.getDataKeyValue("ProductID");
                Array.add(editedItemsIds, rowKeyValue);
            }
            function HideEditor(editCell, editorType) {
                //get reference to the label in the edited cell
                var lbl = editCell.getElementsByTagName("span")[0];
 
                switch (editorType) {
                    case "textbox":
                        var txtBox = editCell.getElementsByTagName("input")[0];
                        if (lbl.innerHTML != txtBox.value) {
                            lbl.innerHTML = txtBox.value;
                            editCell.style.border = "1px dashed";
 
                            StoreEditedItemId(editCell);
                        }
                        txtBox.style.display = "none";
                        break;
                    case "checkbox":
                        var chkBox = editCell.getElementsByTagName("input")[0];
                        if (lbl.innerHTML.toLowerCase() != chkBox.checked.toString()) {
                            lbl.innerHTML = chkBox.checked;
                            editedCell.style.border = "1px dashed";
 
                            StoreEditedItemId(editCell);
                        }
                        chkBox.style.display = "none";
                        editCell.getElementsByTagName("span")[1].style.display = "none";
                        break;
                    case "dropdown":
                        var ddl = editCell.getElementsByTagName("select")[0];
                        var selectedValue = ddl.options[ddl.selectedIndex].value;
                        if (lbl.innerHTML != selectedValue) {
                            lbl.innerHTML = selectedValue;
                            editCell.style.border = "1px dashed";
 
                            StoreEditedItemId(editCell);
                        }
                        //if the form decorator was enabled, hide the decorated dropdown instead of the original.
                        if (ddl.className == "rfdRealInput") ddl = Telerik.Web.UI.RadFormDecorator.getDecoratedElement(ddl);
                        ddl.style.display = "none";
                    default:
                        break;
                }
                lbl.style.display = "inline";
            }
            function UpdateValues(grid) {
                //determine the name of the column to which the edited cell belongs
                var tHeadElement = grid.get_element().getElementsByTagName("thead")[0];
                var headerRow = tHeadElement.getElementsByTagName("tr")[0];
                var colName = grid.get_masterTableView().getColumnUniqueNameByCellIndex(headerRow, editedCell.cellIndex);
 
                //based on the column name, extract the value from the editor, update the text of the label and switch its visibility with that of the column
                //column. The update happens only when the column editor value is different than the non-editable value. We also set dashed border to indicate
                //that the value in the cell is changed. The logic is isolated in the HideEditor js method
                switch (colName) {
                    case "ProductName":
                        HideEditor(editedCell, "textbox");
                        break;
                    case "QuantityPerUnit":
                        HideEditor(editedCell, "textbox");
                        break;
                    case "UnitPrice":
                        HideEditor(editedCell, "textbox");
                        break;
                    case "UnitsInStock":
                        HideEditor(editedCell, "dropdown");
                        break;
                    case "UnitsOnOrder":
                        HideEditor(editedCell, "textbox");
                        break;
                    case "Discontinued":
                        HideEditor(editedCell, "checkbox");
                        break;
                    default:
                        break;
                }
            }
            function CancelChanges() {
                if (editedItemsIds.length > 0) {
                    $find("<%=RadAjaxManager1.ClientID %>").ajaxRequest("");
                }
                else {
                    alert("No pending changes to be discarded");
                }
                editedItemsIds = [];
            }
            function ProcessChanges() {
                //extract edited rows ids and pass them as argument in the ajaxRequest method of the manager
                if (editedItemsIds.length > 0) {
                    var Ids = "";
                    for (var i = 0; i < editedItemsIds.length; i++) {
                        Ids = Ids + editedItemsIds[i] + ":";
                    }
                    $find("<%=RadAjaxManager1.ClientID %>").ajaxRequest(Ids);
                }
                else {
                    alert("No pending changes to be processed");
                }
                editedItemsIds = [];
            }
            function RadGrid1_Command(sender, eventArgs) {
                //Note that this code has to be executed if you postback from external control instead from the grid (intercepting its onclientclick handler for this purpose),
                //otherwise the edited values will be lost or not propagated in the source
                if (editedItemsIds.length > 0) {
                    if (eventArgs.get_commandName() == "Sort" || eventArgs.get_commandName() == "Page" || eventArgs.get_commandName() == "Filter") {
                        if (confirm("Any unsaved edited values will be lost. Choose 'OK' to discard the changes before proceeding or 'Cancel' to abort the action and process them.")) {
                            editedItemsIds = [];
                        }
                        else {
                            //cancel the chosen action
                            eventArgs.set_cancel(true);
 
                            //process the changes
                            ProcessChanges();
                            editedItemsIds = [];
                        }
                    }
                }
            }
            window.onunload = function () {
                //this code should also be executed on postback from external control (which rebinds the grid) to process any unsaved data
                if (editedItemsIds.length > 0) {
                    if (confirm("Any unsaved edited values will be lost. Choose 'OK' to discard the changes before proceeding or 'Cancel' to abort the action and process them.")) {
                        editedItemsIds = [];
                    }
                    else {
                        //process the changes
                        ProcessChanges();
                        editedItemsIds = [];
                    }
                }
            };
     -->   
        </script>
    </telerik:RadCodeBlock>
    <telerik:RadFormDecorator ID="RadFormDecorator1" runat="server" DecoratedControls="Default,Select,Textbox"
        EnableRoundedCorners="false" />
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadGrid1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="RadInputManager1" />
                    <telerik:AjaxUpdatedControl ControlID="Label1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="RadInputManager1" />
                    <telerik:AjaxUpdatedControl ControlID="Label1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
    <telerik:RadInputManager ID="RadInputManager1" EnableEmbeddedBaseStylesheet="false"
        Skin="" runat="server">
        <telerik:TextBoxSetting BehaviorID="StringBehavior" EmptyMessage="type here" />
        <telerik:NumericTextBoxSetting BehaviorID="CurrencyBehavior" EmptyMessage="type.."
            Type="Currency" Validation-IsRequired="true" MinValue="1" MaxValue="100000" />
        <telerik:NumericTextBoxSetting BehaviorID="NumberBehavior" EmptyMessage="type.."
            Type="Number" DecimalDigits="0" MinValue="0" MaxValue="100" />
    </telerik:RadInputManager>
 
<telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" Width="97%" ShowStatusBar="True" EnableEmbeddedScripts="false"
        AllowSorting="True" PageSize="15" GridLines="None" AllowPaging="True" runat="server"
        AutoGenerateColumns="False">
        <MasterTableView TableLayout="Fixed" DataKeyNames="ProductID" EditMode="InPlace"
            ClientDataKeyNames="ProductID" CommandItemDisplay="Bottom">
            <CommandItemTemplate>
                <div style="height: 30px; text-align: right;">
<asp:Image ID="imgCancelChanges" runat="server" ImageUrl="~/img/save.png"
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="~/img/delete.jpg"
AlternateText="Process changes" ToolTip="Process changes" Height="24px" Style="cursor: pointer;
margin: 2px 5px 0px 0px;" onclick="ProcessChanges();" />
                </div>
            </CommandItemTemplate>
            <Columns>
                <telerik:GridBoundColumn UniqueName="ProductID" DataField="ProductID" HeaderText="ProductID"
                    ReadOnly="True" HeaderStyle-Width="5%" />
                <telerik:GridTemplateColumn UniqueName="ProductName" SortExpression="ProductName"
                    HeaderText="ProductName" HeaderStyle-Width="15%">
                    <ItemTemplate>
                        <asp:Label ID="lblProductName" runat="server" Text='<%# Eval("ProductName") %>' />
                        <asp:TextBox ID="txtBoxName" runat="server" Text='<%# Bind("ProductName") %>' Width="95%"
                            Style="display: none" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn UniqueName="QuantityPerUnit" HeaderText="QuantityPerUnit"
                    SortExpression="QuantityPerUnit" HeaderStyle-Width="10%">
                    <ItemTemplate>
                        <asp:Label ID="lblQuantityPerUnit" runat="server" Text='<%# Eval("QuantityPerUnit") %>' />
                        <asp:TextBox ID="txtQuantityPerUnit" runat="server" Text='<%# Bind("QuantityPerUnit") %>'
                            Width="95%" Style="display: none" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn UniqueName="UnitPrice" HeaderText="UnitPrice" SortExpression="UnitPrice"
                    HeaderStyle-Width="7%">
                    <ItemTemplate>
                        <asp:Label ID="lblUnitPrice" runat="server" Text='<%# Eval("UnitPrice", "{0:C}") %>' />
                        <asp:TextBox ID="txtUnitPrice" runat="server" Width="95%" Text='<%# Bind("UnitPrice") %>'
                            Style="display: none" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn UniqueName="UnitsInStock" HeaderText="UnitsInStock" SortExpression="UnitsInStock"
                    HeaderStyle-Width="8%">
                    <ItemTemplate>
                        <asp:Label ID="lblUnitsInStock" runat="server" Text='<%# Eval("UnitsInStock") %>' />
<asp:DropDownList ID="ddlUnitsInStock" runat="server" DataTextField="UnitsInStock"
DataValueField="UnitsInStock" DataSourceID="SqlDataSource2" SelectedValue='<%# Bind("UnitsInStock") %>'
                            Style="display: none" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn UniqueName="UnitsOnOrder" HeaderText="UnitsOnOrder" SortExpression="UnitsOnOrder"
                    HeaderStyle-Width="7%">
                    <ItemTemplate>
                        <asp:Label ID="lblUnitsOnOrder" runat="server" Text='<%# Eval("UnitsOnOrder") %>' />
                        <asp:TextBox ID="txtUnitsOnOrder" runat="server" Text='<%# Bind("UnitsOnOrder") %>'
                            Width="95%" Style="display: none" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn UniqueName="Discontinued" HeaderText="Discontinued" SortExpression="Discontinued"
                    HeaderStyle-Width="6%">
                    <ItemTemplate>
                        <asp:Label ID="lblDiscontinued" runat="server" Text='<%# Eval("Discontinued") %>' />
                        <asp:CheckBox ID="chkBoxDiscontinued" runat="server" Checked='<%# Bind("Discontinued") %>'
                            Style="display: none" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
            </Columns>
        </MasterTableView>
        <ClientSettings>
            <ClientEvents OnRowCreated="RowCreated" OnRowClick="RowClick" OnCommand="RadGrid1_Command"
                OnRowDestroying="RowDestroying" />
        </ClientSettings>
    </telerik:RadGrid>
 
    <br />
    <asp:Label ID="Label1" runat="server" EnableViewState="false" />
    <br />
    <br />
    <asp:SqlDataSource ID="SqlDataSource1"
         ConnectionString="<%$ ConnectionStrings:NorthWindsConnectionString %>" SelectCommand="SELECT * FROM [Products]"
        runat="server" UpdateCommand="UPDATE [Products] SET [ProductName] = @ProductName, [QuantityPerUnit] = @QuantityPerUnit, [UnitPrice] = @UnitPrice, [UnitsInStock] = @UnitsInStock, [UnitsOnOrder] = @UnitsOnOrder, [Discontinued] = @Discontinued WHERE [ProductID] = @ProductID">
         <UpdateParameters>
            <asp:Parameter Name="ProductID" Type="Int16" />
            <asp:Parameter Name="ProductName" Type="String" />
            <asp:Parameter Name="QuantityPerUnit" Type="String" />
            <asp:Parameter Name="UnitPrice" Type="Decimal" />
            <asp:Parameter Name="UnitsInStock" Type="Int16" />
            <asp:Parameter Name="UnitsOnOrder" Type="Int16" />
            <asp:Parameter Name="Discontinued" Type="Boolean" />
        </UpdateParameters>
    </asp:SqlDataSource>
    <asp:SqlDataSource ID="SqlDataSource2" runat="server"
         ConnectionString="<%$ ConnectionStrings:NorthWindsConnectionString %>"
         SelectCommand="SELECT Distinct [UnitsInStock] FROM [Products]" />
    <!-- content end -->
     
    </asp:Content>
Imports System
Imports Telerik.Web.UI
Imports System.Collections
 
Public Class WebForm2
    Inherits System.Web.UI.Page
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 
    End Sub
    Private Sub SetMessage(ByVal message As String)
        Label1.Text = String.Format("<span>{0}</span>", message)
    End Sub
    Protected Sub RadGrid1_ItemCreated(ByVal sender As Object, ByVal e As GridItemEventArgs) Handles RadGrid1.ItemCreated
        If TypeOf e.Item Is GridDataItem Then
            Dim dataItem As GridDataItem = CType(e.Item, GridDataItem)
 
            Dim txtBox As TextBox = CType(dataItem.FindControl("txtBoxName"), TextBox)
            Dim stringSetting As TextBoxSetting = DirectCast(RadInputManager1.GetSettingByBehaviorID("StringBehavior"), TextBoxSetting)
            stringSetting.TargetControls.Add(New TargetInput(txtBox.UniqueID, True))
 
            txtBox = CType(dataItem.FindControl("txtQuantityPerUnit"), TextBox)
            stringSetting.TargetControls.Add(New TargetInput(txtBox.UniqueID, True))
 
            txtBox = CType(dataItem.FindControl("txtUnitPrice"), TextBox)
            Dim currencySetting As NumericTextBoxSetting = DirectCast(RadInputManager1.GetSettingByBehaviorID("CurrencyBehavior"), NumericTextBoxSetting)
            currencySetting.TargetControls.Add(New TargetInput(txtBox.UniqueID, True))
 
            txtBox = CType(dataItem.FindControl("txtUnitsOnOrder"), TextBox)
            Dim numericSetting As NumericTextBoxSetting = DirectCast(RadInputManager1.GetSettingByBehaviorID("NumberBehavior"), NumericTextBoxSetting)
            numericSetting.TargetControls.Add(New TargetInput(txtBox.UniqueID, True))
        End If
    End Sub
 
 
    Protected Sub UpdateValues(ByVal updatedItem As GridDataItem)
        Dim txtBox As TextBox = CType(updatedItem.FindControl("txtBoxName"), TextBox)
        SqlDataSource1.UpdateParameters("ProductName").DefaultValue = txtBox.Text
 
        txtBox = CType(updatedItem.FindControl("txtQuantityPerUnit"), TextBox)
        SqlDataSource1.UpdateParameters("QuantityPerUnit").DefaultValue = txtBox.Text
 
        txtBox = CType(updatedItem.FindControl("txtUnitPrice"), TextBox)
        SqlDataSource1.UpdateParameters("UnitPrice").DefaultValue = txtBox.Text
 
        txtBox = CType(updatedItem.FindControl("txtUnitsOnOrder"), TextBox)
        SqlDataSource1.UpdateParameters("UnitsOnOrder").DefaultValue = txtBox.Text
 
        Dim ddl As DropDownList = CType(updatedItem.FindControl("ddlUnitsInStock"), DropDownList)
        SqlDataSource1.UpdateParameters("UnitsInStock").DefaultValue = ddl.SelectedValue
 
        Dim chkBox As CheckBox = CType(updatedItem.FindControl("chkBoxDiscontinued"), CheckBox)
        SqlDataSource1.UpdateParameters("Discontinued").DefaultValue = chkBox.Checked
 
        SqlDataSource1.UpdateParameters("ProductID").DefaultValue = updatedItem.GetDataKeyValue("ProductID").ToString()
 
        Try
            SqlDataSource1.Update()
        Catch ex As Exception
            SetMessage(Server.HtmlEncode("Unable to update Products. Reason: " + ex.StackTrace).Replace("'", "'").Replace(vbCrLf, "<br />"))
        End Try
        SetMessage("Product with ID: " & updatedItem.GetDataKeyValue("ProductID") & " updated")
 
    End Sub
 
    Private Sub RadAjaxManager1_AjaxRequest1(ByVal sender As Object, ByVal e As Telerik.Web.UI.AjaxRequestEventArgs) Handles RadAjaxManager1.AjaxRequest
        If e.Argument = String.Empty Then
            RadGrid1.Rebind()
        End If
        Dim editedItemIds As String() = e.Argument.Split(":")
        Dim i As Integer
        For i = 0 To editedItemIds.Length - 2
            Dim productId As String = editedItemIds(i)
            Dim updatedItem As GridDataItem = CType(RadGrid1.MasterTableView.FindItemByKeyValue("ProductID", Integer.Parse(productId)), GridDataItem)
 
            UpdateValues(updatedItem)
        Next
    End Sub
End Class

Thanks and best regards.

GoodNight ... Hope to see some suggestion tomorrow ... Thanks again.
Naunton
Top achievements
Rank 1
 asked on 04 Jan 2011
3 answers
291 views
Ok, I am using the radgrid to databind to a DataTable and it isn't updating any of the data when the edit form update button is pressed. From what I understand I need to rebind the data when the update button is pressed, however when I do that I am left with an empty grid.
Page load code:
 if (!IsPostBack)
   {
       
       DataTable dt = new DataTable();
       dt.Columns.Add("User");
       dt.Columns.Add("Comment");
       DataRow dr = dt.NewRow();
       dr["User"] = "Name";
       dr["Comment"] = "This is a comment";
       dt.Rows.Add(dr);
       Session.Add("dt", dt);
       RadGridComments.DataSource = dt;
       RadGridComments.DataBind();
   
   }
RadGrid:
<telerik:RadGrid ID="RadGridComments" runat="server" AllowFilteringByColumn="True" 
        AllowPaging="True" GridLines="None" EnableAjax="true" 
        AllowAutomaticUpdates="True" 
        oneditcommand="RadGridComments_EditCommand" 
        AutoGenerateEditColumn="True" >
        <MasterTableView AllowAutomaticUpdates="True">
        </MasterTableView>
</telerik:RadGrid>
and the edit command:
 protected void RadGridComments_EditCommand(object sender, GridCommandEventArgs e)
  {
      RadGridComments.DataSource = (DataTable)Session["dt"];
      RadGridComments.Rebind();
  }
now I want to specify that I am not able to use a SQL database with this project and I am having some problems making my datasource persistent.  I am going to be loading content from a website and filling out the radgrid, then when the edit command fires I need to push the info to the website(and then pull and rebind I assume).  I am unable to get my simple test code here working and I would appreciate your help.  So how do I set the new info from the edit form to my datatable? when using SQL databases it felt like this was done for me.
Pavlina
Telerik team
 answered on 04 Jan 2011
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?