从C#.net调用方法batcheditcommand

时间:2015-03-02 17:25:36

标签: javascript asp.net telerik telerik-grid radgrid

我用telerik:RadGrid批量编辑;填写这个网格我用下面的语法:

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);
}

但遗憾的是它没有触发服务器事件RadGrid1_BatchEditCommand,因此我想从C#.net中的代码调用Radgrid batcheditcommand

1 个答案:

答案 0 :(得分: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()来获取参考。