Telerik Forums
UI for ASP.NET AJAX Forum
5 answers
1.5K+ views
Hi there,

i want to update my DataSource of the RadGrid with the Rebind-Method in a Button_Click-Event. 
In the NeedDataSource i update the DataSource properly but the new DataSource is not shown in my Grid. It just don´t do any update.

Can you me help out here?

Here my Grid:

<telerik:RadGrid ID="radInvoiceOverview"
                                runat="server"
                                AutoGenerateColumns="true"
                                OnNeedDataSource="radInvoiceOverview_NeedDataSource"
                                GridLines="None"
                                Width="650px"
                                AllowPaging="true"
                                PageSize="100"
                                ShowHeader="true"
                                ItemStyle-Height="30px"
                                AlternatingItemStyle-Height="30px">
 
                   <ClientSettings AllowKeyboardNavigation="true"
                                   EnablePostBackOnRowClick="true"
                                   EnableRowHoverStyle="true">
 
                       <Selecting AllowRowSelect="true"/>
                   </ClientSettings>
 
                   <SortingSettings  EnableSkinSortStyles="false"/>
 
                   <PagerStyle  Mode="NumericPages"
                                AlwaysVisible="true"
                                PageButtonCount="10"
                                PagerTextFormat="{4} Page {0} from {1}, Transactions {2} to {3}"/>
 
                   
                   <MasterTableView EnableNoRecordsTemplate="true" AutoGenerateColumns="true">
                       <NoRecordsTemplate>
                           <div style="width:100%;text-align:center;margin-top:10px;margin-bottom:10px;"><b>some Text</b></div>
                       </NoRecordsTemplate>
                   </MasterTableView>
               </telerik:RadGrid>


And here my Events:
protected void btnShow_Click(object sender, EventArgs e)
        {
            radInvoiceOverview.Rebind();
        }
 
        protected void radInvoiceOverview_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
             
            try
            {
                radInvoiceOverView.DataSource = GetUnprintedInvoicesForClient(); //<-- brings a DataTable as Source
            }
            catch (Exception ex)
            {
                //do some logging
            }
        }
Do you know what i´m missing in this scenario?

regards
Luke
pilar
Top achievements
Rank 1
 answered on 17 May 2019
6 answers
534 views

Hopefully someone can point me in the right direction.

 

I have a Grid that i populate from a list that i get from my backend. it works great like this. i do have paging that works, but sorting is one i am having trouble with.

 

I set the allowsort property to true, but the columns do not allow me to click on them to sort.

 

Any Suggestions?

Eli
Top achievements
Rank 2
 answered on 17 May 2019
3 answers
710 views
Hi

I have a problem with one AJAX call blocking another.  I suspect that I don't really fully understand what's going on "under the hood/bonnet" to know if I can fix this behaviour so would appreciate a full explanation if one exists, or better still a way to fix the behaviour.

Scenario
I have a page that displays a list of products.  Most of the information for these products is quick to get from the database, but stock data requires calls to 3rd party systems.

The solution is to load the page quickly with the majority of the data.  As soon as the page has loaded, an AJAX call is automatically fired to retrieve stock information that takes between 5-10 seconds.

Meanwhile, the Shopper can click on a button that also does an AJAX call back - the call is very quick and the results are displayed in a Tooltip (think that fact is probably irrelevant).

The initial problem was that when the Shopper clicked on the button, it cancelled the call to get stock.  I got around that problem by setting the RequestQueueSize property to be a number greater than 0.

Problem
If the Shopper spends 10 seconds reading the page and then clicks on the button, they see their results load almost instantaneously - this is because the Stock data has been returned.  However, if the shopper clicks on the button as soon as they page has loaded, then they will have to wait until the long-running call to get the stock information has completed.

My understanding ...
I thought that the whole point of being asynchronous was that once the JavaScript engine had sent the Request off to the server, it would then be free to handle other jobs in the queue.  Once the Response was received from the Server, it would then be added to the queue.

This being the case, it should work as follows:
  1. Request for stock sent
  2. Request for button-click sent
  3. Response for button-click received (and processed)
  4. Response for stock received (and processed)

However, it appears that the second Request is not sent until the first Response has been received.
I thought that a "standard" browser could have a maximum of two connections to a single domain (HTTP Limits) so if nothing else is occuring on my page then this should work as expected.

So is Telerik RadAjaxPanel managing a single queue and only firing off a Request if the previous Request has already been returned?

If so, then from the link regarding HTTP connection limits, there really ought to be two queues per domain.

Think I need that explanation....

Many thanks in advance!

Griff
M
Top achievements
Rank 1
 answered on 17 May 2019
14 answers
1.5K+ views
Hello, I am using GridClientSelectColumn, and I'm trying to add a javascript onclick event.  I added the following to my ItemDataBound grid event:

 

 

