2015-03-02 51 views
-1

我用telerik:RadGrid批量編輯;填補了這一網格我用下面的語法:從C#調用方法batcheditcommand .net

function GridBind(GridID, GridData) { 
    var TableView = GridID.get_masterTableView(); 
    TableView.set_dataSource(GridData); TableView.dataBind(); 
} 

調用batcheditcommand我用下面的語法。它在非回發按鈕的Javascript事件寫成:

function SaveAllChanges(sender,args) { 
    var batchManager = $find('<%=RadGrid1.ClientID%>').get_batchEditingManager(); 
    var tableViews = []; 
    tableViews.push($find('<%=RadGrid1.ClientID%>').get_masterTableView()); 
    batchManager.saveTableChanges(tableViews); 
} 

但遺憾的是它並沒有Fire服務器事件RadGrid1_BatchEditCommand,所以我想在C#.NET從代碼中調用radgrid控件batcheditcommand後面。

回答

0

快速POC爲我工作:

標記:

<telerik:RadGrid ID="RadGrid1" runat="server" OnBatchEditCommand="RadGrid1_BatchEditCommand"> 
     <MasterTableView EditMode="Batch"> 
      <Columns> 
       <telerik:GridBoundColumn DataField="first"></telerik:GridBoundColumn> 
       <telerik:GridBoundColumn DataField="second"></telerik:GridBoundColumn> 
      </Columns> 
     </MasterTableView> 
    </telerik:RadGrid> 
    <asp:Button ID="Button1" Text="bind grid" OnClientClick="bindTheGrid(); return false;" runat="server" /> 
    <asp:Button ID="Button2" Text="save grid" OnClientClick="SaveAllChanges(); return false;" runat="server" /> 
    <script> 
     function bindTheGrid() { 
      var grid = $find("<%=RadGrid1.ClientID%>"); 
      var data = [{ first: 1, second: 1 }, { first: 2, second: 2 }]; 
      GridBind(grid, data); 
     } 
     function GridBind(GridID, GridData) { 
      var TableView = GridID.get_masterTableView(); 
      TableView.set_dataSource(GridData); 
      TableView.dataBind(); 
     } 

     function SaveAllChanges(sender, args) { 
      var batchManager = $find('<%=RadGrid1.ClientID%>').get_batchEditingManager(); 
      var tableViews = []; 
      tableViews.push($find('<%=RadGrid1.ClientID%>').get_masterTableView()); 
      batchManager.saveTableChanges(tableViews); 
     } 
    </script> 

和服務器代碼

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!IsPostBack) 
     { 
      RadGrid1.DataSource=""; 
      RadGrid1.DataBind(); 
     } 
    } 
    protected void RadGrid1_BatchEditCommand(object sender, GridBatchEditingEventArgs e) 
    { 
     Response.Write(DateTime.Now.ToString()); 
    } 

,你需要努力一點在客戶端綁定。

確保您沒有腳本錯誤。

在第一個函數中,您是否在GridID對象中傳遞了網格對象或ID?如果只有ID,使用$ find()首先獲取引用。

+0

rdmptn謝謝你的回覆,我已經實現了你的技術SaveAllChanges(sender,args)。請檢查我的問題description.This方法發回事件我想調用此savechage方法沒有postback.Suppose此方法調用Web方法或服務。感謝您的回覆 – shamim 2015-03-05 04:05:54

+0

它應該調用回發,因爲這是您用ASP發送信息的標準方式。 清楚地解釋你的問題,因爲你現在有6-7個關於這個權利的部分問題。 – rdmptn 2015-03-05 09:05:32