FineUI/FineUI.Examples/grid/grid_editor_cell_client_validate.aspx
三生石上 15588d275b v4.2.4.1
2017-09-05 10:49:48 +08:00

136 lines
6.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_editor_cell_client_validate.aspx.cs"
Inherits="FineUI.Examples.grid.grid_editor_cell_client_validate" %>
<!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="EntranceYear" DataField="EntranceYear" FieldType="Int"
HeaderText="入学年份">
<Editor>
<f:NumberBox ID="tbxEditorEntranceYear" NoDecimal="true" NoNegative="true" MinValue="2000"
MaxValue="2025" runat="server">
</f:NumberBox>
</Editor>
</f:RenderField>
<f:RenderField Width="120px" ColumnID="EntranceDate" DataField="EntranceDate" FieldType="Date"
Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="入学日期">
<Editor>
<f:DatePicker ID="DatePicker1" Required="true" runat="server">
</f:DatePicker>
</Editor>
</f:RenderField>
<f:RenderCheckField Width="100px" ColumnID="AtSchool" DataField="AtSchool" HeaderText="是否在校" />
<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:LinkButtonField ColumnID="Delete" Width="80px" EnablePostBack="false"
Icon="Delete" />
</Columns>
</f:Grid>
<br />
<f:Button ID="Button2" runat="server" Text="保存数据" OnClientClick="if(!isValid()){return false;}" OnClick="Button2_Click">
</f:Button>
<br />
<br />
<f:Label ID="labResult" EncodeText="false" runat="server">
</f:Label>
<br />
注:保存数据前,验证“姓名”不能为空(现有数据可以简单通过 Required="true" 属性来控制,新增数据默认为空的话需要这个客户端验证)。
</form>
<script src="../res/js/jquery.min.js" type="text/javascript"></script>
<script>
function renderGender(value) {
return value == 1 ? '男' : '女';
}
function isValid() {
var grid1 = F('<%= Grid1.ClientID %>');
var valid = true, modifiedData = grid1.f_getModifiedData();
$.each(modifiedData, function (index, rowData) {
// rowData.rowIndex: 行在当前表格中的索引删除行小于0,
// rowData.originalIndex: 行在原始数据源中的索引新增行小于0,
// rowData.id: 行ID
// rowData.status: 行状态newadded, modified, deleted
// rowData.values: 行中修改单元格对象,比如 { "Name": "刘国2", "Gender": 0, "EntranceYear": 2003 }
if (rowData.status === 'deleted') {
return true; // continue
}
var name = rowData.values['Name'];
// 更改了姓名列,并且为空字符串
if (typeof (name) != 'undefined' && $.trim(name) == '') {
F.alert({
message: '姓名不能为空!',
ok: function () {
grid1.f_startEdit(rowData.id, 'Name');
}
});
valid = false;
return false; // break
}
});
return valid;
}
</script>
</body>
</html>