Adición de RadComboBox a RadGrid Editar
-
16-09-2019 - |
Pregunta
He añadido un RadControl, RadGrid y tengo que añadir un radComboBox en el modo de edición.
Cuando el usuario hace clic en el radComboBox, necesito conseguir tanto "texto" y el "valor" de la radComboBox para salvar a la mesa cuando los valores de actualizaciones de usuario.
<telerik:RadComboBox ID="RadComboBox1" Runat="server"
DataSourceID="SqlDataSource1" DataTextField="docCategoryName"
DataValueField="docCategoryID" Height="200px" Skin="Vista">
Cuando el usuario selecciona desde el radComboBox, que necesito para obtener el valor de DataTextField y DataValueField en un HiddenField.
Solución
El enfoque descrito por Program.X es muy bueno. Esto, por supuesto, funciona si estás usando un RadCombobox en el interior de un GridTemplateColumn en RadGrid.
RadGrid también proporciona un sistema incorporado en GridDropDownColumn
, que puede hacer automáticamente una RadCombobox durante las ediciones. Si decide utilizar el tipo de columna incorporado, es necesario configurar los controladores de eventos mediante programación del lado del cliente para el RadGrid prestados, así:
protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
//Find GridEditableItems when in Edit mode
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
//Get reference to item (i.e. Row)
var item = e.Item as GridEditableItem;
//Get reference to auto-generated RadCombobox in
//specific column (in this case, a column called Title)
var rcb = item["Title"].Controls[0] as RadComboBox;
if (rcb == null)
return;
//Customize the RadCombobox properities
rcb.OnClientSelectedIndexChanged = "onselectedindexchanged";
}
}
Donde "OnSelectedIndexChanged" es el nombre de un lado del cliente de JavaScript en su página diseñada para controlar el evento RadCombobox.
Cualquiera de estos enfoques debe permitirle alcanzar su objetivo.
Otros consejos
Telerik son las mejores personas para ayudarle con esto, pero a partir de su sitio (y de la memoria):
http://www.telerik.com/help/aspnet-ajax /combo_clientsideonclientselectedindexchanged.html
Si usted tiene su radCombo:
<telerik:RadComboBox
ID="RadComboBox1"
runat="server"
OnClientSelectedIndexChanged="OnClientSelectedIndexChanged">
</telerik:RadComboBox>
Con su evento JS:
<script language="javascript" type="text/javascript">
function OnClientSelectedIndexChanged(sender, eventArgs)
{
var item = eventArgs.get_item();
// get the text and value elements
var text=item.get_text();
var val=item.get_value();
$('#hiddenField').val(val);
}
</script>
Cuando HiddenField es el ID del campo oculto.