2015-03-03 48 views
0

我正在嘗試創建一個Telerik網格,其中一列包含一個單擊它的按鈕執行特定操作。 這是ASP我網格的定義:OnItemCommand不適用於Telerik Grid

<sq:Grid runat="server" CssClass="Master" ID="ReportGrid" DataSourceID="WorkPackageDS" 
      CellSpacing="0" GridLines="None" PageSize="100" AllowSorting="True" OnItemCommand="CancelWorkPackage_OnItemCommand" 
      AllowCustomPaging="True" AutoGenerateColumns="False" EnableViewState="False"> 

這是我添加的按鈕:

<sq:GridTemplateColumn FilterImageToolTip="סינון" HeaderText="ביטול חבילת עבודה" UniqueName="btnCancelWO"> 
    <ItemTemplate> 
    <asp:ImageButton runat="server" ID="btnCancel" ImageUrl="~/Shared Resources/imaes/tasksButton.png" 
        CommandName="CancelWO" CssClass="GridImageButton"> 
    </asp:ImageButton> 
    </ItemTemplate> 
</sq:GridTemplateColumn> 

的「平方」只是東西在我的公司,但它意味着一個Telerik的對象。 這是函數的我的C#代碼:

public void CancelWorkPackage_OnItemCommand(object sender, GridCommandEventArgs e) 
    { 
     if (e.CommandName == "CancelWO") 
     { 
      if (e.Item is GridDataItem) 
      { 
       GridDataItem gridDataItem = e.Item as GridDataItem; 

       string WFGUI = gridDataItem.FindControl("GUI").ToString(); 
       int WorkflowInstanceId = Int32.Parse(gridDataItem.FindControl("fldIWfId").ToString()); 

       RoadsManager.Instance.CancelWorkPackage(WFGUI, WorkflowInstanceId); 
       RoadsManager.Instance.LogCancellation(new[] { WorkflowInstanceId }, CurrentActivityId, CurrentUserId); 
       SignManager.Instance.DownloadPermitsFromSSRS(WorkflowInstanceId, WorkflowAPI.Instance.GetWorkflowVariable<object>(WorkflowInstanceId, "ReportName").ToString()); 
       ShowAlert("חבילת עבודה ואישורים בוטלו בהצלחה", 400, 150, "הודעה חשובה"); 
      } 
     } 
    } 

我在C#函數的開頭添加斷點(在IF)和計劃甚至沒有進入該功能。 我在做什麼錯? 任何人都可以給我一個小費什麼改變? 預先感謝您

+0

你嘗試過**而不是**將'EnableViewState'設置爲'false'嗎? – CyberDude 2015-03-03 11:32:12

+0

是的,當我刪除它(EnableViewState =「False」)完全沒有發生。 – 2015-03-03 11:36:37

+0

所以這個按鈕會導致普通的回發,並且頁面會經歷正常的生命週期,但是不會調用事件處理程序? – CyberDude 2015-03-03 12:43:43

回答

0

我將整個列從GridTemplateColumn更改爲GridButtonColumn,現在它工作正常。