Как вызвать команду рад сетки - PullRequest
2 голосов
/ 06 декабря 2011

у меня есть сетка рад со следующим кодом

 <telerik:GridTemplateColumn>
   <ItemTemplate>
   <asp:LinkButton ID="Delete" Text="Remove &raquo" 
    CommandArgument='<%# Eval("ApartmentId") %>'
     CommandName="RemoveItem" CssClass="Button" runat="server" />
      </ItemTemplate>
   </telerik:GridTemplateColumn>

и кодом .CS следующим образом

protected void radGrid_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Page")
    {
    }
    else
    {
        if (e.CommandName == "RemoveItem")
        {
           Apartments apartAdmin = new Apartment();
           bool deleted = apartAdmin.Delete(int.Parse(e.CommandArgument.ToString()); 
            if (deleted)
            {
                radGrid.Rebind();
            }
        }
    }
}

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

 <telerik:RadGrid ID="radGrid" ShowFooter="true" ShowHeader="true" CaptionAlign="Left"
  runat="server" ForeColor="Black" CellPadding="4" AutoGenerateColumns="False"
  CssClass="Grid" Width="100%" GridLines="None" OnRowCommand="radGrid_RowCommand"
  OnNeedDataSource="radGrid_NeedDataSource" AllowPaging="True" AllowSorting="true">
  <MasterTableView DataKeyNames="ApartmentID,ApartmentTypeID">
      <CommandItemSettings ShowRefreshButton="true" ShowAddNewRecordButton="false" />
          <Columns>
           <telerik:GridTemplateColumn>
       <ItemTemplate>
       <asp:LinkButton ID="Delete" Text="Remove &raquo" 
        CommandArgument='<%# Eval("ApartmentId") %>'
         CommandName="RemoveItem" CssClass="Button" runat="server" />
          </ItemTemplate>
       </telerik:GridTemplateColumn>
        </Columns>
          <NoRecordsTemplate>
            No related items found</NoRecordsTemplate>
       </MasterTableView>
                    <FooterStyle CssClass="FooterStyle" />
                    <ItemStyle CssClass="RowStyle" />
                    <HeaderStyle CssClass="HeaderStyle" />
                    <AlternatingItemStyle CssClass="AlternatingRowStyle" />
                    <PagerStyle CssClass="PagerStyle" FirstPageText="First" LastPageText="Last" Mode="NextPrevAndNumeric"
                        AlwaysVisible="true" />
                </telerik:RadGrid>

1 Ответ

6 голосов
/ 06 декабря 2011

У вас есть кнопка ссылки внутри шаблона элемента, добавьте обработчик для OnClick на самой кнопке ссылки, и событие обязательно будет запущено.

Например:

protected void LinkButton1_Click(Object sender, EventArgs   
 {
         LinkButton button = sender as LinkButton;
          Apartments apartAdmin = new Apartment();
           bool deleted = apartAdmin.Delete(int.Parse(button.CommandArgument.ToString()); 
            if (deleted)
            {
                radGrid.Rebind();
            }

 }
...