Отключите ajax для элемента управления imagebutton внутри GridTemplateColumn ajaxified RadGrid - PullRequest
1 голос
/ 17 октября 2011

В ajaxified RadGrid я хочу, чтобы две кнопки вызывали обратную передачу (обход Ajax) и выполняли некоторый внутренний код.Вот что у меня есть ...

Кнопки (просто показываю одну для простоты):

<telerik:GridTemplateColumn HeaderText="Actions">  
    <ItemTemplate>
        <asp:ImageButton ID="btnEdit" runat="server" OnClientClick="realPostBack();"  ImageUrl="~/images/icon_edit.png" style="display: inline-block" ToolTip="Edit" CommandName="fbEdit"  />
    </ItemTemplate>
</telerik:GridTemplateColumn>   

Функция Javascript, которую я использую для отключения обратной передачи:

<script type="text/javascript">
  function realPostBack(eventTarget, eventArgument) {
    $find("<%= RadAjaxPanel1.ClientID %>").__doPostBack(eventTarget, eventArgument);
  }

Кодовый код, который я хочу выполнить:

protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
 if (e.CommandName == "fbEdit")
  {
    //grab variables from row's cells
   string userID = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["UserID"];
   string userName= e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["UserName"];
   string userEmail = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["UserEmail"];

   //DO SOME PROCESSING STUFF

  }
   if(e.CommandName == "fbDelete")
    {
       //delete record
     }
  }

Итак, обратная запись действительно происходит, но мой код никогда не срабатывает.Я предполагаю, что это связано с тем, что событие привязано к сетке, а не к кнопкам, которые я «неясифицируем», но я пошел по этому пути, потому что мне НУЖНО зафиксировать значения некоторых ячеек в строке, по которой была нажата кнопка.

Может быть, я могу переделать это, чтобы использовать кнопки onClick Event, но мне все равно нужно было бы захватить эти значения.

Может кто-нибудь помочь?

Ответы [ 2 ]

1 голос
/ 18 июля 2012

В вам необходимо добавить ниже код в PageLoad Event.

 if (!IsPostBack)
 {
     RadGridName.Rebind();
 }

Вот и все.

1 голос
/ 18 октября 2011

Судя по тому, что вы пытаетесь выполнить код в событии OnItemCommand в RadGrid, кажется, что вы можете усложнить задачу.Почему бы не использовать GridButtonColumn , установить ButtonType на ImageButton , а затем установить то же самое CommandName , как вы делали выше?Пока вы подписываетесь на событие OnItemCommand, это должно запускать все для вызова, и ваша условная проверка для e.CommandName == "fbEdit" также должна быть выполнена.

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

...