if (e.Item is GridDataItem)

 

{

 

 

GridDataItem item = (GridDataItem)e.Item;

 

 

 

CheckBox chkbx = (CheckBox)item["ClientSelectColumn"].Controls[0];

 

chkbx.AutoPostBack =

 

true;

 

chkbx.Attributes.Add(

 

"OnClick", "return alert('" + chkbx.Checked + "');");

 

}



But every time, the value is displayed as false after I check the box.  I just want to get the value of the checkbox after it is selected.


Eyup
Telerik team
 answered on 17 May 2019
3 answers
243 views
I have a RadWizard that I would like to have a "loading" function on, when user clicks on "Next" button. However, it only works on the first click. All subsequent clicks on "next" show no loading from the RadAjaxLoadingPanel.
Rumen
Telerik team
 answered on 17 May 2019
6 answers
275 views
Hi,

Is it impossible to add  two or more GridClientSelectColumn to the Grid?

I want to make grid in witch will be:
Column1(name), Column2(GridClientSelectColumn), Column3(GridClientSelectColumn), ...

I have created this grid but I have one problem:
When  I select a column grid select all columns

 <telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="SqlDataSource1"  
            GridLines="None" AllowMultiRowSelection="True"
            <ClientSettings> 
                <Selecting AllowRowSelect = "true" /> 
            </ClientSettings> 
            <MasterTableView datasourceid="SqlDataSource1" AutoGenerateColumns = "false"
                <Columns> 
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name"  
                        SortExpression="Name" UniqueName="Name"
                    </telerik:GridBoundColumn> 
                    <telerik:GridClientSelectColumn UniqueName="CheckboxSelectColumn1" HeaderText="CheckboxSelect column1 <br />" /> 
                    <telerik:GridClientSelectColumn UniqueName="CheckboxSelectColumn2" HeaderText="CheckboxSelect column2 <br />" /> 
                </Columns> 
            </MasterTableView> 
        </telerik:RadGrid> 

Can anyone help me, I'll be grateful
Antony
Top achievements
Rank 1
 answered on 17 May 2019
1 answer
501 views

I have the followig RadGrid

<telerik:RadGrid ID="RadGrid1" OnInit="RadGrid1_Init" runat="server" AllowPaging="True" AutoGenerateColumns="False"
        OnNeedDataSource="RadGrid1_NeedDataSource" PageSize="30"
        OnItemDataBound="RadGrid1_ItemDataBound" AllowMultiRowEdit="True"
        RenderMode="Lightweight"
        OnPreRender="RadGrid1_PreRender"
        CssClass="RadGrid_ModernBrowsers"
        OnBatchEditCommand="RadGrid1_BatchEditCommand"
        HorizontalAlign="Center" Height="740px" OnItemCreated="RadGrid1_ItemCreated" Skin="Simple" OnColumnCreating="RadGrid1_ColumnCreating" AllowFilteringByColumn="True" OnItemCommand="RadGrid1_ItemCommand" AllowSorting="True" OnBiffExporting="RadGrid1_BiffExporting">
        <GroupingSettings CollapseAllTooltip="Collapse all groups" CaseSensitive="false"></GroupingSettings>
        <MasterTableView CommandItemDisplay="Bottom" CommandItemStyle-Font-Size="10" DataKeyNames="ID_Trafo_2D" EditMode="Batch" BatchEditingSettings-EditType="Row" Font-Names="Calibri" Font-Size="8" TableLayout="Fixed">
            <ColumnGroups>
                <...>
            </ColumnGroups>
            <CommandItemSettings ShowCancelChangesButton="True"
                ShowSaveChangesButton="True"/>
            <Columns>
                <telerik:GridBoundColumn DataField="ID_Trafo_2D"
                    FilterControlAltText="Filter column column" HeaderText="Trafo 2D ID"
                    UniqueName="column" ReadOnly="True" ColumnGroupName="InformacionBasica" HeaderStyle-Font-Size="10" FilterControlWidth="70%">
                    <HeaderStyle Font-Size="10pt" Wrap="False" Width="80px" HorizontalAlign="Center"
                        BackColor="#CCCCCC"></HeaderStyle>
                    <ItemStyle Wrap="True" HorizontalAlign="Center" />
                </telerik:GridBoundColumn>
                <telerik:GridTemplateColumn
                    HeaderText="Conexion1 ID" FilterControlAltText="Filter TemplateColumn1 column" UniqueName="ID_T2D_Conexion1" DataField="NombreConexion" ColumnGroupName="Caracteristicas" HeaderStyle-Font-Size="10" AutoPostBackOnFilter="false" ShowFilterIcon="true">
                    <EditItemTemplate>
                        <telerik:RadButton ID="RadButton1" runat="server" OnClientClicked="openRadWindowConexion1" Width="120%" AutoPostBack="False" Text='Editar Conexión'>
                            <Icon PrimaryIconUrl="~/Resources/EditIcon18x18.png" PrimaryIconTop="2px" PrimaryIconLeft="2px" PrimaryIconWidth="18px" PrimaryIconHeight="18px" />
                        </telerik:RadButton>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <%# Eval("NombreConexion")%>
                    </ItemTemplate>
                    <HeaderStyle BackColor="#DDEBF7" />
                    <ItemStyle Wrap="False" />
                </telerik:GridTemplateColumn>
                <telerik:GridBoundColumn FilterControlAltText="Filter column4 column"
                    HeaderText="Nombre" FilterControlWidth="70%" UniqueName="column4" DataField="Trafo2DNombre" ColumnGroupName="DescripcionTransformadores2D" HeaderStyle-Font-Size="10" AutoPostBackOnFilter="false" ShowFilterIcon="true">
                    <ColumnValidationSettings EnableRequiredFieldValidation="True">
                        <RequiredFieldValidator ForeColor="#FF3300" ToolTip="Campo Obligatorio">(*)</RequiredFieldValidator>
                    </ColumnValidationSettings>
                    <HeaderStyle Font-Size="10pt" BackColor="#E8FFEA"></HeaderStyle>
                    <ItemStyle Wrap="False" />
                </telerik:GridBoundColumn>
            </Columns>
            <BatchEditingSettings EditType="Row"></BatchEditingSettings>
            <CommandItemStyle Font-Size="10pt"></CommandItemStyle>
        </MasterTableView>
        <ClientSettings>
            <Scrolling AllowScroll="True" UseStaticHeaders="True" />
            <Resizing AllowColumnResize="true" ResizeGridOnColumnResize="true" AllowResizeToFit="true" />
            <ClientEvents OnBatchEditOpening="OnBatchEditOpening" />
        </ClientSettings>
        <PagerStyle PageSizes="15;30;90;150;300" Position="Bottom" />
        <FilterMenu RenderMode="Lightweight"></FilterMenu>
        <HeaderContextMenu RenderMode="Lightweight"></HeaderContextMenu>
    </telerik:RadGrid>

 

