radgrid -get 服务器在客户端编辑的行
radgrid -get server edited rows in client side
我有一个 radgrid asp.net 控件,我正在其中编辑服务器端的行。我想在客户端知道,以防用户在保存/丢弃网格中的更改之前尝试关闭屏幕。
我发现了一些关于如何使用以下内容的解释: get_masterTableView
但是,由于我不是在客户端进行编辑,因此调用此函数导致异常(其中有一个失败的get_id调用)。
如何知道网格是否在客户端处于编辑模式?
谢谢欧梅尔
我没有在RadGrid上做更多的工作。相反,我可以给你一个解决方法。尝试,可能会起作用。它很简单。
您可以使用隐藏字段。当您进入网格编辑模式时,您可以将隐藏字段值设置为 true 或您想要从代码隐藏中获取的任何内容。在行提交时清理该值,以便确定网格是否打开以供编辑。如果用户关闭表单或执行任何操作,则可以从javascript中检测到隐藏的值。
就是这样。
请尝试使用以下代码片段。
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script>
function getEditInsertCount() {
var grid = $find("<%= RadGrid1.ClientID %>");
if (grid) {
var MasterTable = grid.get_masterTableView();
if (MasterTable.get_insertItem() != null) {
alert('grid in insert mode');
}
if (grid.get_editItems().length > 0) {
alert('grid in edit mode, Row count: ' + grid.get_editItems().length);
}
}
return false;
}
</script>
</telerik:RadCodeBlock>
编辑 1 : (代码的其他部分)
.ASPX
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGrid1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"></telerik:RadAjaxLoadingPanel>
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource"
AllowFilteringByColumn="true" AllowMultiRowEdit="true">
<MasterTableView CommandItemDisplay="Top" DataKeyNames="ID" EditMode="InPlace">
<Columns>
<telerik:GridBoundColumn DataField="ID" UniqueName="ID" HeaderText="ID"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name" HtmlEncode="true"></telerik:GridBoundColumn>
<telerik:GridEditCommandColumn></telerik:GridEditCommandColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
<asp:Button ID="Button1" runat="server" Text="Get Insert and Edit stauts" OnClientClick="return getEditInsertCount();" />
</div>
ASPX.CS
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Customdate", typeof(DateTime));
dt.Rows.Add(1, "name1", DateTime.Now);
dt.Rows.Add(2, "name2", DateTime.Now.AddYears(-1));
dt.Rows.Add(3, "name3", DateTime.Now.AddYears(1));
RadGrid1.DataSource = dt;
}
相关文章:
- 客户端服务器REST API captcha实现
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 在客户端的编辑模式下,在同一单元格网格视图中选中复选框时禁用文本框
- 在转发到代理目标并将响应发送回客户端之前,编辑POST参数
- JavaScript编辑本地客户端时间
- Asp.net 网格视图的客户端编辑将被覆盖
- radgrid -get 服务器在客户端编辑的行
- 详细信息视图 ASP.Net 取消客户端的默认编辑模式
- 日期编辑 在客户端设置日期值
- 在哪里可以让客户端编辑JSON文件
- 删除客户端中Upload编辑器的值
- Firebase编辑规则授予不同客户端脚本单独的能力.没有服务器的授权)
- JavaScript匿名函数可以防止客户端编辑吗?
- jqGrid客户端验证模式在编辑最后一行时没有正确放置
- 如何获得在javascript中gridview的编辑项模板内放置的控件的客户端
- 从服务器端NodeJs编辑客户端jQuery
- 无法在客户端编辑json文件
- Kendo网格编辑器TemplateName-客户端绑定
- 将编辑器html保存到客户端'的电脑
- 使用代码检查器编辑DOM客户端以操纵服务器端行为