FineUI/FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx

117 lines
5.5 KiB
Plaintext
Raw Permalink Normal View History

2016-01-10 01:19:30 -05:00
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_editor_cell_updatecellvalue.aspx.cs"
Inherits="FineUI.Examples.grid.grid_editor_cell_updatecellvalue" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" Title="表格(双击编辑)" EnableCollapse="true" Width="850px"
runat="server" DataKeyNames="Id,Name" AllowCellEditing="true" ClicksToEdit="2" OnPreDataBound="Grid1_PreDataBound"
DataIDField="Id">
<Toolbars>
<f:Toolbar ID="Toolbar1" runat="server">
<Items>
<f:Button ID="btnNew" Text="新增数据" Icon="Add" EnablePostBack="false" runat="server">
</f:Button>
<f:Button ID="btnDelete" Text="删除选中行" Icon="Delete" EnablePostBack="false" runat="server">
</f:Button>
<f:ToolbarFill runat="server">
</f:ToolbarFill>
<f:Button ID="btnReset" Text="重置表格数据" EnablePostBack="false" runat="server">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="Number" Width="60px">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="100px" ColumnID="Name" DataField="Name" FieldType="String"
HeaderText="姓名">
<Editor>
<f:TextBox ID="tbxEditorName" runat="server">
</f:TextBox>
</Editor>
</f:RenderField>
<f:RenderField Width="100px" ColumnID="Gender" DataField="Gender" FieldType="Int"
RendererFunction="renderGender" HeaderText="性别">
<Editor>
<f:DropDownList Required="true" runat="server">
<f:ListItem Text="男" Value="1" />
<f:ListItem Text="女" Value="0" />
</f:DropDownList>
</Editor>
</f:RenderField>
<f:RenderField Width="100px" ColumnID="Major" DataField="Major" FieldType="String"
ExpandUnusedSpace="true" HeaderText="所学专业">
<Editor>
<f:TextBox ID="tbxEditorMajor" Required="true" runat="server">
</f:TextBox>
</Editor>
</f:RenderField>
<f:RenderField Width="100px" ColumnID="ChineseScore" DataField="ChineseScore" FieldType="Int"
HeaderText="语文成绩">
<Editor>
<f:NumberBox ID="TextBox1" NoDecimal="true" NoNegative="true" Required="true" runat="server">
</f:NumberBox>
</Editor>
</f:RenderField>
<f:RenderField Width="100px" ColumnID="MathScore" DataField="MathScore" FieldType="Int"
HeaderText="数学成绩">
<Editor>
<f:NumberBox ID="NumberBox1" NoDecimal="true" NoNegative="true" Required="true" runat="server">
</f:NumberBox>
</Editor>
</f:RenderField>
<f:RenderField Width="100px" ColumnID="TotalScore" DataField="TotalScore" FieldType="Int"
HeaderText="总成绩">
<Editor>
<f:NumberBox ID="NumberBox2" NoDecimal="true" NoNegative="true" Required="true" runat="server">
</f:NumberBox>
</Editor>
</f:RenderField>
<f:LinkButtonField ColumnID="Delete" Width="80px" EnablePostBack="false"
Icon="Delete" />
</Columns>
<Listeners>
<f:Listener Event="edit" Handler="onGridAfterEdit" />
</Listeners>
</f:Grid>
<br />
<f:Button ID="Button2" runat="server" Text="保存数据" OnClick="Button2_Click">
</f:Button>
<br />
<br />
<f:Label ID="labResult" EncodeText="false" runat="server">
</f:Label>
<br />
注:编辑[语文成绩]或者[数学成绩]时会同时更新[总成绩]。
</form>
<script>
function renderGender(value) {
return value == 1 ? '男' : '女';
}
// 注意专业版中改事件名为afteredit开源版中为edit
function onGridAfterEdit(editor, params) {
var me = this, columnId = params.column.id, rowId = params.record.getId();
if (columnId === 'ChineseScore' || columnId === 'MathScore') {
var chineseScore = me.f_getCellValue(rowId, 'ChineseScore');
var mathScore = me.f_getCellValue(rowId, 'MathScore');
me.f_updateCellValue(rowId, 'TotalScore', chineseScore + mathScore);
}
}
</script>
</body>
</html>