2016-08-02 53 views
1

所以,我有一個radgrid控件與正在典型的編輯安排......現在不是。永遠不要觸發UpdateCommand事件,在那裏設置一個斷點並且不會到達。讓我瘋狂,因爲它一直工作得很好,我想不出我做了什麼會導致它。當我點擊編輯時,窗體打開就好,取消按鈕可以工作,但更新命令從不會觸發。 在網格我:Telerik的radgrid控件更新命令不點火

OnUpdateCommand="pendingVehiclesRadGrid_UpdateCommand" 

And in my code behind I have: 

protected void pendingVehiclesRadGrid_UpdateCommand(object source, GridCommandEventArgs e) 
{ 
blah blah 
} 

看起來很簡單,但就像我說的什麼都沒有。我會一如既往深深地感謝有新鮮眼光的人可以提出建議。

編輯添加XML:

<telerik:RadGrid ID="pendingVehiclesRadGrid" runat="server" AutoGenerateColumns="False" 
     CellSpacing="0" GridLines="None" AllowPaging="True" 
     DataMember="ID" 
      onneeddatasource="pendingVehiclesRadGrid_NeedDataSource" 
      OnUpdateCommand="pendingVehiclesRadGrid_UpdateCommand" PageSize="20" 
      onitemcommand="pendingVehiclesRadGrid_ItemCommand" > 
<MasterTableView DataKeyNames="status,charity,make,model,year,vin,date,id,salePrice,bid,note" 
      EditMode="EditForms"> 

<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> 

<RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> 
<HeaderStyle Width="20px"></HeaderStyle> 
</RowIndicatorColumn> 

<ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"> 
<HeaderStyle Width="20px"></HeaderStyle> 
</ExpandCollapseColumn> 

    <Columns> 
    <telerik:GridButtonColumn CommandName="History" Text="History" UniqueName="detailBtn" HeaderText="History" HeaderButtonType="PushButton" AutoPostBackOnFilter="True"> 
         </telerik:GridButtonColumn> 
    <telerik:GridBoundColumn HeaderText="Charity" ItemStyle-Width="140px" FilterControlAltText="Filter column2 column" 
      UniqueName="column3" DataType="System.String" DataField="charity" ReadOnly="True"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="VIN" ItemStyle-Width="140px" FilterControlAltText="Filter column6 column" 
      UniqueName="column7" DataType="System.String" DataField="vin" > 
<ItemStyle Width="140px"></ItemStyle> 
      </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Year" ItemStyle-Width="140px" FilterControlAltText="Filter column2 column" 
      UniqueName="column2" DataType="System.Int32" DataField="year"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Make" ItemStyle-Width="140px" FilterControlAltText="Filter column column" 
      UniqueName="column" DataType="System.String" DataField="make"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Model" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" 
      UniqueName="column1" DataType="System.String" DataField="model"> 
<ItemStyle Width="140px"></ItemStyle> 
      </telerik:GridBoundColumn>    
      <telerik:GridBoundColumn HeaderText="Last Update" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" 
      UniqueName="column5" DataType="System.DateTime" DataField="date" ReadOnly="True"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Min. Bid" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" 
      UniqueName="column8" DataType="System.Decimal" DataField="bid" DataFormatString="{0:C}" > 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Sale Price" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" 
      UniqueName="column6" DataType="System.Decimal" DataField="salePrice" DataFormatString="{0:C}" Display="False"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Notes" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" 
      UniqueName="unsoldNotesColumn" DataType="System.String" DataField="note" Display="True"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridTemplateColumn HeaderText="Latest Status" ItemStyle-Width="240px"> 


         <ItemTemplate> 

          <%#DataBinder.Eval(Container.DataItem, "Status")%> 

         </ItemTemplate> 


         <EditItemTemplate> 

          <telerik:RadComboBox RenderMode="Lightweight" runat="server" ID="pendingVehiclesRadGridupdateComboBox" DataTextField="Status" 

           DataValueField="ID" DataSourceID="LinqDataSource1" > 

          </telerik:RadComboBox>       

         </EditItemTemplate> 


<ItemStyle Width="240px"></ItemStyle> 


        </telerik:GridTemplateColumn> 

        <telerik:GridEditCommandColumn FooterText="EditCommand footer" UniqueName="pendingVehiclesRadGridEditCommandColumn" 

         HeaderText="Edit" HeaderStyle-Width="100px" UpdateText="Update"> 

