在ajaxified RadGrid的GridTemplateColumn中禁用ajax for imagebutton控件

时间:2011-10-17 17:03:22

标签: c# asp.net telerik telerik-grid radgrid

在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
     }
  }

所以回帖确实发生了,但我的代码永远不会发生。我猜这是因为事件与网格有关,而不是按钮“un-ajaxifying”,但我这样做是因为我需要捕获单击按钮的行中某些单元格的值。

也许我可以重做这个来使用onClick事件上的按钮,但我仍然需要捕获这些值。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

从你试图在RadGrid的OnItemCommand事件中执行代码的事物来看,但似乎你可能会让事情变得有些过于复杂。为什么不使用 GridButtonColumn ,将 ButtonType 设置为 ImageButton ,然后像上面那样设置相同的 CommandName ?只要您订阅了OnItemCommand事件,就应该触发所有要调用的内容,并且还应该检查e.CommandName == "fbEdit"的条件检查。

有关如何使用此RadGrid特定列(以类似方式)的示例,您可以查看this demo

答案 1 :(得分:1)

您需要在页面加载事件中添加以下代码。

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

就是这样。