When a user wants to add a new row, he has to select a name ("Nombre") and a connection ("Conexion") from a window that pops up and assigns the selected connection to the selected cell. I can validate the name using the built-in validator for BoundColumns, however, I haven't found a way to validate the Eval("NombreConexion") that is on the ItemTemplate of the GridTemplateColumn so that it is not an empty value (some users forget to assign a connection).

Is there any way of doing this? I can't use a FieldValidator because the Eval field is not a control and if I try to transform it into a radlabel I just get errors.

Thank you.

 

Eyup
Telerik team
 answered on 17 May 2019
1 answer
120 views

Hi,

I have a RadGrid with a radcombobox for the filter template. In the ASPX code I have the following:

 

<telerik:GridTemplateColumn DataField="ID_Tipo" UniqueName="ID_Tipo" <br>  
HeaderText="Tipo Usuario" DataType="System.string" FilterControlWidth="150px" <br>                        SortExpression= "ID_Tipo"
<br>                        GroupByExpression="TipoUsuario Group by TipoUsuario"><br>                            <ItemTemplate><br>
                                <%#DataBinder.Eval(Container.DataItem, "TipoUsuario")%><br>                            </ItemTemplate><br
<FilterTemplate><br
<telerik:RadComboBox ID="RCB_Filtro"<br>                                    Height="200px"<br>                                    OnClientSelectedIndexChanged="TipoUsuarioIndexChanged"<br>                                    DataSourceID="SqlDataSource1"<br>                                   
EnableAutomaticLoadOnDemand="True"<br>
CurrentFilterFunction="Contains" <br>                                    AutoPostBackOnFilter="True"<br>                                   
AppendDataBoundItems="true"<br>  
SelectedValue='<%# TryCast(Container, GridItem).OwnerTableView.GetColumn("Id_Tipo").CurrentFilterValue %>'<br>                                   
DataTextField="TipoUsuario"
DataValueField="ID_tipoUsuario"<br>                                   
runat="server" <br>                                   
EnableLoadOnDemand="True"><br>             
<Items><br>                                    
    <telerik:RadComboBoxItem Text="Todos" Value="" /><br>                                   </Items><br>                               
</telerik:RadComboBox><br>                           
<telerik:RadScriptBlock ID="RadScriptBlock3" runat="server"><br>                               
<script type="text/javascript"><br>                                   
function TipoUsuarioIndexChanged(sender, args) {<br>                                  
var tableView = $find("<%# TryCast(Container, GridItem).OwnerTableView.ClientID %>");<br>                                   
if (args.get_item().get_value() == "Todos") { tableView.filter("ID_Tipo", args.get_item().get_value(), "NoFilter");<br>                                    }<br>                                   
else {<br>                                  
tableView.filter("ID_Tipo", args.get_item().get_value(), "EqualTo");<br>                                 }<br>                           } <br>                                       
</script><br>                           
</telerik:RadScriptBlock><br>                       
</FilterTemplate>

 