<HeaderStyle Width="100px"></HeaderStyle> 

        </telerik:GridEditCommandColumn> 



    </Columns> 

<EditFormSettings EditColumn-DataType="System.String"> 
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn> 
</EditFormSettings> 
</MasterTableView> 

<FilterMenu EnableImageSprites="False"></FilterMenu> 
    </telerik:RadGrid> 
+0

請顯示RadGrid的整個XAML。我認爲你的命令按鈕有問題。 – modiX

+0

@modiX我在這裏相當新...我怎麼能在評論中發佈整個事情?對不起:( – PaulBinCT2

+0

@ PaulBinCT2你可以編輯你的問題,而不是把它放在註釋中 – Scotty

回答

1

我試圖重建的例子,它的工作:

ASPX:

<telerik:RadGrid ID="pendingVehiclesRadGrid" runat="server" AutoGenerateColumns="False" 
    CellSpacing="0" GridLines="None" AllowPaging="True" 
    DataMember="ID" 
    OnNeedDataSource="pendingVehiclesRadGrid_NeedDataSource" 
    OnUpdateCommand="pendingVehiclesRadGrid_UpdateCommand" PageSize="20" 
    OnItemCommand="pendingVehiclesRadGrid_ItemCommand"> 
    <MasterTableView DataKeyNames="status,charity,make,model,year,vin,date,id,salePrice,bid,note" 
     EditMode="EditForms"> 

     <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> 

     <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column" HeaderStyle-Width="20px" /> 

     <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column" HeaderStyle-Width="20px" /> 

     <Columns> 
      <telerik:GridButtonColumn CommandName="History" Text="History" UniqueName="detailBtn" HeaderText="History" HeaderButtonType="PushButton" AutoPostBackOnFilter="True" /> 
      <telerik:GridBoundColumn HeaderText="Charity" ItemStyle-Width="140px" FilterControlAltText="Filter column2 column" UniqueName="column3" DataType="System.String" DataField="charity" ReadOnly="True" /> 
      <telerik:GridBoundColumn HeaderText="VIN" ItemStyle-Width="140px" FilterControlAltText="Filter column6 column" UniqueName="column7" DataType="System.String" DataField="vin" /> 
      <telerik:GridBoundColumn HeaderText="Year" ItemStyle-Width="140px" FilterControlAltText="Filter column2 column" UniqueName="column2" DataType="System.Int32" DataField="year" /> 
      <telerik:GridBoundColumn HeaderText="Make" ItemStyle-Width="140px" FilterControlAltText="Filter column column" UniqueName="column" DataType="System.String" DataField="make" /> 
      <telerik:GridBoundColumn HeaderText="Model" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" UniqueName="column1" DataType="System.String" DataField="model" /> 
      <telerik:GridBoundColumn HeaderText="Last Update" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" UniqueName="column5" DataType="System.DateTime" DataField="date" ReadOnly="True" /> 
      <telerik:GridBoundColumn HeaderText="Min. Bid" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" UniqueName="column8" DataType="System.Decimal" DataField="bid" DataFormatString="{0:C}" /> 
      <telerik:GridBoundColumn HeaderText="Sale Price" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" UniqueName="column6" DataType="System.Decimal" DataField="salePrice" DataFormatString="{0:C}" Display="False" /> 
      <telerik:GridBoundColumn HeaderText="Notes" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" UniqueName="unsoldNotesColumn" DataType="System.String" DataField="note" Display="True" /> 
      <telerik:GridTemplateColumn HeaderText="Latest Status" ItemStyle-Width="240px"> 
       <ItemTemplate> 
        <%#DataBinder.Eval(Container.DataItem, "Status")%> 
       </ItemTemplate> 
       <EditItemTemplate> 
        <%-- I have to outcomment this, because I don't have any LinqDataSource1 available --%> 
        <%--<telerik:RadComboBox RenderMode="Lightweight" runat="server" ID="pendingVehiclesRadGridupdateComboBox" DataTextField="Status" 
         DataValueField="ID" DataSourceID="LinqDataSource1"> 
        </telerik:RadComboBox>--%> 
       </EditItemTemplate> 
      </telerik:GridTemplateColumn> 

      <telerik:GridEditCommandColumn FooterText="EditCommand footer" UniqueName="pendingVehiclesRadGridEditCommandColumn" HeaderText="Edit" HeaderStyle-Width="100px" UpdateText="Update" /> 
     </Columns> 

     <EditFormSettings EditColumn-DataType="System.String"> 
      <EditColumn FilterControlAltText="Filter EditCommandColumn column" /> 
     </EditFormSettings> 
    </MasterTableView> 

    <FilterMenu EnableImageSprites="False" /> 
</telerik:RadGrid> 

後臺代碼:

protected void pendingVehiclesRadGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) 
{ 
    this.pendingVehiclesRadGrid.DataSource = new List<object> { 
     new { 
      id = 1, 
      charity = "charity1", 
      vin = "vin1", 
      year = 2015, 
      make = "make1", 
      model = "model1", 
      date = DateTime.Now.AddYears(-1), 
      bid = (decimal)12000.00, 
      salePrice = (decimal)14469.95, 
      note = "a new car", 
      Status = "NOT SOLD" 
     }, 
     new { 
      id = 2, 
      charity = "charity2", 
      vin = "vin2", 
      year = 1967, 
      make = "make2", 
      model = "model2", 
      date = DateTime.Now, 
      bid = (decimal)14000.00, 
      salePrice = (decimal)19469.95, 
      note = "an oldtimer", 
      Status = "NOT SOLD" 
     } 
    }; 
} 

