从 C#.net 调用方法 batcheditcommand [英] invoke method batcheditcommand from C#.net
问题描述
我使用了 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屋!