Вопрос

Я добавил RadControl, RadGrid и мне нужно добавить RadComboBox в режиме редактирования.

Когда пользователь нажимает на RadComboBox, мне нужно получить как "текст", так и "значение" RadComboBox для сохранения в таблице, когда пользователь обновляет значения.

<telerik:RadComboBox ID="RadComboBox1" Runat="server" 
             DataSourceID="SqlDataSource1" DataTextField="docCategoryName" 
             DataValueField="docCategoryID" Height="200px" Skin="Vista">

Когда пользователь выбирает из RadComboBox, мне нужно получить значение DataTextField & DataValueField в HiddenField.

Это было полезно?

Решение

Подход, описанный Program.X, очень хорош.Это, конечно, работает, если вы используете RadComboBox внутри GridTemplateColumn в RadGrid.

RadGrid также предоставляет встроенный GridDropDownColumn это может автоматически отображать RadComboBox во время редактирования.Если вы решите использовать встроенный тип столбца, вам необходимо программно настроить обработчики событий на стороне клиента для отображаемой RadGrid, например:

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";
    }
}

Где "onselectedindexchanged" - это имя клиентской функции JavaScript на вашей странице, предназначенной для обработки события RadComboBox.

Любой из этих подходов должен позволить вам достичь своей цели.

Другие советы

Telerik - лучшие люди, которые помогут вам в этом, но со своего сайта (и по памяти):

http://www.telerik.com/help/aspnet-ajax/combo_clientsideonclientselectedindexchanged.html

Если у вас есть свой рэдКомбо:

<telerik:RadComboBox
 ID="RadComboBox1"
 runat="server"
 OnClientSelectedIndexChanged="OnClientSelectedIndexChanged">
</telerik:RadComboBox> 

С вашим событием 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>

Где HiddenField - это идентификатор скрытого поля.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top