protected void pendingVehiclesRadGrid_UpdateCommand(object sender, GridCommandEventArgs e) 
{ 
    Console.WriteLine("This will be reached!"); // I've put the breakpoint here 
} 

protected void pendingVehiclesRadGrid_ItemCommand(object sender, GridCommandEventArgs e) 
{ 

} 

正如你所見,我已經刪除一些不必要的標記,但這不是問題的根源。我也必須刪除EditItemTemplate中的RadComboBox,因爲我無法使用LinqDataSource1

但要清楚:我不知道爲什麼它不適合你,但我希望這可以幫助你跟蹤這個問題。

儘量向外發表意見RadComboBox你了。看看這是否是問題的根源。如果沒有,你可能會在你的代碼中犯下任何錯誤,也許是在數據綁定本身。

如果您不能跟蹤問題,請嘗試在自己的解決方案,以隔離問題。通過使用硬編碼數據來解決它(就像我的例子)。如果問題仍然存在,請發佈測試解決方案中的所有代碼或共享解決方案而不是 Telerik組件(!)

+1

非常感謝...我知道你投入了多少時間來幫助我!我要解決這個問題,看看問題是否出現在組合框中。我對這件事感到十分困惑,特別是因爲它本來就是工作的,我想不出任何我會改變的事情來解決這個問題。我會及時向大家發佈! 再次感謝... :) – PaulBinCT2

+0

因此,我恐怕我無法快速完成。我嘗試註釋掉組合框,即使在我嘗試查找並註釋掉整個組合框的引用後,它也創建了關於在空對象上設置屬性的各種例外。我嘗試添加下拉列表,而「似乎」沒有解決問題。我真的在這個問題上毆打我的大腦......其他提示/建議? 非常感謝您的幫助! – PaulBinCT2

0

@modiX好的......再次感謝您的幫助。我還沒有弄清楚這個問題,但是在打了兩天我的頭之後,我意識到有一次,這一切都奏效了,也許是我在表單上做的所有其他工作中的某個地方,我打破了它,沒有意識到它,直到爲時已晚。於是,我開始分別將三個網格中的每一個和它們的代碼分別放在一個網格中,並將它們粘貼到一個全新的頁面中。而且......他們工作。

不知道什麼是「功能」使他們打破,但我願意稱這一場勝利,繼續前進......更爲謹慎;)

再次感謝您的時間和熱心幫助!

+0

這不應該是一個答案,它應該只是我的回答評論,因爲你不能提供任何解決方案給你的情況。不管怎樣,你很好地解決了這個問題,然而,神奇地消失的問題讓我感到緊張,因爲他們可以隨時回來,因爲你不知道是什麼讓他們出現。我建議您的團隊使用顛覆控制軟件,以便能夠輕鬆跟蹤更改。別客氣! :) – modiX

+0

@modiX我同意你的觀點......我只是將它作爲答案輸入,因爲「案件已關閉」。再一次...謝謝你! – PaulBinCT2