The radcombobox has an associated SQlDataSource:

 

<asp:SqlDataSource <br>        runat="server"<br>        ID="SqlDataSource1"<br>        ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"<br>        ProviderName="System.Data.SqlClient" SelectCommand="SELECT [ID_tipoUsuario], [TipoUsuario] from [Tipos_usuario] ORDER By [TipoUsuario]"><br>    </asp:SqlDataSource>

 

But when I run the application, only the "All" item appears in the radcombobox. And when the "All" item is removed from the selection window, then the elements of the table are also loaded.

In the VB module there is no action defined for RadGrid_ItemDataBound or RadGrid_ItemCreated, since the load is done by SQLDataSource.

 

You can help me to see what is wrong or what I lack in the radcomobox definition. Thank you

TomShelby
Top achievements
Rank 1
 answered on 17 May 2019
4 answers
1.1K+ views

I have a simple grid that allows the user to add new contacts. Certain need to be pre-populated and set to read only so the user cannot change then.

 

I've tried using <telerik:GridBoundColumn DataField="STATUS" HeaderText="Status" ReadOnly="true"/> but this hides the column when you try to add a new contact. I've tried various different way to render the column as read only including using a prerender function and attempting to set the read only status using javascript but i'm struggling to find the correct syntax for it.

 

My full code:

 

<telerik:RadGrid RenderMode="Lightweight" runat="server" ID="RadGridContats" AutoGenerateColumns="false" AllowPaging="true"
                        OnNeedDataSource="RadGridContats_NeedDataSource" OnUpdateCommand="RadGridContats_UpdateCommand"
                        OnInsertCommand="RadGridContats_InsertCommand" >
                        <MasterTableView DataKeyNames="ContactID" CommandItemDisplay="Top" InsertItemPageIndexAction="ShowItemOnCurrentPage">
                            <CommandItemSettings AddNewRecordText="Add Contact" />
                            <Columns>
                                <telerik:GridEditCommandColumn />
                                <telerik:GridBoundColumn DataField="ContactID" HeaderText="ID" ReadOnly="true" Visible="false"
                                    ForceExtractValue="Always" ConvertEmptyStringToNull="true" />
                                <telerik:GridBoundColumn DataField="Firstname" HeaderText="First Name">
                                <ColumnValidationSettings EnableRequiredFieldValidation="true" >
                                <RequiredFieldValidator ForeColor="Red" ErrorMessage="  Please enter a first name"></RequiredFieldValidator>
                                </ColumnValidationSettings></telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="Lastname" HeaderText="Last Name">
                                 <ColumnValidationSettings EnableRequiredFieldValidation="true" >
                                <RequiredFieldValidator ForeColor="Red" ErrorMessage="  Please enter a last name"></RequiredFieldValidator>
                                </ColumnValidationSettings></telerik:GridBoundColumn>   
                                <telerik:GridBoundColumn DataField="Email" HeaderText="Email">
                                <ColumnValidationSettings EnableRequiredFieldValidation="true" >
                                <RequiredFieldValidator ForeColor="Red" ErrorMessage="  Enter a valid email address"></RequiredFieldValidator>
                                </ColumnValidationSettings></telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="Workphone" HeaderText="Phone" />
                                <telerik:GridBoundColumn DataField="Title" HeaderText="Title" />
                                <telerik:GridBoundColumn DataField="Status" HeaderText="Status" ReadOnly="true"/>
                                <%--<telerik:GridButtonColumn HeaderStyle-Width="20px" Text="&lt;img src=/_layouts/15/Styles/LeadGen/images/deactivate4.png border=0 align=absmiddle alt='Select this Item'&gt;" CommandName="Select"></telerik:GridButtonColumn>--%>
                            </Columns>
                        </MasterTableView>
                        <PagerStyle Mode="NextPrevAndNumeric" />
                    </telerik:RadGrid>

 

Any help is greatly appreciated.

Attila Antal
Telerik team
 answered on 17 May 2019
7 answers
1.0K+ views
Hi,

My project involves displaying products in RadGrid. I would like to reorder rows using RadGrid's drag and drop feature wherein after reordering the row, the order should be autosaved to the database.

Is this possible and if yes, then how? I'm looking for the code on an urgent basis. Any help on this is highly appreciated.

Many thanks,
Ritika
Vessy
Telerik team
 answered on 17 May 2019
Narrow your results
Selected tags
Tags
+? more
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?