2009-01-08 50 views
9

No tengo problemas al usar Javascript para leer las filas de un componente de teletransferencia telerik usando sin embargo parece que puedo encontrar de todos modos para acceder al servidor de datos de fila cuando se produce una devolución de datos. He pasado años buscando soluciones, pero no tuve suerte. Cualquier puntero sería muy apreciado.Acceso a los datos de filas en Telerik RadGrid (lado del servidor)

, Tony

+0

Es la rejilla editable? ¿O solo intentas obtener los datos en la grilla? –

Respuesta

16

Es posible que desee ver la propiedad del objeto DataKeyValues OwnerTableView, lo que le permitirá acceder a un conjunto de valores que representan los campos de una fila dada. Lo uso durante el controlador de eventos EditCommand, ya que un usuario de mi sitio se dirige a una página de edición si hace clic en el enlace para editar una fila en la cuadrícula, y tengo que pasar cierta información sobre la fila dada en la consulta cuerda.

Si esto resulta ser lo que necesita, también deberá definir qué campos deberían estar disponibles a través de esta propiedad. Para hacerlo, consulte la propiedad MasterTableView.DataKeyNames en la hoja de propiedades de la cuadrícula. Básicamente, especifica una lista de nombres de campo delimitada por comas.

+0

Hola Chris, gracias un molino por eso. Eso no funciona problema para los elementos vinculados a la red. ¿Sabes cómo acceder a los cuadros de texto agregados a una cuadrícula que no están vinculados pero se utilizan para atrapar cualquier entrada relacionada con una fila que un usuario puso para esa columna? Gracias, Tony – TonyNeallon

+0

Hasta ahora solo he tratado con columnas encuadernadas, pero revisa http : //www.telerik.com/help/aspnet/grid/gridreferencecontrolsinroweditform.html y http://www.telerik.com/help/aspnet/grid/grdusinggetitemesgetcolumnmethods.html, pueden ser útiles. –

3

el lado del servidor es la parte fácil:

GridItemCollection gridRows = TestGrid.Items; 
foreach (GridDataItem data in gridRows) 
{ 
    ItemClass obj = (ItemClass)data.DataItem; 
} 

Es la parte del lado del cliente que no sé! : [

+0

thx papi. Gran respuesta – neverwinter

5

que utilizan la red Telerik desde hace tiempo y encontró estos artículos en sus documentos sobre la forma de obtener los datos desde el servidor de filas seleccionado o del lado del cliente:

Server-side Client-side

esperamos que encuentre ellas servicial.

Dick

1
private Int32 GetID() 
{ 
    foreach (Telerik.Web.UI.GridDataItem dataItem in radGrid.MasterTableView.Items) 
    { 
     if (dataItem.Selected == true) 
     { 
      Int32 ID = (Int32)dataItem.GetDataKeyValue("ID"); 
      return ID; 
     } 
    } 
    throw new ArgumentNullException("Id Not found"); 
} 
0
private Int32 GetID() 
{ 
    foreach (Telerik.Web.UI.GridDataItem dataItem in radGrid.MasterTableView.Items) 
    { 
     if (dataItem.Selected == true) 
     { 
      // Int32 ID = (Int32)dataItem.GetDataKeyValue("ID"); 
Int32 ID =Convert.ToInt32(dataItem.GetDataKeyValue("ID")); 
      return ID; 
     } 
    } 

} 
//this will work 
0

Esta es la que funciona para mí y utiliza la colección RadGrid.SelectedItems.

protected void LinkButton1_Click(object sender, EventArgs e) 
    { 
     List<Guid> OrderIdList = new List<Guid>(); 

     foreach (GridDataItem OrderItem in this.RadGrid1.SelectedItems) 
     { 
      OrderIdList.Add(new Guid(OrderItem.GetDataKeyValue("OrderId").ToString())); 
     } 
    } 
0

Si creó correctamente sus controles en marcado o inicio de página para controles dinámicos, entonces RadGrid restaurará el estado correctamente.

Puede acceder a los valores iniciales que se cargaron desde la fuente de datos como en este ejemplo a continuación, siempre que haya indicado a la vista de tabla en cuestión que mantenga las columnas en las claves de datos.

protected T GetInitialGridData<T>(GridDataItem item, string uniqueColumnName) { 
    item.ThrowIfNull("item"); 
    uniqueColumnName.ThrowIfNullOrEmpty("uniqueColumnName"); 

    return (T)item.OwnerTableView.DataKeyValues(gridItem.ItemIndex)(columnName); 
} 

Si está utilizando una columna nueva plantilla dinámica, y la necesidad de llegar a todos los valores que pueden estar ahora en sus estados, puede utilizar:

protected string GetCustomTextBoxValue(GridDataItem item, string controlID) { 
    item.ThrowIfNull("item"); 
    controlID.ThrowIfNullOrTrimmedEmpty("controlID"); 

    return ((TextBox)item.FindControl(controlID)).Text; 
} 
Cuestiones relacionadas