Adicionando RadCombobox à edição RadGrid
-
16-09-2019 - |
Pergunta
Eu adicionei um RadControl, RadGrid e preciso adicionar um Radcombobox no modo de edição.
Quando o usuário clica no Radcombobox, preciso obter "texto" e "valor" do RadCombobox para salvar na tabela quando o usuário atualizar valores.
<telerik:RadComboBox ID="RadComboBox1" Runat="server"
DataSourceID="SqlDataSource1" DataTextField="docCategoryName"
DataValueField="docCategoryID" Height="200px" Skin="Vista">
Quando o usuário seleciona no RadCombobox, preciso obter o valor do Datatextfield & DataValueField em um campo oculto.
Solução
A abordagem descrita pelo Program.x é muito boa. Isso, é claro, funciona se você estiver usando um Radcombobox dentro de um gridtemplatecolumn no radGrid.
RadGrid também fornece um embutido GridDropDownColumn
Isso pode renderizar automaticamente um Radcombobox durante as edições. Se você optar por usar o tipo de coluna embutido, precisará definir programaticamente os manipuladores de eventos do lado do cliente para o RadGrid renderizado, assim:
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";
}
}
Onde "OnSelectedIndexChanged" é o nome de uma função JavaScript do lado do cliente na sua página projetada para lidar com o evento Radcombobox.
Qualquer uma dessas abordagens deve permitir que você atinja seu objetivo.
Outras dicas
Telerik são as melhores pessoas para ajudá -lo com isso, mas no site deles (e da memória):
http://www.telerik.com/help/aspnet-ajax/combo_clientOnClientElectedIndexchanged.html
Se você tiver seu Radcombbo:
<telerik:RadComboBox
ID="RadComboBox1"
runat="server"
OnClientSelectedIndexChanged="OnClientSelectedIndexChanged">
</telerik:RadComboBox>
Com seu 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>
Onde Hiddenfield é o ID do campo oculto.