【发布时间】:2014-08-07 23:56:58
【问题描述】:
我有一个 RadGrid,其中某些列处于批量编辑模式。我还有两列依赖于另一列的值(EstLengthFt 和 EstLengthRds)。我需要在编辑 EstLengthFt 单元格时更新 EstLengthRds 值,反之亦然。 我当前的函数只更新 html 而不是值。我需要更新控件的值并将其设置为 BatchEditChanged 模式,以便我可以保存它。
我无法进行任何回发,因为编辑后的值会丢失。
任何帮助将不胜感激!
function AllSetCellValue(sender, args) {
var grid;
var master;
var selected;
var row;
var ft;
var cell;
var rods;
if (args.get_columnUniqueName() == "EstLengthFt") {
grid = $find('<%=RadGridAll.ClientID%>');
master = grid.get_masterTableView();
selected = master.get_selectedItems();
row = selected[0];
ft = args.get_value();
cell = master.getCellByColumnUniqueName(row, "EstLengthRds");
rods = Math.round((ft * .060606060606) * 100) / 100;
cell.innerHTML = rods;
}
if (args.get_columnUniqueName() == "EstLengthRds") {
grid = $find('<%=RadGridAll.ClientID%>');
master = grid.get_masterTableView();
selected = master.get_selectedItems();
row = selected[0];
rods = args.get_value();
cell = master.getCellByColumnUniqueName(row, "EstLengthFt");
ft = Math.round((rods * 16.5) * 100) / 100;
cell.innerHTML = ft;
}
}
<telerik:RadGrid runat="server" ID="RadGridAll" AllowMuliRowEdit="True" AllowMultiRowSelection="True" AllowSorting="True"
GridLines="None" AllowFilteringByColumn="True" AllowMultiRowEdit="True" OnNeedDataSource="GridAll_NeedDataSource"
OnBatchEditCommand="GridAll_BatchEditComand" AllowPaging="True" PageSize="20" EnableLinqExpressions="False"
OnHTMLExporting="GridAll_HTMLExporting">
<MasterTableView DataKeyNames="PropId,RowDetailsId,SurveyId,TitleInitId,TitleSumId" CommandItemDisplay="None"
AllowAutomaticUpdates="False" AllowAutomaticInserts="False" AllowAutomaticDeletes="False"
AutoGenerateColumns="False" TableLayout="Fixed" EditMode="Batch">
<BatchEditingSettings EditType="Cell" OpenEditingEvent="Click" />
<Columns>
<telerik:GridBoundColumn DataField="PropertyNumber" HeaderText="Tract Number" ReadOnly="True" HeaderStyle-Width="140px"
FilterControlWidth="100px" />
<telerik:GridBoundColumn DataField="IndexNumber" HeaderText="Index Number" ReadOnly="True" HeaderStyle-Width="120px"
FilterControlWidth="80px" />
<telerik:GridBoundColumn DataField="DisplayName" HeaderText="Type" ReadOnly="True" HeaderStyle-Width="140px"
UniqueName="DisplayName">
<FilterTemplate>
<telerik:RadComboBox runat="server" Width="130px" EmptyMessage="All" AutoPostBack="True"
OnSelectedIndexChanged="GridPropTypeFilter_SelectedIndexChanged" EnableLoadOnDemand="True"
OnItemsRequested="GridPropTypeCombo_ItemsRequested" AppendDataBoundItems="True" />
</FilterTemplate>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="OwnerName" HeaderText="Owner Name" ReadOnly="True" HeaderStyle-Width="140px"
FilterControlWidth="100px" />
<telerik:GridTemplateColumn DataField="EstLengthFt" HeaderText="Est ROW Length(ft)" HeaderStyle-Width="100px"
FilterControlWidth="60px" ConvertEmptyStringToNull="True" UniqueName="EstLengthFt">
<ItemTemplate>
<%#Eval("EstLengthFt") %>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox runat="server" ID="txtEstLengthFt" Type="Number" NumberFormat-DecimalDigits="2"/>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn DataField="EstLengthRds" HeaderText="Est ROW Length(rds)" HeaderStyle-Width="100px"
FilterControlWidth="60px" ConvertEmptyStringToNull="True" UniqueName="EstLengthRds">
<ItemTemplate>
<%#Eval("EstLengthRds") %>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox runat="server" ID="txtEstLengthRds" Type="Number" NumberFormat-DecimalDigits="2" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="Name" HeaderText="Address" HeaderStyle-Width="200px"
FilterControlWidth="160px" ReadOnly="True" />
<telerik:GridBoundColumn DataField="Legal" HeaderText="Legal Description" HeaderStyle-Width="170px"
FilterControlWidth="130px" ReadOnly="True" />
<telerik:GridBoundColumn DataField="Status" HeaderText="Status" ReadOnly="True" HeaderStyle-Width="120px"
FilterControlWidth="80px" ConvertEmptyStringToNull="True" />
<telerik:GridTemplateColumn UniqueName="PermWidthDd" DataField="PermWidthDd" HeaderText="Perm Width(ft)" HeaderStyle-Width="100px"
FilterControlWidth="60px">
<ItemTemplate>
<%#Eval("PermWidthDd") %>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadComboBox runat="server" ID="cmbGridPermitFt"
DataTextField="DDName" DataValueField="DDValue" Width="90px" EnableLoadOnDemand="True"
OnItemsRequested="GridPermitCombo_ItemsRequested" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Temp Width(ft)" HeaderStyle-Width="100px"
FilterControlWidth="60px" UniqueName="TempWidthDd">
<ItemTemplate>
<%#Eval("TempWidthDd") %>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadComboBox runat="server" ID="cmbGridTemFt"
DataTextField="DDName" DataValueField="DDValue" Width="90px" EnableLoadOnDemand="True"
OnItemsRequested="GridTempCombo_ItemsRequested" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridDateTimeColumn DataField="TractClosedDate" HeaderText="Tract Closed" HeaderStyle-Width="170px"
FilterControlWidth="130px" PickerType="DatePicker" EmptyDataText=""
DataFormatString="<%$ Resources:WebResources,dateFormatGrid %>" />
<telerik:GridBoundColumn DataField="ServiceProviderName" HeaderText="Company Assigned" HeaderStyle-Width="170px"
FilterControlWidth="130px" ReadOnly="True" />
<telerik:GridDateTimeColumn DataField="SurveyAssigned" HeaderText="Survey Assigned Date" HeaderStyle-Width="170px"
FilterControlWidth="130px" PickerType="DatePicker" EmptyDataText="" ReadOnly="True"
DataFormatString="<%$ Resources:WebResources,dateFormatGrid %>" />
<telerik:GridDateTimeColumn DataField="SurveyPermDate" HeaderText="Permission Date" HeaderStyle-Width="170px"
FilterControlWidth="130px" PickerType="DatePicker" EmptyDataText=""
DataFormatString="<%$ Resources:WebResources,dateFormatGrid %>" />
<telerik:GridDateTimeColumn DataField="FieldWorkCompleteDate" HeaderText="Field Work Completed" HeaderStyle-Width="170px"
FilterControlWidth="130px" PickerType="DatePicker" EmptyDataText=""
DataFormatString="<%$ Resources:WebResources,dateFormatGrid %>" />
<telerik:GridDateTimeColumn DataField="FinalPlatRecvdDate" HeaderText="Final Plat Received" HeaderStyle-Width="170px"
FilterControlWidth="130px" PickerType="DatePicker" EmptyDataText=""
DataFormatString="<%$ Resources:WebResources,dateFormatGrid %>" />
<telerik:GridDateTimeColumn DataField="CreatedDate" HeaderText="Title Work Assigned" HeaderStyle-Width="170px"
FilterControlWidth="130px" PickerType="DatePicker" EmptyDataText="" ReadOnly="True"
DataFormatString="<%$ Resources:WebResources,dateFormatGrid %>" />
<telerik:GridBoundColumn HeaderText="Title Status" DataField="StatusDd" HeaderStyle-Width="170px"
FilterControlWidth="130px" ReadOnly="True" />
<telerik:GridDateTimeColumn DataField="DateLtcCompleted" HeaderText="Title Completed" HeaderStyle-Width="170px"
FilterControlWidth="130px" PickerType="DatePicker" EmptyDataText=""
DataFormatString="<%$ Resources:WebResources,dateFormatGrid %>" />
<telerik:GridBoundColumn DataField="TitleAgent" HeaderText="Title Agent Assigned" HeaderStyle-Width="170px"
FilterControlWidth="130px" ReadOnly="True" />
<telerik:GridDateTimeColumn DataField="AgentAssignedDate" HeaderText="Agent Assigned Date" HeaderStyle-Width="170px"
FilterControlWidth="130px" PickerType="DatePicker" EmptyDataText="" ReadOnly="True"
DataFormatString="<%$ Resources:WebResources,dateFormatGrid %>" />
</Columns>
</MasterTableView>
<ClientSettings Selecting-AllowRowSelect="True">
<ClientEvents OnBatchEditSetCellValue="AllSetCellValue" />
<Scrolling AllowScroll="True" FrozenColumnsCount="2" UseStaticHeaders="True" SaveScrollPosition="True" />
</ClientSettings>
</telerik:RadGrid>
【问题讨论】: