| <%@ Page Language="C#" AutoEventWireup="true" CodeFile="HiddenRadGridTest.aspx.cs" Inherits="HiddenRadGridTest" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" > |
| <head runat="server"> |
| <title>Untitled Page</title> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <asp:ScriptManager ID="ScriptManager1" runat="server"> |
| </asp:ScriptManager> |
| <div> |
| <br /> |
| <asp:UpdatePanel ID="UpdatePanel1" runat="server"> |
| <ContentTemplate> |
| <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> |
| <telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="dsTest" GridLines="None" |
| Visible="False"> |
| <ExportSettings> |
| <Pdf FontType="Subset" PaperSize="Letter" /> |
| <Excel Format="Html" /> |
| </ExportSettings> |
| <MasterTableView AutoGenerateColumns="False" CommandItemDisplay="None" CurrentResetPageIndexAction="SetPageIndexToFirst" |
| DataKeyNames="CustomerID" DataSourceID="dsTest" Dir="LTR" Frame="Border" TableLayout="Auto"> |
| <EditFormSettings> |
| <EditColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType"> |
| </EditColumn> |
| </EditFormSettings> |
| <Columns> |
| <telerik:GridBoundColumn CurrentFilterFunction="NoFilter" DataField="CustomerID" |
| FilterListOptions="VaryByDataType" ForceExtractValue="None" HeaderText="CustomerID" |
| ReadOnly="True" SortExpression="CustomerID" UniqueName="CustomerID"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn CurrentFilterFunction="NoFilter" DataField="CustomerName" |
| FilterListOptions="VaryByDataType" ForceExtractValue="None" HeaderText="CustomerName" |
| SortExpression="CustomerName" UniqueName="CustomerName"> |
| </telerik:GridBoundColumn> |
| </Columns> |
| <ExpandCollapseColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" |
| Resizable="False" Visible="False"> |
| <HeaderStyle Width="20px" /> |
| </ExpandCollapseColumn> |
| <RowIndicatorColumn CurrentFilterFunction="NoFilter" FilterListOptions="VaryByDataType" |
| Visible="False"> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| </MasterTableView> |
| </telerik:RadGrid><br /> |
| <asp:SqlDataSource ID="dsTest" runat="server" ConnectionString="<%$ ConnectionStrings:XXX_ConnectionString %>" |
| SelectCommand="SELECT * FROM [MyTable]"></asp:SqlDataSource> |
| </ContentTemplate> |
| </asp:UpdatePanel> |
| </div> |
| </form> |
| </body> |
| </html> |
| using System; |
| using System.Data; |
| using System.Configuration; |
| using System.Collections; |
| using System.Web; |
| using System.Web.Security; |
| using System.Web.UI; |
| using System.Web.UI.WebControls; |
| using System.Web.UI.WebControls.WebParts; |
| using System.Web.UI.HtmlControls; |
| public partial class HiddenRadGridTest : System.Web.UI.Page |
| { |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| } |
| protected void Button1_Click(object sender, EventArgs e) |
| { |
| Button1.Visible = false; |
| RadGrid1.Visible = true; |
| } |
| } |
<telerik:RadComboBox ID="MRLieu" runat="server" AllowCustomText="true" ItemRequestTimeout="1000" Filter="Contains" ShowDropDownOnTextboxClick="false" MinFilterLength="2" EnableLoadOnDemand="true" EnableVirtualScrolling="true" ShowToggleImage="false" OnClientFocus="ChangeOu" OnClientItemsRequesting="OnClientItemsRequesting"> <webservicesettings method="GetLieu" path="~/Utils/WebService/Utils.asmx" /></telerik:RadComboBox>function OnClientItemsRequesting(sender, eventArgs) { var context = eventArgs.get_context(); context["coffret"] = "16";}function ChangeOu(sender) { var lieu = $find("MRech_MRLieu"); lieu.clearSelection(); lieu.clearItems(); }[WebMethod][ScriptMethod]public RadComboBoxItemData[] GetLieu(object context){ IDictionary<string, object> contextDictionary = (IDictionary<string, object>)context; string txt = contextDictionary["Text"].ToString(); int coffret = Convert.ToInt32(contextDictionary["coffret"]); txt = txt.Replace("'", " "); txt = txt.Replace("\"", " "); txt = string.Concat("\"", txt, "*\""); string sql = @"MyRequest"; ConnexionUtil cnnUtil = new ConnexionUtil(); DataTable data = cnnUtil.ExecuteRequeteDataTable(sql); int itemOffset = Convert.ToInt32(contextDictionary["NumberOfItems"]); int endOffset = Math.Min(itemOffset + NBITEMS, data.Rows.Count); List<RadComboBoxItemData> result = new List<RadComboBoxItemData>(); RadComboBoxItemData itemData; for (int i = itemOffset; i < endOffset; i++) { itemData = new RadComboBoxItemData(); itemData.Text = data.Rows[i]["nom"].ToString(); itemData.Value = data.Rows[i]["id"].ToString(); result.Add(itemData); } data.Dispose(); cnnUtil.Dispose(); return result.ToArray();}
protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e)
{
// rg is the RadGrid
if (rg != null)
{
if (e.Argument == string.Empty)
{
rg.Rebind();
}
string[] editedItemIds = e.Argument.Split(':');
int i;
for (i = 0; i <= editedItemIds.Length - 2; i++)
{
try
{
Guid itemId = Guid.Parse(editedItemIds[i]);
//This is the row that give the problem
GridDataItem updatedItem = rg.MasterTableView.FindItemByKeyValue("ArticoloId", itemId);
UpdateValues(itemId, updatedItem);
}
catch
{
}
}
rg.Rebind();
}
}
As told before the rg.MasterTableView.Items collection is empty and so the method "FindItemByKeyValue" does not never return any value.
I follow your example at
http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/clienteditbatchupdates/defaultcs.aspx
Your help will be much appreciated.
Thanks in advance.