C # как получить доступ к кнопкам Telerik RadGrid

#c#

#c#

Вопрос:

Я использую Telerik RadGrid, я добавляю новую кнопку в сетку, но как я могу написать событие для этой кнопки (Купить), например, когда пользователь нажимает (Купить), он добавит этот товар в свою корзину с указанием его цены, чтобы рассчитать его счет. с уважением

Ответ №1:

Вам нужно прослушать событие ItemCommand:

 <telerik:GridButtonColumn UniqueName="Buy" ButtonType="LinkButton" 
    Text="Buy" ConfirmText="Add to cart?" 
    OnItemCommand="rg_ItemCommand" CommandName="AddToBasket" />
  

В вашем коде за

 protected void rg_ItemCommand(object sender, GridCommandEventArgs e)
{
    if(e.CommandName == "AddToBasket")
    {
        // Add to basket code here
    }
}
  

Вам также может потребоваться установить значение CommandArgument во время событий ItemCreated или ItemDatabound или получить его, используя что-то вроде rg.MasterTableView.DataKeyValues[e.Item.Index]["ItemId"].ToString(); after setting ClientDataKeyNames="ItemId" в части настроек MasterTableView в файле ascx (если он привязан к данным).

Комментарии:

1. это так просто, великий человек, мне нравятся эти прямые ответы, специально для начинающих (вроде меня) спасибо

2. Моя дорогая, я должен задать тебе еще один вопрос? как я могу получить доступ к другим элементам управления, таким как: выпадающий список, флажок или радиокнопки??

3. Ну, это зависит от того, где находится элемент управления (т. е. в столбце, в строке RadGrid?). Отправьте другой вопрос с подробной информацией о том, чего вы хотите достичь, укажите URL в этих комментариях, и я постараюсь добраться до него 🙂

4. Мой друг, элемент управления находится в примере строки RadGrid, в каждой строке я добавил флажок (я не могу его установить, не знаю почему) и выпадающий список, так что у каждой строки есть свой собственный флажок и собственный выпадающий список. с уважением

5. Вероятно, вам будет намного проще создать новый пользовательский элемент управления и поместить в него все, что относится к строке RadGrid. Затем в событии ItemDataBound вашего RadGrid задайте какое-либо свойство Usercontrol, которое идентифицирует объект или строку, которые вы редактируете (например, это первичный ключ БД или что-то в этом роде). В демонстрационных версиях есть довольно хороший пример. telerik.com/aspnet-ajax/grid/examples/dataediting /… . Кроме того, форумы Telerik действительно хороши, если вы застряли. В прошлом я получал от них хорошие ответы. Удачи!

Ответ №2:

Вам нужно использовать ItemCommandEvent из grid. Событие ItemCommand возникает при нажатии кнопки в элементе управления Telerik RadGrid. Это позволяет вам предоставить метод обработки событий, который выполняет пользовательскую процедуру всякий раз, когда происходит это событие. Перейдите по ССЫЛКЕ, чтобы получить более подробную информацию.

Ответ №3:

Когда вы создадите кнопку, вы захотите добавить к ней событие OnClick для обработки нажатия на кнопку. В этом случае вы добавите товар в корзину. Вам нужно проанализировать родительскую строку кнопки, чтобы узнать, к какому элементу она относится.

Редактировать:
Поскольку вы используете GridButtonColumn, а не добавляете кнопку, как вы указали, тогда это применяется вместо (из Telerik.com ):

В этом столбце отображается кнопка указанного типа buttonType в каждой соответствующей ячейке элементов типа GridDataItem и GridEditFormItem. Вы можете использовать эти кнопки для запуска командных событий, которые могут быть обработаны в RadGrid.Обработчик событий ItemCommand. Это, в сочетании с механизмом обработки событий в Telerik RadGrid, позволяет создать столбец пользовательских элементов управления кнопками, таких как добавление, удаление, выбор или редактирование кнопок.

Итак, по сути, вам нужно будет использовать событие grids ItemCommand для обработки нажатия кнопки.

Комментарии:

1. чувак, в GridButtonColumn нет события <telerik:GridButtonColumn Уникальное имя=»Купить» buttonType=»LinkButton» Text=»Купить» ConfirmText =»Добавить в корзину?»></telerik:GridButtonColumn>