Telerik - кнопка с изображением внутри строки сетки, получающая значение первой ячейки - PullRequest
4 голосов
/ 14 октября 2011

У меня есть RadGrid, который содержит столбец шаблона, в который я поместил две кнопки с изображениями для действий редактирования и удаления.

<telerik:GridTemplateColumn HeaderText="Actions">    
   <ItemTemplate>
     <asp:ImageButton ID="btnEdit" runat="server"  ImageUrl="~/images/icon_edit.png" style="display: inline-block" ToolTip="Edit"  />&nbsp;&nbsp;&nbsp;<asp:ImageButton ID="btnDelete" runat="server" ImageUrl="~/images/icon_delete.png" style="display: inline-block" ToolTip="Delete" />
      </ItemTemplate>
</telerik:GridTemplateColumn>

Как получить значение первой ячейки строки (поле данных= "User_ID") когда я нажимаю кнопку "удалить"?

Ответы [ 2 ]

7 голосов
/ 15 октября 2011

Шаг 1.

Перейдите к самой Radgrid и отредактируйте поле DataKeyNames = "" (в MasterTableView) и добавьте поле данных, которое вы извлекаете:

<MasterTableView ... DataKeyNames="User_ID">

Шаг 2. Отредактируйте свойство CommandName = "" кнопок Image, расположенных в сетке:

 <asp:ImageButton ID="btnDelete" runat="server" style="display: inline-block" ToolTip="Delete" CommandName="dosomething"/>

Создайте следующий метод для вашей Radgrid и добавьте этот код:

protected void RadGrid1_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
   if (e.CommandName == "dosomething")
    {
        //Use a line of code here to save that User_ID that you want from the first column
        theUserId = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["User_ID"];
    }
}

Убедитесь, что theUserId = тот же Введите (int, double, dec ...) как поле, из которого оно извлекается, или вам придется его проанализировать:

theUserId = Int.Parse(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["User_ID"]);

Дайте мне знать, если вам нужна дополнительная помощь.

2 голосов
/ 15 октября 2011

Пожалуйста, проверьте ниже фрагмент кода.

   <MasterTableView  DataKeyNames="ID">

<Columns>
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name" UniqueName="Name">
                    </telerik:GridBoundColumn>
                    <telerik:GridTemplateColumn HeaderText="Actions">
                        <ItemTemplate>
                            <asp:Button ID="btnEdit" runat="server" ToolTip="Edit" CommandName="Edit" />&nbsp;&nbsp;&nbsp;<asp:Button
                                ID="btnDelete" runat="server" ToolTip="Delete" CommandName="Delete" />
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                </Columns>

.........................

protected void grdCompCliente_ItemCommand(object sender, GridCommandEventArgs e)
{
        if (e.CommandName == "Edit")
        {
            GridDataItem item = e.Item as GridDataItem;
            string ID = item.GetDataKeyValue("ID").ToString();
            string Name = item["Name"].Text;
        }
        else if (e.CommandName == "Delete")
        {
            GridDataItem item = e.Item as GridDataItem;
            string ID = item.GetDataKeyValue("ID").ToString();
            string Name = item["Name"].Text;
        }
}
...