从 C#.net 调用方法 batcheditcommand [英] invoke method batcheditcommand from C#.net

查看:77
本文介绍了从 C#.net 调用方法 batcheditcommand的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用了 Telerik:RadGrid 批量编辑;为了填充这个网格,我使用了以下语法:

I used telerik:RadGrid batch editing; to fill this grid I used below syntax:

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

调用 batcheditcommand 我使用了以下语法.它写在非回发按钮 Javascript 事件下:

To Invoke batcheditcommand I used below syntax. It’s written under non-postback button Javascript event:

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.

But unfortunately it did not fire server event RadGrid1_BatchEditCommand, so I want to invoke Radgrid batcheditcommand from code behind in C#.net.

推荐答案

一个对我有用的快速 POC:

A quick POC that worked for me:

标记:

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

您需要在客户端绑定上做一些工作.

where you would need to work a bit on the client-side binding.

确保没有脚本错误.

在第一个函数中,你传递的是网格对象还是GridID对象中的ID?如果只有和 ID,先用 $find() 获取引用.

In the first function, do you pass a grid object or an ID in the GridID object? If only and ID, use $find() first to get a reference.

这篇关于从 C#.net 调用方法 batcheditcommand的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