diff --git a/FineUI.Examples/FineUI.Examples.csproj b/FineUI.Examples/FineUI.Examples.csproj index 8edbedb..096a243 100644 --- a/FineUI.Examples/FineUI.Examples.csproj +++ b/FineUI.Examples/FineUI.Examples.csproj @@ -58,19 +58,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -79,10 +105,14 @@ + + + - + + @@ -90,28 +120,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + @@ -221,7 +270,7 @@ - + @@ -233,7 +282,7 @@ - + @@ -322,7 +371,7 @@ - + @@ -387,15 +436,14 @@ - - + + - + - @@ -405,13 +453,13 @@ + + - - @@ -420,6 +468,7 @@ + @@ -428,6 +477,9 @@ + + + @@ -437,11 +489,15 @@ + + + + @@ -451,6 +507,13 @@ accordion_autopostback.aspx + + accordion_fill.aspx + ASPXCodeBehind + + + accordion_fill.aspx + aspnet.aspx ASPXCodeBehind @@ -472,6 +535,35 @@ login_enterkey.aspx + + + dropdownlist_autopostback.aspx + ASPXCodeBehind + + + dropdownlist_autopostback.aspx + + + dropdownlist_autopostback_enableedit.aspx + ASPXCodeBehind + + + dropdownlist_autopostback_enableedit.aspx + + + dropdownlist_emptytext.aspx + ASPXCodeBehind + + + dropdownlist_emptytext.aspx + + + dropdownlist_emptytext_enableedit.aspx + ASPXCodeBehind + + + dropdownlist_emptytext_enableedit.aspx + dropdownlist_matchfieldwidth.aspx ASPXCodeBehind @@ -479,6 +571,13 @@ dropdownlist_matchfieldwidth.aspx + + dropdownlist_no_autopostback.aspx + ASPXCodeBehind + + + dropdownlist_no_autopostback.aspx + multiselect.aspx ASPXCodeBehind @@ -500,6 +599,55 @@ multiselect_autopostback.aspx + + multiselect_autopostback_enableedit.aspx + ASPXCodeBehind + + + multiselect_autopostback_enableedit.aspx + + + dropdownlist_autopostback_enableedit_noforceselection.aspx + ASPXCodeBehind + + + dropdownlist_autopostback_enableedit_noforceselection.aspx + + + form_columnwidths.aspx + ASPXCodeBehind + + + form_columnwidths.aspx + + + form_labelwidth.aspx + ASPXCodeBehind + + + form_labelwidth.aspx + + + form_longlabel.aspx + ASPXCodeBehind + + + form_longlabel.aspx + + + layout_center_label.aspx + ASPXCodeBehind + + + layout_center_label.aspx + + + layout_multiline_buttons.aspx + ASPXCodeBehind + + + layout_multiline_buttons.aspx + Global.asax @@ -510,6 +658,76 @@ grid_checkall_singleselect.aspx + + grid_editor_cell_afteredit_selectcell.aspx + ASPXCodeBehind + + + grid_editor_cell_afteredit_selectcell.aspx + + + grid_editor_cell_client_validate.aspx + ASPXCodeBehind + + + grid_editor_cell_client_validate.aspx + + + grid_editor_cell_newdelete_getmergeddata.aspx + ASPXCodeBehind + + + grid_editor_cell_newdelete_getmergeddata.aspx + + + grid_editor_cell_new_editcolumnid.aspx + ASPXCodeBehind + + + grid_editor_cell_new_editcolumnid.aspx + + + grid_editor_cell_renderfunction_complex.aspx + ASPXCodeBehind + + + grid_editor_cell_renderfunction_complex.aspx + + + grid_editor_cell_updatecellvalue.aspx + ASPXCodeBehind + + + grid_editor_cell_updatecellvalue.aspx + + + grid_editor_cell_updatecellvalue_hiddencolumn.aspx + ASPXCodeBehind + + + grid_editor_cell_updatecellvalue_hiddencolumn.aspx + + + grid_editor_cell_updatecellvalue_noedit.aspx + ASPXCodeBehind + + + grid_editor_cell_updatecellvalue_noedit.aspx + + + grid_editor_cell_updatesummary.aspx + ASPXCodeBehind + + + grid_editor_cell_updatesummary.aspx + + + grid_excel_dblclick_download.aspx + ASPXCodeBehind + + + grid_excel_dblclick_download.aspx + grid_excel_findcontrol.aspx ASPXCodeBehind @@ -524,6 +742,27 @@ grid_excel_groupfield.aspx + + grid_header_disablemenu.aspx + ASPXCodeBehind + + + grid_header_disablemenu.aspx + + + grid_header_hide.aspx + ASPXCodeBehind + + + grid_header_hide.aspx + + + grid_header_wrap.aspx + ASPXCodeBehind + + + grid_header_wrap.aspx + grid_hide_gridheader.aspx ASPXCodeBehind @@ -580,6 +819,20 @@ grid_lockcolumn_line_wrap.aspx + + grid_many_columns.aspx + ASPXCodeBehind + + + grid_many_columns.aspx + + + grid_paging_aspnet.aspx + ASPXCodeBehind + + + grid_paging_aspnet.aspx + grid_paging_database_bbar.aspx ASPXCodeBehind @@ -587,6 +840,13 @@ grid_paging_database_bbar.aspx + + grid_paging_fineui.aspx + ASPXCodeBehind + + + grid_paging_fineui.aspx + grid_prerowdatabound_cancelled.aspx ASPXCodeBehind @@ -601,12 +861,22 @@ grid_editor_cell_afteredit_rowexpander.aspx - - grid_editor_cell_new_delete_rowexpander.aspx + + grid_editor_cell_newdelete_rowexpander.aspx ASPXCodeBehind - - grid_editor_cell_new_delete_rowexpander.aspx + + grid_editor_cell_newdelete_rowexpander.aspx + + + grid_rowexpander_grid.aspx + ASPXCodeBehind + + + grid_rowexpander_grid.aspx + + + grid_rowexpander_grid_data.ashx grid_style_columnclass.aspx @@ -657,6 +927,41 @@ grid_groupheader_hidden.aspx + + grid_editor_cell_textarea.aspx + ASPXCodeBehind + + + grid_editor_cell_textarea.aspx + + + grid_summary_scrollbar_top.aspx + ASPXCodeBehind + + + grid_summary_scrollbar_top.aspx + + + grid_width_boxflex.aspx + ASPXCodeBehind + + + grid_width_boxflex.aspx + + + grid_width_forcefit_minwidth.aspx + ASPXCodeBehind + + + grid_width_forcefit_minwidth.aspx + + + grid_checkall_keepcurrentselection.aspx + ASPXCodeBehind + + + grid_checkall_keepcurrentselection.aspx + selectprovince_executescript.aspx ASPXCodeBehind @@ -671,6 +976,48 @@ selectprovince_executescript_child.aspx + + column_autoheight.aspx + ASPXCodeBehind + + + column_autoheight.aspx + + + column_scrollbar.aspx + ASPXCodeBehind + + + column_scrollbar.aspx + + + hbox_autoheight.aspx + ASPXCodeBehind + + + hbox_autoheight.aspx + + + hbox_autoheight_multilevels.aspx + ASPXCodeBehind + + + hbox_autoheight_multilevels.aspx + + + hbox_form.aspx + ASPXCodeBehind + + + hbox_form.aspx + + + hbox_scrollbar.aspx + ASPXCodeBehind + + + hbox_scrollbar.aspx + region.aspx ASPXCodeBehind @@ -678,6 +1025,55 @@ region.aspx + + table_form.aspx + ASPXCodeBehind + + + table_form.aspx + + + vbox_autoheight.aspx + ASPXCodeBehind + + + vbox_autoheight.aspx + + + vbox_collapse.aspx + ASPXCodeBehind + + + vbox_collapse.aspx + + + vbox_form.aspx + ASPXCodeBehind + + + vbox_form.aspx + + + vbox_formgrid.aspx + ASPXCodeBehind + + + vbox_formgrid.aspx + + + vbox_hbox.aspx + ASPXCodeBehind + + + vbox_hbox.aspx + + + vbox_scrollbar.aspx + ASPXCodeBehind + + + vbox_scrollbar.aspx + formlist.aspx ASPXCodeBehind @@ -721,6 +1117,55 @@ SingleGrid.Master + + alert_download.aspx + ASPXCodeBehind + + + alert_download.aspx + + + alert_download_hide.aspx + ASPXCodeBehind + + + alert_download_hide.aspx + + + alert_download_hideiframe.aspx + ASPXCodeBehind + + + alert_download_hideiframe.aspx + + + alert_download_hideiframe_window.aspx + ASPXCodeBehind + + + alert_download_hideiframe_window.aspx + + + confirm_buttons.aspx + ASPXCodeBehind + + + confirm_buttons.aspx + + + authentication_timeout.aspx + ASPXCodeBehind + + + authentication_timeout.aspx + + + authentication_timeout_async.aspx + ASPXCodeBehind + + + authentication_timeout_async.aspx + global_error.aspx ASPXCodeBehind @@ -742,13 +1187,6 @@ tabstrip_position.aspx - - Demo.aspx - ASPXCodeBehind - - - Demo.aspx - empty.aspx ASPXCodeBehind @@ -756,65 +1194,6 @@ empty.aspx - - grid_editor_cell_databind2.aspx - ASPXCodeBehind - - - grid_editor_cell_databind2.aspx - - - grid_iframe2.aspx - ASPXCodeBehind - - - grid_iframe2.aspx - - - iframe_window.aspx - ASPXCodeBehind - - - iframe_window.aspx - - - login__.aspx - ASPXCodeBehind - - - login__.aspx - - - LPList.aspx - ASPXCodeBehind - - - LPList.aspx - - - SingleGrid.Master - ASPXCodeBehind - - - SingleGrid.Master - - - ASPXCodeBehind - - - tabstrip_addtab2.aspx - ASPXCodeBehind - - - tabstrip_addtab2.aspx - - - triggerbox2.aspx - ASPXCodeBehind - - - triggerbox2.aspx - activex.aspx ASPXCodeBehind @@ -822,12 +1201,19 @@ activex.aspx - - empty2.aspx + + form2.aspx ASPXCodeBehind - - empty2.aspx + + form2.aspx + + + grid_editor_cell2.aspx + ASPXCodeBehind + + + grid_editor_cell2.aspx inline_window.aspx @@ -1172,12 +1558,12 @@ grid_rowcommand_paging_database.aspx - - grid_editor_cell_new_delete.aspx + + grid_editor_cell_newdelete.aspx ASPXCodeBehind - - grid_editor_cell_new_delete.aspx + + grid_editor_cell_newdelete.aspx grid_editor_cell_afteredit.aspx @@ -1256,12 +1642,12 @@ grid_rowcommand_download.aspx - - grid_summary_scrollbar.aspx + + grid_summary_scrollbar_bottom.aspx ASPXCodeBehind - - grid_summary_scrollbar.aspx + + grid_summary_scrollbar_bottom.aspx selectprovince1.aspx @@ -1602,12 +1988,12 @@ checkboxlist.aspx - - layout_panel2.aspx + + layout_panel_column.aspx ASPXCodeBehind - - layout_panel2.aspx + + layout_panel_column.aspx datepicker_autopostback.aspx @@ -2050,18 +2436,18 @@ vbox.aspx - + alert.aspx ASPXCodeBehind - + alert.aspx - + confirm_cancel.aspx ASPXCodeBehind - + confirm_cancel.aspx @@ -2071,12 +2457,12 @@ cssclass.aspx - - confirm_cancel2.aspx + + confirm_cancel_customevent.aspx ASPXCodeBehind - - confirm_cancel2.aspx + + confirm_cancel_customevent.aspx custom_postback2.aspx @@ -2099,13 +2485,6 @@ tabstrip_iframe_disabled_tab1.aspx - - start.aspx - ASPXCodeBehind - - - start.aspx - custom_display.aspx ASPXCodeBehind @@ -2172,6 +2551,13 @@ form.aspx + + formfields.aspx + ASPXCodeBehind + + + formfields.aspx + multi_toolbars.aspx ASPXCodeBehind @@ -2179,6 +2565,13 @@ multi_toolbars.aspx + + toolbar_fill.aspx + ASPXCodeBehind + + + toolbar_fill.aspx + toolbar_iframe.aspx ASPXCodeBehind @@ -2207,23 +2600,6 @@ ajax_loading.aspx - - test3.aspx - - - textbox.aspx - ASPXCodeBehind - - - textbox.aspx - - - timer.aspx - ASPXCodeBehind - - - timer.aspx - menu.aspx ASPXCodeBehind @@ -2280,6 +2656,13 @@ tree_nodecommand.aspx + + tree_contextmenu.aspx + ASPXCodeBehind + + + tree_contextmenu.aspx + tree_icon.aspx ASPXCodeBehind @@ -2628,13 +3011,6 @@ test.aspx - - test2.aspx - ASPXCodeBehind - - - test2.aspx - ajax.aspx ASPXCodeBehind @@ -2642,17 +3018,6 @@ ajax.aspx - - test3.aspx - ASPXCodeBehind - - - test4.aspx - ASPXCodeBehind - - - test4.aspx - tree_multi_select.aspx ASPXCodeBehind @@ -2674,6 +3039,27 @@ tree_nodedatabound.aspx + + tree_node_cssclass.aspx + ASPXCodeBehind + + + tree_node_cssclass.aspx + + + tree_singleexpand.aspx + ASPXCodeBehind + + + tree_singleexpand.aspx + + + tree_textselection.aspx + ASPXCodeBehind + + + tree_textselection.aspx + UserInfoControl.ascx ASPXCodeBehind @@ -2716,6 +3102,13 @@ panel.aspx + + panel_disabled.aspx + ASPXCodeBehind + + + panel_disabled.aspx + window.aspx ASPXCodeBehind @@ -2723,6 +3116,13 @@ window.aspx + + window_minwidth.aspx + ASPXCodeBehind + + + window_minwidth.aspx + window_multi.aspx ASPXCodeBehind @@ -2751,6 +3151,20 @@ window_form.aspx + + window_maximized.aspx + ASPXCodeBehind + + + window_maximized.aspx + + + window_maximized_fixed.aspx + ASPXCodeBehind + + + window_maximized_fixed.aspx + @@ -2794,8 +3208,6 @@ - - @@ -2804,7 +3216,6 @@ - @@ -2818,18 +3229,15 @@ - - - - + @@ -2854,7 +3262,7 @@ False True - 50184 + 62105 / diff --git a/FineUI.Examples/Web.config b/FineUI.Examples/Web.config index 5a64763..42fe51c 100644 --- a/FineUI.Examples/Web.config +++ b/FineUI.Examples/Web.config @@ -26,10 +26,7 @@ - + @@ -41,15 +38,17 @@ - + + + - - + --> - + diff --git a/FineUI.Examples/Web.config_for_VS2013 b/FineUI.Examples/Web.config_for_VS2013 new file mode 100644 index 0000000..7c3ff43 --- /dev/null +++ b/FineUI.Examples/Web.config_for_VS2013 @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/bin/CKEditor.NET.dll b/FineUI.Examples/bin/CKEditor.NET.dll deleted file mode 100644 index 9b7e55a..0000000 Binary files a/FineUI.Examples/bin/CKEditor.NET.dll and /dev/null differ diff --git a/FineUI.Examples/bin/FineUI.Examples.dll b/FineUI.Examples/bin/FineUI.Examples.dll deleted file mode 100644 index 6272c97..0000000 Binary files a/FineUI.Examples/bin/FineUI.Examples.dll and /dev/null differ diff --git a/FineUI.Examples/bin/FineUI.dll b/FineUI.Examples/bin/FineUI.dll deleted file mode 100644 index 0768362..0000000 Binary files a/FineUI.Examples/bin/FineUI.dll and /dev/null differ diff --git a/FineUI.Examples/bin/FineUI.xml b/FineUI.Examples/bin/FineUI.xml deleted file mode 100644 index 47d050a..0000000 --- a/FineUI.Examples/bin/FineUI.xml +++ /dev/null @@ -1,21256 +0,0 @@ - - - - FineUI - - - - - 表单容器控件基类 - - - - - 可折叠面板控件基类(抽象类) - - - - - 面板控件基类(抽象类) - - - - - 容器控件基类(抽象类) - - - - - 控件基类(抽象类) - - - - - 控件基类(抽象类) - - - - - 控件基类(抽象类) - - - - - 构造函数 - - - - - 添加服务器AJAX属性 - - 属性列表 - - - - 添加客户端AJAX属性 - - 属性列表 - - - - 添加Gzip压缩属性 - - 属性列表 - - - - 标示是否初始化完成 - - - - - 页面初始化事件 - - - - - - 在备份初始化属性之前修改属性值 - - 此时对控件的属性做修改是安全的: - 1. 页面第一次加载时,运行到这里 ASPX 上面的标签已经初始化完毕 - 2. 页面回发时(包括正常回发或者AJAX回发),此时请求表单中 F_STATE 已经恢复完毕 - - - - - 重载 RenderControl,为了向子控件公开 RenderBeginTag 和 RenderEndTag 两个方法 - - 服务器控件输出流 - - - - 渲染控件的开始标签 - - 输出流 - - - - 渲染控件的结束标签 - - 输出流 - - - - 渲染 HTML 之前调用 - - - - - - 渲染 HTML 之前调用(计算被修改属性列表之前调用,可以在此修改属性) - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 获取FState的JS变量 - - - - - - 回发过程中此属性是否被改变 - 如果是客户端可以改变的属性,仅在服务器端改变时才返回 true, - (如果仅是客户端改变,则返回 false,因为客户端改变的属性不需要再输出相应的 JavaScript 脚本) - - - - - - - 回发过程中这些属性是否被改变 - 只要任何属性被改变,就返回 true - - - - - - - 从JObject恢复控件的属性 - - 对象属性的JObject形式 - - - - 将控件的属性列表转化为JObject对象 - - 属性列表 - 属性列表的JObject形式 - - - - AJAX 回发阶段,添加反映属性改变的 JavaScript 脚本 - - - - - - AJAX 回发阶段,添加反映属性改变的 JavaScript 脚本 - - - - - - 添加CSS样式 - - 键 - CSS内容 - - - - 删除CSS样式 - - 键 - - - - 向页面添加控件无关脚本 - - 客户端脚本 - - - - 向页面添加控件无关脚本 - - 客户端脚本 - 脚本层级 - - - - 添加控件相关脚本 - - 客户端脚本 - - - - 获取 Hidden 属性改变的 JavaScript 脚本 - 有些控件可能需要特别的逻辑,因此这里为虚函数(比如 Window 控件、Tab 控件) - - 客户端脚本 - - - - 获取 Enabled 属性改变的 JavaScript 脚本 - 有些控件可能需要特别的逻辑,因此这里为虚函数 - - 客户端脚本 - - - - 获取回发页面的客户端脚本(比如:__doPostBack('btnChangeEnable','');) - - 客户端脚本 - - - - 获取回发页面的客户端脚本(比如:__doPostBack('btnChangeEnable','true');) - - 事件参数 - 客户端脚本 - - - - 获取回发页面的客户端脚本(比如:__doPostBack('btnChangeEnable','true');) - - 事件参数 - 是否启用AJAX - 客户端脚本 - - - - 获取修改隐藏表单字段值的脚本(如果此隐藏表单字段不存在,则添加) - - 隐藏字段ID - 隐藏字段值 - - - - - 获取修改隐藏表单字段值的脚本(如果此隐藏表单字段不存在,则添加) - - 隐藏字段ID - 隐藏字段值 - 隐藏字段所在的页面对象(JavaScript实例window) - 客户端脚本 - - - - 添加Attributes中的属性值 - - HtmlNodeBuilder对象 - - - - 获取客户端事件处理函数 - - - - - - - - - 向 OB 中添加客户端事件处理函数 - - - - - - - - FState用来在服务器和客户端之间持久化控件状态。 - - - - - 目前Gzippped的属性支持JObject/JArray/String类型 - - - - - JavaScript中使用ID(比如:x0, x1) - - - - - 获取控件实例的JavaScript代码(比如:F('RegionPanel1_Button1')) - - - - - 是否向页面输出控件的外部容器(默认:true) - 否:只创建Javascript对象而不添加到页面中 - 是:创建Javascript对象,并添加到页面中,页面上添加占位符 - - - - - 参数对象创建器 - - - - - 从 HTTP 请求中恢复当前控件的状态 - 比如当前请求 Request.Form["F_STATE"] = {"btnClientClick":{"OnClientClick":"F.util.alert(\"This is an alert dialog\",\"\",Ext.MessageBox.INFO,'');"},"btnPressed":{"Pressed":false}} - 并且当前控件的 ClientID 是 "btnPressed",则返回值为 JObject 对象 {"Pressed":false} - - - - - 此控件所在的集合分组,只在BaseCollection中使用 - - - - - 不支持此属性(禁用控件默认的ViewState) - - - - - 控件的客户端ID(比如:RegionPanel1_Button1) - - - - - 控件外部容器的客户端ID(比如:Button1_wrapper) - - - - - 产品名称 - - - - - 产品版本 - - - - - HTML标签属性 - - - - - 控件ID - - - - - [AJAX属性]是否可用 - - - - - 指示控件是否被渲染出来(显示隐藏控件,请使用Hidden属性) - - - - - 只读属性,指示控件是否被渲染出来(显示隐藏控件,请使用Hidden属性) - - - - - [AJAX属性]是否隐藏控件 - - - - - 隐藏模式 - - - - - 是否启用AJAX - - - - - 是否启用FState压缩(默认为false) - - - - - 是否启用Ajax正在加载提示 - - - - - Ajax正在加载提示的类型 - - - - - 是否处于FineUI的AJAX回发过程 - - - - - 客户端事件列表 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 使控件获得焦点 - - - - - 使控件获得焦点,并选中控件中的文本内容 - - 是否选中控件中的文本内容 - - - - 使控件获得焦点,并选中控件中的文本内容 - - 是否选中控件中的文本内容 - 使控件获得焦点前延迟的毫秒数 - - - - 获得使控件获得焦点的脚本 - - JS脚本 - - - - 获得使控件获得焦点,并选中控件中的文本内容的脚本 - - 是否选中控件中的文本内容 - JS脚本 - - - - 获得使控件获得焦点,并选中控件中的文本内容的脚本 - - 是否选中控件中的文本内容 - 使控件获得焦点前延迟的毫秒数 - JS脚本 - - - - 为已经添加到OB中的Style增加新的样式 - 注意:这个key-value不会保存到属性CssStyle中 - - - - - - - 页面加载后立即获得焦点 - - - - - [AJAX属性]控件样式类名 - - - - - [AJAX属性]控件样式 - - - - - 外边距 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 获取当前控件的父容器 - - - - - - 宽度 - - - - - 高度 - - - - - 锚点值(当父容器的Layout=Anchor时有效) - - - - - 列的宽度(当父容器的Layout=Column时有效) - - - - - 行的宽度(当父容器的Layout=Row时有效) - - - - - 绝对定位的X坐标(当父容器的Layout=Absolute时有效) - - - - - 绝对定位的Y坐标(当父容器的Layout=Absolute时有效) - - - - - 表格列数(当父容器的Layout=Table时有效) - - - - - 表格合并行(当父容器的Layout=Table时有效) - - - - - 表格合并列(当父容器的Layout=Table时有效) - - - - - 控制子控件的位置(当本容器的Layout=VBox或者HBox时有效) - - - - - 控制子控件的位置(当本容器的Layout=VBox或者HBox时有效) - - - - - 内边距(当本容器的Layout=VBox或者HBox时有效) - - - - - 子控件的外边距(当本容器的Layout=VBox或者HBox时有效) - - - - - 控制子控件的尺寸(当父容器的Layout=VBox或者HBox时有效) - - - - - 是否显示分隔条 - - - - - 区域所在的位置 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不支持此属性 - - - - - 布局类型 - - - - - 构造函数 - - - - - 渲染控件的开始标签 - - 输出流 - - - - 渲染控件的结束标签 - - 输出流 - - - - 创建子控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 刷新面板中的IFrame页面 - - - - - 获取刷新面板中IFrame页面的客户端脚本 - - 客户端脚本 - - - - 重置面板中所有字段 - - - - - 获取重置面板中所有字段的客户端脚本 - - - - - - 清空面板内表单字段的改变状态 - - 客户端脚本 - - - - 是否自动滚动 - - - - - 启用自定义的圆角边框 - - - - - 内容区域的样式 - - - - - 内容区域的内边距,字符串类型,可以设置上下左右的内边距,比如'0px 5px'或'5px 10px 2px 2px' - - - - - 是否显示边框 - - - - - 工具栏控件 - - - - - 子控件 - - - - - 子控件 - - - - - [AJAX属性]IFrame的地址 - - - - - IFrame的名称 - - - - - 是否启用IFrame - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 处理回发事件 - - 事件参数 - - - - 触发折叠事件 - - 事件参数 - - - - 触发展开事件 - - 事件参数 - - - - 是否启用折叠事件 - - - - - 是否启用展开事件 - - - - - 是否展开 - - - - - [AJAX属性]是否折叠 - - - - - 是否允许折叠 - - - - - [AJAX属性]标题 - - - - - 是否显示标题栏 - - - - - 图标地址 - - - - - 图标 - - - - - 折叠事件 - - - - - 展开事件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 布局类型 - - - - - 标签的宽度 - - - - - 标签与字段的分隔符 - - - - - 距离右侧边界的宽度 - - - - - 标签的位置 - - - - - 表单中消息的位置 - - - - - 表单文本输入框字段基类(抽象类) - - - - - 表单文本输入框字段基类(抽象类) - - - - - 表单字段基类(抽象类) - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 重置此字段的值(比如用来清空FileUpload的内容) - - - - - 获取重置此字段的客户端脚本 - - - - - - 获取此字段值的客户端脚本(注意返回的脚本不带结束分号) - - 客户端脚本 - - - - 设置字段验证失败的提示信息 - - 提示信息 - - - - 清除验证失败的提示信息 - - - - - 获取字段验证失败提示信息的客户端脚本 - - 提示信息 - 客户端脚本 - - - - 获取清除验证失败提示信息的客户端脚本 - - 客户端脚本 - - - - 是否显示标签 - - - - - 是否显示空白的标签 - - - - - [AJAX属性]标签文本 - - - - - 在标签后面显示红色的星号(用来标识必填项) - - - - - [AJAX属性]表单控件的只读状态 - - - - - Tab按键的跳转顺序 - - - - - 表单中字段与标签的分隔符 - - - - - 距离右侧边界的宽度 - - - - - 标签的宽度 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 是否必填项 - - - - - 为空时提示信息 - - - - - 最大长度 - - - - - 超过最大长度时提示信息 - - - - - 最小长度 - - - - - 少于最小长度时提示信息 - - - - - RegexPattern - - - - - 正则表达式 - - - - - 不满足正则表达式时提示信息 - - - - - 正则表达式是否忽略大小写 - - - - - 需要比较的控件ID - - - - - 需要比较的值 - - - - - 比较操作符 - - - - - 比较的类型 - - - - - 不满足比较条件时提示信息 - - - - - 下一步获得焦点的控件(响应回车事件) - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 触发文本改变事件 - - 事件参数 - - - - 处理回发事件 - - 事件参数 - - - - 触发失去焦点事件 - - 事件参数 - - - - 文本框为空时显示的文本 - - - - - [AJAX属性]文本 - - - - - 是否自动回发(文本值改变) - - - - - 启用失去焦点事件 - - - - - 文本改变事件(需要启用AutoPostBack) - - - - - 失去焦点事件(需要启用EnableBlurEvent) - - - - - 客户端事件 - - - - - 构造函数 - - - - - 构造函数 - - 客户端事件名称 - 客户端事件处理函数名称 - - - - 客户端事件名称 - - - - - 客户端事件处理函数名称 - - - - - 客户端事件集合 - - - - - 获取客户端处理函数名称 - - 事件名称 - 客户端处理函数名称 - - - - 按钮类型 - - - - - 普通按钮(默认值) - - - - - 提交按钮(会为生成的input标签添加type="submit") - - - - - 重置按钮(会为生成的input标签添加type="reset") - - - - - 按钮类型名称 - - - - - 表格可编辑字段的类型 - - - - - 自动(默认值) - - - - - 字符串 - - - - - 整型 - - - - - 浮点数 - - - - - 布尔型 - - - - - 日期 - - - - - 表格可编辑字段的类型名称 - - - - - 表格可编辑字段渲染器 - - - - - 无(默认值) - - - - - 首字母大写 - - - - - 日期(RendererArgument来指定日期格式化字符串) - RendererArgument: - 1. d 月中的某一天。一位数的日期没有前导零。 - 2. dd 月中的某一天。一位数的日期有一个前导零。 - 3. ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。 - 4. dddd 周中某天的完整名称,在 DayNames 中定义。 - 5. M 月份数字。一位数的月份没有前导零。 - 6. MM 月份数字。一位数的月份有一个前导零。 - 7. MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。 - 8. MMMM 月份的完整名称,在 MonthNames 中定义。 - 9. y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。 - 10. yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。 - 11. yyyy 包括纪元的四位数的年份。 - - - - - 截断字符串并添加省略号(RendererArgument来指定最大长度) - - - - - 文件大小 - - - - - HTML编码 - - - - - HTML解码 - - - - - 转化为小写字符 - - - - - 转化为大写字符 - - - - - 换行符转换为HTML标签 - - - - - 删除所有的脚本标签 - - - - - 删除所有的标签 - - - - - 清除字符串两端的空白字符 - - - - - 表格可编辑字段渲染器名称 - - - - - 表单客户端验证提示消息的类型 - - - - - 浮动提示(默认值) - - - - - 使用HTML标签的title属性 - - - - - 在字段下面通过一个div层来显示消息 - - - - - 在字段右侧显示一个错误图标 - - - - - 不显示错误信息 - - - - - 提示消息的类型名称 - - - - - 表格合计行的位置 - - - - - 紧跟数据行(默认值) - - - - - 表格顶部 - - - - - 表格底部 - - - - - 表格合计行的位置名称 - - - - - 工具栏的排列位置 - - - - - 靠右 - - - - - 靠左(默认值) - - - - - 居中 - - - - - 工具栏的排列位置名称 - - - - - FineUI控件的状态保持机制 - - - - - 构造函数 - - 控件 - - - - 增加在当前请求中改变的属性列表(控件可以自己手工设置,以便保存在 F_STATE 中) - - - - - - 备份初始化属性值 - 在输出 AJAX 回发之前,会拿这个初始属性值和当时属性值做对比,以确定这些属性是否被用户改变 - - - - - 备份 PostData 的属性值(也就是在客户端改变的属性值) - - - - - - 计算被修改的属性列表(更新 ModifiedProperties 和 ClientPropertiesModifiedInServer 两个值) - 这个需要在 OnPreRender 中调用,在页面第一次加载,正常的回发以及AJAX回发时都要调用 - - - - - 页面第一次加载至今改变过的属性列表总和(其中可能经历多次正常的页面回发和局部 AJAX 回发) - - - - - - 获取设置 FState 属性值 - - - - - - - 当前请求中改变的属性列表,既包含服务器端改变的属性,也包含客户端改变的属性 - - - - - 客户端可以改变的属性在服务器端被改变了 - - - - - Extjs和.Net之间的日期格式转换 - - - - - 创建Javascript的Date对象字符串 - - 日期对象 - 日期的客户端脚本形式 - - - - 将.Net日期格式字符串转换为ExtJS的日期格式字符串 - - .Net日期格式字符串 - ExtJS的日期格式字符串 - - - - 母版页ContentPlaceHolder控件的容器 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 取得第一个子控件 - - - - - - - 不向页面输出控件的外部容器 - - - - - 自定义事件参数 - - - - - 构造函数 - - 事件参数 - - - - 事件参数 - - - - - 复选框/单选框/复选框菜单按钮的事件参数 - - - - - 构造函数 - - 是否选中 - - - - 是否选中 - - - - - 树节点展开事件参数 - - - - - 构造函数 - - 树节点 - - - - 构造函数 - - 树节点 - 树节点的数据源 - - - - 树实例 - - - - - 树节点ID - - - - - 树节点的数据源 - - - - - 树节点预绑定事件参数 - - - - - 构造函数 - - 树节点的数据源 - - - - 是否取消添加本节点 - - - - - 树节点的数据源 - - - - - 控件集合 - - - - - 控件集合 - - - - - 构造函数 - - 父控件实例 - - - - 向集合中插入一个元素 - - - - - - - 删除集合中的一个元素 - - - - - - 清空集合 - - - - - 获取类型 T 在父控件子集中的开始位置 - - - - - - 构造函数 - - 父控件实例 - - - - 控件集合 - - - - - 构造函数 - - 父控件实例 - - - - 控件内部不允许存在非标签形式的字符串 - - - - - 不允许空白字符 - - - - - - 忽略游离于标签外的字符串 - - - - - - 支持页分析器生成控件及其包含的子控件 - - - - - 允许空白字符 - - - - - - 不忽略游离于标签外的字符串 - - - - - - 全局配置参数 - - - - - 初始化section对象,如果在Web.config中没有定义,则初始化为空对象 - - - - - Runtime Section - - - - - Refer:http://flimflan.com/blog/AccessingWebconfigAtDesignTimeInNET20.aspx - - - - - - - 主题 - - - - - 语言 - - - - - 表单中消息的位置 - - - - - 表单中标签的位置 - - - - - 表单中字段距离右侧的宽度 - - - - - 表单中字段标签的宽度 - - - - - 表单中字段与标签的分隔符 - - - - - AJAX超时时间(单位:秒,默认:60s) - - - - - 是否启用Ajax - - - - - 是否启用AJAX提示 - - - - - AJAX提示的类型 - - - - - DEBUG 模式 - - - - - 图标的根路径 - - - - - JS库的根路径 - - - - - 自定义样式的根路径 - - - - - 自定义样式的名称 - - - - - 是否启用FState压缩 - - - - - 是否向页面输出IE=edge标识 - - - - - 是否启用表单改变确认对话框 - - - - - 产品名称 - - - - - 当前版本 - - - - - 为设计时提供集合编辑器 - - - - - 构造函数 - - 控件类型 - - - - 获取此集合编辑器可包含的数据类型 - - 类型集合 - - - - 为设计时提供的菜单项集合编辑器 - - - - - 构造函数 - - 控件类型 - - - - 获取此集合编辑器可包含的数据类型 - - 类型集合 - - - - 为设计时提供的工具栏项集合编辑器 - - - - - 构造函数 - - 控件类型 - - - - 获取此集合编辑器可包含的数据类型 - - 类型集合 - - - - 为设计时提供的表格列编辑器集合编辑器 - - - - - 构造函数 - - 控件类型 - - - - 获取此集合编辑器可包含的数据类型 - - 类型集合 - - - - 相比较的数据类型(用于表单控件的客户端验证) - - - - - 浮点数 - - - - - 整形 - - - - - 字符串(默认值) - - - - - 隐藏的模式 - - - - - 通过设置CSS属性visibility来控制显示隐藏 - - - - - 通过设置CSS属性top/left来控制显示隐藏 - - - - - 通过设置CSS属性display来控制显示隐藏(默认值) - - - - - 隐藏的模式名称 - - - - - 预定义图标 - - - - - None - - - - - Accept - - - - - Add - - - - - Anchor - - - - - Application - - - - - ApplicationAdd - - - - - ApplicationCascade - - - - - ApplicationDelete - - - - - ApplicationDouble - - - - - ApplicationEdit - - - - - ApplicationError - - - - - ApplicationForm - - - - - ApplicationFormAdd - - - - - ApplicationFormDelete - - - - - ApplicationFormEdit - - - - - ApplicationFormMagnify - - - - - ApplicationGet - - - - - ApplicationGo - - - - - ApplicationHome - - - - - ApplicationKey - - - - - ApplicationLightning - - - - - ApplicationLink - - - - - ApplicationOsx - - - - - ApplicationOsxAdd - - - - - ApplicationOsxCascade - - - - - ApplicationOsxDelete - - - - - ApplicationOsxDouble - - - - - ApplicationOsxError - - - - - ApplicationOsxGet - - - - - ApplicationOsxGo - - - - - ApplicationOsxHome - - - - - ApplicationOsxKey - - - - - ApplicationOsxLightning - - - - - ApplicationOsxLink - - - - - ApplicationOsxSplit - - - - - ApplicationOsxStart - - - - - ApplicationOsxStop - - - - - ApplicationOsxTerminal - - - - - ApplicationPut - - - - - ApplicationSideBoxes - - - - - ApplicationSideContract - - - - - ApplicationSideExpand - - - - - ApplicationSideList - - - - - ApplicationSideTree - - - - - ApplicationSplit - - - - - ApplicationStart - - - - - ApplicationStop - - - - - ApplicationTileHorizontal - - - - - ApplicationTileVertical - - - - - ApplicationViewColumns - - - - - ApplicationViewDetail - - - - - ApplicationViewGallery - - - - - ApplicationViewIcons - - - - - ApplicationViewList - - - - - ApplicationViewTile - - - - - ApplicationXp - - - - - ApplicationXpTerminal - - - - - ArrowBranch - - - - - ArrowDivide - - - - - ArrowDown - - - - - ArrowEw - - - - - ArrowIn - - - - - ArrowInout - - - - - ArrowInLonger - - - - - ArrowJoin - - - - - ArrowLeft - - - - - ArrowMerge - - - - - ArrowNe - - - - - ArrowNs - - - - - ArrowNsew - - - - - ArrowNw - - - - - ArrowNwNeSwSe - - - - - ArrowNwSe - - - - - ArrowOut - - - - - ArrowOutLonger - - - - - ArrowRedo - - - - - ArrowRefresh - - - - - ArrowRefreshSmall - - - - - ArrowRight - - - - - ArrowRotateAnticlockwise - - - - - ArrowRotateClockwise - - - - - ArrowSe - - - - - ArrowSw - - - - - ArrowSwitch - - - - - ArrowSwitchBluegreen - - - - - ArrowSwNe - - - - - ArrowTurnLeft - - - - - ArrowTurnRight - - - - - ArrowUndo - - - - - ArrowUp - - - - - AsteriskOrange - - - - - AsteriskRed - - - - - AsteriskYellow - - - - - Attach - - - - - AwardStarAdd - - - - - AwardStarBronze1 - - - - - AwardStarBronze2 - - - - - AwardStarBronze3 - - - - - AwardStarDelete - - - - - AwardStarGold1 - - - - - AwardStarGold2 - - - - - AwardStarGold3 - - - - - AwardStarSilver1 - - - - - AwardStarSilver2 - - - - - AwardStarSilver3 - - - - - Basket - - - - - BasketAdd - - - - - BasketDelete - - - - - BasketEdit - - - - - BasketError - - - - - BasketGo - - - - - BasketPut - - - - - BasketRemove - - - - - Bell - - - - - BellAdd - - - - - BellDelete - - - - - BellError - - - - - BellGo - - - - - BellLink - - - - - BellSilver - - - - - BellSilverStart - - - - - BellSilverStop - - - - - BellStart - - - - - BellStop - - - - - Bin - - - - - BinClosed - - - - - BinEmpty - - - - - Blank - - - - - Bomb - - - - - Book - - - - - Bookmark - - - - - BookmarkAdd - - - - - BookmarkDelete - - - - - BookmarkEdit - - - - - BookmarkError - - - - - BookmarkGo - - - - - BookAdd - - - - - BookAddresses - - - - - BookAddressesAdd - - - - - BookAddressesDelete - - - - - BookAddressesEdit - - - - - BookAddressesError - - - - - BookAddressesKey - - - - - BookDelete - - - - - BookEdit - - - - - BookError - - - - - BookGo - - - - - BookKey - - - - - BookLink - - - - - BookMagnify - - - - - BookNext - - - - - BookOpen - - - - - BookOpenMark - - - - - BookPrevious - - - - - BookRed - - - - - BookTabs - - - - - BorderAll - - - - - BorderBottom - - - - - BorderDraw - - - - - BorderInner - - - - - BorderInnerHorizontal - - - - - BorderInnerVertical - - - - - BorderLeft - - - - - BorderNone - - - - - BorderOuter - - - - - BorderRight - - - - - BorderTop - - - - - Box - - - - - BoxError - - - - - BoxPicture - - - - - BoxWorld - - - - - Brick - - - - - Bricks - - - - - BrickAdd - - - - - BrickDelete - - - - - BrickEdit - - - - - BrickError - - - - - BrickGo - - - - - BrickLink - - - - - BrickMagnify - - - - - Briefcase - - - - - Bug - - - - - BugAdd - - - - - BugDelete - - - - - BugEdit - - - - - BugError - - - - - BugFix - - - - - BugGo - - - - - BugLink - - - - - BugMagnify - - - - - Build - - - - - Building - - - - - BuildingAdd - - - - - BuildingDelete - - - - - BuildingEdit - - - - - BuildingError - - - - - BuildingGo - - - - - BuildingKey - - - - - BuildingLink - - - - - BuildCancel - - - - - BulletAdd - - - - - BulletArrowBottom - - - - - BulletArrowDown - - - - - BulletArrowTop - - - - - BulletArrowUp - - - - - BulletBlack - - - - - BulletBlue - - - - - BulletConnect - - - - - BulletCross - - - - - BulletDatabase - - - - - BulletDatabaseYellow - - - - - BulletDelete - - - - - BulletDisk - - - - - BulletEarth - - - - - BulletEdit - - - - - BulletEject - - - - - BulletError - - - - - BulletFeed - - - - - BulletGet - - - - - BulletGo - - - - - BulletGreen - - - - - BulletHome - - - - - BulletKey - - - - - BulletLeft - - - - - BulletLightning - - - - - BulletMagnify - - - - - BulletMinus - - - - - BulletOrange - - - - - BulletPageWhite - - - - - BulletPicture - - - - - BulletPink - - - - - BulletPlus - - - - - BulletPurple - - - - - BulletRed - - - - - BulletRight - - - - - BulletShape - - - - - BulletSparkle - - - - - BulletStar - - - - - BulletStart - - - - - BulletStop - - - - - BulletStopAlt - - - - - BulletTick - - - - - BulletToggleMinus - - - - - BulletTogglePlus - - - - - BulletWhite - - - - - BulletWrench - - - - - BulletWrenchRed - - - - - BulletYellow - - - - - Button - - - - - Cake - - - - - CakeOut - - - - - CakeSliced - - - - - Calculator - - - - - CalculatorAdd - - - - - CalculatorDelete - - - - - CalculatorEdit - - - - - CalculatorError - - - - - CalculatorLink - - - - - Calendar - - - - - CalendarAdd - - - - - CalendarDelete - - - - - CalendarEdit - - - - - CalendarLink - - - - - CalendarSelectDay - - - - - CalendarSelectNone - - - - - CalendarSelectWeek - - - - - CalendarStar - - - - - CalendarViewDay - - - - - CalendarViewMonth - - - - - CalendarViewWeek - - - - - Camera - - - - - CameraAdd - - - - - CameraConnect - - - - - CameraDelete - - - - - CameraEdit - - - - - CameraError - - - - - CameraGo - - - - - CameraLink - - - - - CameraMagnify - - - - - CameraPicture - - - - - CameraSmall - - - - - CameraStart - - - - - CameraStop - - - - - Cancel - - - - - Car - - - - - Cart - - - - - CartAdd - - - - - CartDelete - - - - - CartEdit - - - - - CartError - - - - - CartFull - - - - - CartGo - - - - - CartMagnify - - - - - CartPut - - - - - CartRemove - - - - - CarAdd - - - - - CarDelete - - - - - CarError - - - - - CarRed - - - - - CarStart - - - - - CarStop - - - - - Cd - - - - - Cdr - - - - - CdrAdd - - - - - CdrBurn - - - - - CdrCross - - - - - CdrDelete - - - - - CdrEdit - - - - - CdrEject - - - - - CdrError - - - - - CdrGo - - - - - CdrMagnify - - - - - CdrPlay - - - - - CdrStart - - - - - CdrStop - - - - - CdrStopAlt - - - - - CdrTick - - - - - CdAdd - - - - - CdBurn - - - - - CdDelete - - - - - CdEdit - - - - - CdEject - - - - - CdGo - - - - - CdMagnify - - - - - CdPlay - - - - - CdStop - - - - - CdStopAlt - - - - - CdTick - - - - - ChartBar - - - - - ChartBarAdd - - - - - ChartBarDelete - - - - - ChartBarEdit - - - - - ChartBarError - - - - - ChartBarLink - - - - - ChartCurve - - - - - ChartCurveAdd - - - - - ChartCurveDelete - - - - - ChartCurveEdit - - - - - ChartCurveError - - - - - ChartCurveGo - - - - - ChartCurveLink - - - - - ChartLine - - - - - ChartLineAdd - - - - - ChartLineDelete - - - - - ChartLineEdit - - - - - ChartLineError - - - - - ChartLineLink - - - - - ChartOrganisation - - - - - ChartOrganisationAdd - - - - - ChartOrganisationDelete - - - - - ChartOrgInverted - - - - - ChartPie - - - - - ChartPieAdd - - - - - ChartPieDelete - - - - - ChartPieEdit - - - - - ChartPieError - - - - - ChartPieLightning - - - - - ChartPieLink - - - - - CheckError - - - - - Clipboard - - - - - Clock - - - - - ClockAdd - - - - - ClockDelete - - - - - ClockEdit - - - - - ClockError - - - - - ClockGo - - - - - ClockLink - - - - - ClockPause - - - - - ClockPlay - - - - - ClockRed - - - - - ClockStart - - - - - ClockStop - - - - - ClockStop2 - - - - - Cmy - - - - - Cog - - - - - CogAdd - - - - - CogDelete - - - - - CogEdit - - - - - CogError - - - - - CogGo - - - - - CogStart - - - - - CogStop - - - - - Coins - - - - - CoinsAdd - - - - - CoinsDelete - - - - - Color - - - - - ColorSwatch - - - - - ColorWheel - - - - - Comment - - - - - Comments - - - - - CommentsAdd - - - - - CommentsDelete - - - - - CommentAdd - - - - - CommentDelete - - - - - CommentDull - - - - - CommentEdit - - - - - CommentPlay - - - - - CommentRecord - - - - - Compass - - - - - Compress - - - - - Computer - - - - - ComputerAdd - - - - - ComputerConnect - - - - - ComputerDelete - - - - - ComputerEdit - - - - - ComputerError - - - - - ComputerGo - - - - - ComputerKey - - - - - ComputerLink - - - - - ComputerMagnify - - - - - ComputerOff - - - - - ComputerStart - - - - - ComputerStop - - - - - ComputerWrench - - - - - Connect - - - - - Contrast - - - - - ContrastDecrease - - - - - ContrastHigh - - - - - ContrastIncrease - - - - - ContrastLow - - - - - Controller - - - - - ControllerAdd - - - - - ControllerDelete - - - - - ControllerError - - - - - ControlAdd - - - - - ControlAddBlue - - - - - ControlBlank - - - - - ControlBlankBlue - - - - - ControlEject - - - - - ControlEjectBlue - - - - - ControlEnd - - - - - ControlEndBlue - - - - - ControlEqualizer - - - - - ControlEqualizerBlue - - - - - ControlFastforward - - - - - ControlFastforwardBlue - - - - - ControlPause - - - - - ControlPauseBlue - - - - - ControlPlay - - - - - ControlPlayBlue - - - - - ControlPower - - - - - ControlPowerBlue - - - - - ControlRecord - - - - - ControlRecordBlue - - - - - ControlRemove - - - - - ControlRemoveBlue - - - - - ControlRepeat - - - - - ControlRepeatBlue - - - - - ControlRewind - - - - - ControlRewindBlue - - - - - ControlStart - - - - - ControlStartBlue - - - - - ControlStop - - - - - ControlStopBlue - - - - - Creditcards - - - - - Cross - - - - - Css - - - - - CssAdd - - - - - CssDelete - - - - - CssError - - - - - CssGo - - - - - CssValid - - - - - Cup - - - - - CupAdd - - - - - CupBlack - - - - - CupDelete - - - - - CupEdit - - - - - CupError - - - - - CupGo - - - - - CupGreen - - - - - CupKey - - - - - CupLink - - - - - CupTea - - - - - Cursor - - - - - CursorSmall - - - - - Cut - - - - - CutRed - - - - - Database - - - - - DatabaseAdd - - - - - DatabaseConnect - - - - - DatabaseCopy - - - - - DatabaseDelete - - - - - DatabaseEdit - - - - - DatabaseError - - - - - DatabaseGear - - - - - DatabaseGo - - - - - DatabaseKey - - - - - DatabaseLightning - - - - - DatabaseLink - - - - - DatabaseRefresh - - - - - DatabaseSave - - - - - DatabaseStart - - - - - DatabaseStop - - - - - DatabaseTable - - - - - DatabaseWrench - - - - - DatabaseYellow - - - - - DatabaseYellowStart - - - - - DatabaseYellowStop - - - - - Date - - - - - DateAdd - - - - - DateDelete - - - - - DateEdit - - - - - DateError - - - - - DateGo - - - - - DateLink - - - - - DateMagnify - - - - - DateNext - - - - - DatePrevious - - - - - Decline - - - - - Delete - - - - - DeviceStylus - - - - - Disconnect - - - - - Disk - - - - - DiskBlack - - - - - DiskBlackError - - - - - DiskBlackMagnify - - - - - DiskDownload - - - - - DiskEdit - - - - - DiskError - - - - - DiskMagnify - - - - - DiskMultiple - - - - - DiskUpload - - - - - Door - - - - - DoorError - - - - - DoorIn - - - - - DoorOpen - - - - - DoorOut - - - - - Drink - - - - - DrinkEmpty - - - - - DrinkRed - - - - - Drive - - - - - DriveAdd - - - - - DriveBurn - - - - - DriveCd - - - - - DriveCdr - - - - - DriveCdEmpty - - - - - DriveDelete - - - - - DriveDisk - - - - - DriveEdit - - - - - DriveError - - - - - DriveGo - - - - - DriveKey - - - - - DriveLink - - - - - DriveMagnify - - - - - DriveNetwork - - - - - DriveNetworkError - - - - - DriveNetworkStop - - - - - DriveRename - - - - - DriveUser - - - - - DriveWeb - - - - - Dvd - - - - - DvdAdd - - - - - DvdDelete - - - - - DvdEdit - - - - - DvdError - - - - - DvdGo - - - - - DvdKey - - - - - DvdLink - - - - - DvdStart - - - - - DvdStop - - - - - EjectBlue - - - - - EjectGreen - - - - - Email - - - - - EmailAdd - - - - - EmailAttach - - - - - EmailDelete - - - - - EmailEdit - - - - - EmailError - - - - - EmailGo - - - - - EmailLink - - - - - EmailMagnify - - - - - EmailOpen - - - - - EmailOpenImage - - - - - EmailStar - - - - - EmailStart - - - - - EmailStop - - - - - EmailTransfer - - - - - EmoticonEvilgrin - - - - - EmoticonGrin - - - - - EmoticonHappy - - - - - EmoticonSmile - - - - - EmoticonSurprised - - - - - EmoticonTongue - - - - - EmoticonUnhappy - - - - - EmoticonWaii - - - - - EmoticonWink - - - - - Erase - - - - - Error - - - - - ErrorAdd - - - - - ErrorDelete - - - - - ErrorGo - - - - - Exclamation - - - - - Eye - - - - - Eyes - - - - - Feed - - - - - FeedAdd - - - - - FeedDelete - - - - - FeedDisk - - - - - FeedEdit - - - - - FeedError - - - - - FeedGo - - - - - FeedKey - - - - - FeedLink - - - - - FeedMagnify - - - - - FeedStar - - - - - Female - - - - - Film - - - - - FilmAdd - - - - - FilmDelete - - - - - FilmEdit - - - - - FilmEject - - - - - FilmError - - - - - FilmGo - - - - - FilmKey - - - - - FilmLink - - - - - FilmMagnify - - - - - FilmSave - - - - - FilmStar - - - - - FilmStart - - - - - FilmStop - - - - - Find - - - - - FingerPoint - - - - - FlagAd - - - - - FlagAe - - - - - FlagAf - - - - - FlagAg - - - - - FlagAi - - - - - FlagAl - - - - - FlagAm - - - - - FlagAn - - - - - FlagAo - - - - - FlagAr - - - - - FlagAs - - - - - FlagAt - - - - - FlagAu - - - - - FlagAw - - - - - FlagAx - - - - - FlagAz - - - - - FlagBa - - - - - FlagBb - - - - - FlagBd - - - - - FlagBe - - - - - FlagBf - - - - - FlagBg - - - - - FlagBh - - - - - FlagBi - - - - - FlagBj - - - - - FlagBlack - - - - - FlagBlue - - - - - FlagBm - - - - - FlagBn - - - - - FlagBo - - - - - FlagBr - - - - - FlagBs - - - - - FlagBt - - - - - FlagBv - - - - - FlagBw - - - - - FlagBy - - - - - FlagBz - - - - - FlagCa - - - - - FlagCatalonia - - - - - FlagCc - - - - - FlagCd - - - - - FlagCf - - - - - FlagCg - - - - - FlagCh - - - - - FlagChecked - - - - - FlagCi - - - - - FlagCk - - - - - FlagCl - - - - - FlagCm - - - - - FlagCn - - - - - FlagCo - - - - - FlagCr - - - - - FlagCs - - - - - FlagCu - - - - - FlagCv - - - - - FlagCx - - - - - FlagCy - - - - - FlagCz - - - - - FlagDe - - - - - FlagDj - - - - - FlagDk - - - - - FlagDm - - - - - FlagDo - - - - - FlagDz - - - - - FlagEc - - - - - FlagEe - - - - - FlagEg - - - - - FlagEh - - - - - FlagEngland - - - - - FlagEr - - - - - FlagEs - - - - - FlagEt - - - - - FlagEuropeanunion - - - - - FlagFam - - - - - FlagFi - - - - - FlagFj - - - - - FlagFk - - - - - FlagFm - - - - - FlagFo - - - - - FlagFr - - - - - FlagFrance - - - - - FlagGa - - - - - FlagGb - - - - - FlagGd - - - - - FlagGe - - - - - FlagGf - - - - - FlagGg - - - - - FlagGh - - - - - FlagGi - - - - - FlagGl - - - - - FlagGm - - - - - FlagGn - - - - - FlagGp - - - - - FlagGq - - - - - FlagGr - - - - - FlagGreen - - - - - FlagGrey - - - - - FlagGs - - - - - FlagGt - - - - - FlagGu - - - - - FlagGw - - - - - FlagGy - - - - - FlagHk - - - - - FlagHm - - - - - FlagHn - - - - - FlagHr - - - - - FlagHt - - - - - FlagHu - - - - - FlagId - - - - - FlagIe - - - - - FlagIl - - - - - FlagIn - - - - - FlagIo - - - - - FlagIq - - - - - FlagIr - - - - - FlagIs - - - - - FlagIt - - - - - FlagJm - - - - - FlagJo - - - - - FlagJp - - - - - FlagKe - - - - - FlagKg - - - - - FlagKh - - - - - FlagKi - - - - - FlagKm - - - - - FlagKn - - - - - FlagKp - - - - - FlagKr - - - - - FlagKw - - - - - FlagKy - - - - - FlagKz - - - - - FlagLa - - - - - FlagLb - - - - - FlagLc - - - - - FlagLi - - - - - FlagLk - - - - - FlagLr - - - - - FlagLs - - - - - FlagLt - - - - - FlagLu - - - - - FlagLv - - - - - FlagLy - - - - - FlagMa - - - - - FlagMc - - - - - FlagMd - - - - - FlagMe - - - - - FlagMg - - - - - FlagMh - - - - - FlagMk - - - - - FlagMl - - - - - FlagMm - - - - - FlagMn - - - - - FlagMo - - - - - FlagMp - - - - - FlagMq - - - - - FlagMr - - - - - FlagMs - - - - - FlagMt - - - - - FlagMu - - - - - FlagMv - - - - - FlagMw - - - - - FlagMx - - - - - FlagMy - - - - - FlagMz - - - - - FlagNa - - - - - FlagNc - - - - - FlagNe - - - - - FlagNf - - - - - FlagNg - - - - - FlagNi - - - - - FlagNl - - - - - FlagNo - - - - - FlagNp - - - - - FlagNr - - - - - FlagNu - - - - - FlagNz - - - - - FlagOm - - - - - FlagOrange - - - - - FlagPa - - - - - FlagPe - - - - - FlagPf - - - - - FlagPg - - - - - FlagPh - - - - - FlagPink - - - - - FlagPk - - - - - FlagPl - - - - - FlagPm - - - - - FlagPn - - - - - FlagPr - - - - - FlagPs - - - - - FlagPt - - - - - FlagPurple - - - - - FlagPw - - - - - FlagPy - - - - - FlagQa - - - - - FlagRe - - - - - FlagRed - - - - - FlagRo - - - - - FlagRs - - - - - FlagRu - - - - - FlagRw - - - - - FlagSa - - - - - FlagSb - - - - - FlagSc - - - - - FlagScotland - - - - - FlagSd - - - - - FlagSe - - - - - FlagSg - - - - - FlagSh - - - - - FlagSi - - - - - FlagSj - - - - - FlagSk - - - - - FlagSl - - - - - FlagSm - - - - - FlagSn - - - - - FlagSo - - - - - FlagSr - - - - - FlagSt - - - - - FlagSv - - - - - FlagSy - - - - - FlagSz - - - - - FlagTc - - - - - FlagTd - - - - - FlagTf - - - - - FlagTg - - - - - FlagTh - - - - - FlagTj - - - - - FlagTk - - - - - FlagTl - - - - - FlagTm - - - - - FlagTn - - - - - FlagTo - - - - - FlagTr - - - - - FlagTt - - - - - FlagTv - - - - - FlagTw - - - - - FlagTz - - - - - FlagUa - - - - - FlagUg - - - - - FlagUm - - - - - FlagUs - - - - - FlagUy - - - - - FlagUz - - - - - FlagVa - - - - - FlagVc - - - - - FlagVe - - - - - FlagVg - - - - - FlagVi - - - - - FlagVn - - - - - FlagVu - - - - - FlagWales - - - - - FlagWf - - - - - FlagWhite - - - - - FlagWs - - - - - FlagYe - - - - - FlagYellow - - - - - FlagYt - - - - - FlagZa - - - - - FlagZm - - - - - FlagZw - - - - - FlowerDaisy - - - - - Folder - - - - - FolderAdd - - - - - FolderBell - - - - - FolderBookmark - - - - - FolderBrick - - - - - FolderBug - - - - - FolderCamera - - - - - FolderConnect - - - - - FolderDatabase - - - - - FolderDelete - - - - - FolderEdit - - - - - FolderError - - - - - FolderExplore - - - - - FolderFeed - - - - - FolderFilm - - - - - FolderFind - - - - - FolderFont - - - - - FolderGo - - - - - FolderHeart - - - - - FolderHome - - - - - FolderImage - - - - - FolderKey - - - - - FolderLightbulb - - - - - FolderLink - - - - - FolderMagnify - - - - - FolderPage - - - - - FolderPageWhite - - - - - FolderPalette - - - - - FolderPicture - - - - - FolderStar - - - - - FolderTable - - - - - FolderUp - - - - - FolderUser - - - - - FolderWrench - - - - - Font - - - - - FontAdd - - - - - FontColor - - - - - FontDelete - - - - - FontGo - - - - - FontLarger - - - - - FontSmaller - - - - - ForwardBlue - - - - - ForwardGreen - - - - - Group - - - - - GroupAdd - - - - - GroupDelete - - - - - GroupEdit - - - - - GroupError - - - - - GroupGear - - - - - GroupGo - - - - - GroupKey - - - - - GroupLink - - - - - Heart - - - - - HeartAdd - - - - - HeartBroken - - - - - HeartConnect - - - - - HeartDelete - - - - - Help - - - - - Hourglass - - - - - HourglassAdd - - - - - HourglassDelete - - - - - HourglassGo - - - - - HourglassLink - - - - - House - - - - - HouseConnect - - - - - HouseGo - - - - - HouseKey - - - - - HouseLink - - - - - HouseStar - - - - - Html - - - - - HtmlAdd - - - - - HtmlDelete - - - - - HtmlError - - - - - HtmlGo - - - - - HtmlValid - - - - - Image - - - - - Images - - - - - ImageAdd - - - - - ImageDelete - - - - - ImageEdit - - - - - ImageLink - - - - - ImageMagnify - - - - - ImageStar - - - - - Information - - - - - Ipod - - - - - IpodCast - - - - - IpodCastAdd - - - - - IpodCastDelete - - - - - IpodConnect - - - - - IpodNano - - - - - IpodNanoConnect - - - - - IpodSound - - - - - Joystick - - - - - JoystickAdd - - - - - JoystickConnect - - - - - JoystickDelete - - - - - JoystickError - - - - - Key - - - - - Keyboard - - - - - KeyboardAdd - - - - - KeyboardConnect - - - - - KeyboardDelete - - - - - KeyboardMagnify - - - - - KeyAdd - - - - - KeyDelete - - - - - KeyGo - - - - - KeyStart - - - - - KeyStop - - - - - Laptop - - - - - LaptopAdd - - - - - LaptopConnect - - - - - LaptopDelete - - - - - LaptopDisk - - - - - LaptopEdit - - - - - LaptopError - - - - - LaptopGo - - - - - LaptopKey - - - - - LaptopLink - - - - - LaptopMagnify - - - - - LaptopStart - - - - - LaptopStop - - - - - LaptopWrench - - - - - Layers - - - - - Layout - - - - - LayoutAdd - - - - - LayoutContent - - - - - LayoutDelete - - - - - LayoutEdit - - - - - LayoutError - - - - - LayoutHeader - - - - - LayoutKey - - - - - LayoutLightning - - - - - LayoutLink - - - - - LayoutSidebar - - - - - Lightbulb - - - - - LightbulbAdd - - - - - LightbulbDelete - - - - - LightbulbOff - - - - - Lightning - - - - - LightningAdd - - - - - LightningDelete - - - - - LightningGo - - - - - Link - - - - - LinkAdd - - - - - LinkBreak - - - - - LinkDelete - - - - - LinkEdit - - - - - LinkError - - - - - LinkGo - - - - - Lock - - - - - LockAdd - - - - - LockBreak - - - - - LockDelete - - - - - LockEdit - - - - - LockGo - - - - - LockKey - - - - - LockOpen - - - - - LockStart - - - - - LockStop - - - - - Lorry - - - - - LorryAdd - - - - - LorryDelete - - - - - LorryError - - - - - LorryFlatbed - - - - - LorryGo - - - - - LorryLink - - - - - LorryStart - - - - - LorryStop - - - - - MagifierZoomOut - - - - - Magnifier - - - - - MagnifierZoomIn - - - - - Mail - - - - - Male - - - - - Map - - - - - MapAdd - - - - - MapClipboard - - - - - MapCursor - - - - - MapDelete - - - - - MapEdit - - - - - MapError - - - - - MapGo - - - - - MapLink - - - - - MapMagnify - - - - - MapStart - - - - - MapStop - - - - - MedalBronze1 - - - - - MedalBronze2 - - - - - MedalBronze3 - - - - - MedalBronzeAdd - - - - - MedalBronzeDelete - - - - - MedalGold1 - - - - - MedalGold2 - - - - - MedalGold3 - - - - - MedalGoldAdd - - - - - MedalGoldDelete - - - - - MedalSilver1 - - - - - MedalSilver2 - - - - - MedalSilver3 - - - - - MedalSilverAdd - - - - - MedalSilverDelete - - - - - Money - - - - - MoneyAdd - - - - - MoneyDelete - - - - - MoneyDollar - - - - - MoneyEuro - - - - - MoneyPound - - - - - MoneyYen - - - - - Monitor - - - - - MonitorAdd - - - - - MonitorDelete - - - - - MonitorEdit - - - - - MonitorError - - - - - MonitorGo - - - - - MonitorKey - - - - - MonitorLightning - - - - - MonitorLink - - - - - MoonFull - - - - - Mouse - - - - - MouseAdd - - - - - MouseDelete - - - - - MouseError - - - - - Music - - - - - MusicNote - - - - - Neighbourhood - - - - - New - - - - - Newspaper - - - - - NewspaperAdd - - - - - NewspaperDelete - - - - - NewspaperGo - - - - - NewspaperLink - - - - - NewBlue - - - - - NewRed - - - - - NextBlue - - - - - NextGreen - - - - - Note - - - - - NoteAdd - - - - - NoteDelete - - - - - NoteEdit - - - - - NoteError - - - - - NoteGo - - - - - Outline - - - - - Overlays - - - - - Package - - - - - PackageAdd - - - - - PackageDelete - - - - - PackageDown - - - - - PackageGo - - - - - PackageGreen - - - - - PackageIn - - - - - PackageLink - - - - - PackageSe - - - - - PackageStart - - - - - PackageStop - - - - - PackageWhite - - - - - Page - - - - - PageAdd - - - - - PageAttach - - - - - PageBack - - - - - PageBreak - - - - - PageBreakInsert - - - - - PageCancel - - - - - PageCode - - - - - PageCopy - - - - - PageDelete - - - - - PageEdit - - - - - PageError - - - - - PageExcel - - - - - PageFind - - - - - PageForward - - - - - PageGear - - - - - PageGo - - - - - PageGreen - - - - - PageHeaderFooter - - - - - PageKey - - - - - PageLandscape - - - - - PageLandscapeShot - - - - - PageLightning - - - - - PageLink - - - - - PageMagnify - - - - - PagePaintbrush - - - - - PagePaste - - - - - PagePortrait - - - - - PagePortraitShot - - - - - PageRed - - - - - PageRefresh - - - - - PageSave - - - - - PageWhite - - - - - PageWhiteAcrobat - - - - - PageWhiteActionscript - - - - - PageWhiteAdd - - - - - PageWhiteBreak - - - - - PageWhiteC - - - - - PageWhiteCamera - - - - - PageWhiteCd - - - - - PageWhiteCdr - - - - - PageWhiteCode - - - - - PageWhiteCodeRed - - - - - PageWhiteColdfusion - - - - - PageWhiteCompressed - - - - - PageWhiteConnect - - - - - PageWhiteCopy - - - - - PageWhiteCplusplus - - - - - PageWhiteCsharp - - - - - PageWhiteCup - - - - - PageWhiteDatabase - - - - - PageWhiteDatabaseYellow - - - - - PageWhiteDelete - - - - - PageWhiteDvd - - - - - PageWhiteEdit - - - - - PageWhiteError - - - - - PageWhiteExcel - - - - - PageWhiteFind - - - - - PageWhiteFlash - - - - - PageWhiteFont - - - - - PageWhiteFreehand - - - - - PageWhiteGear - - - - - PageWhiteGet - - - - - PageWhiteGo - - - - - PageWhiteH - - - - - PageWhiteHorizontal - - - - - PageWhiteKey - - - - - PageWhiteLightning - - - - - PageWhiteLink - - - - - PageWhiteMagnify - - - - - PageWhiteMedal - - - - - PageWhiteOffice - - - - - PageWhitePaint - - - - - PageWhitePaintbrush - - - - - PageWhitePaint2 - - - - - PageWhitePaste - - - - - PageWhitePasteTable - - - - - PageWhitePhp - - - - - PageWhitePicture - - - - - PageWhitePowerpoint - - - - - PageWhitePut - - - - - PageWhiteRefresh - - - - - PageWhiteRuby - - - - - PageWhiteSideBySide - - - - - PageWhiteStack - - - - - PageWhiteStar - - - - - PageWhiteSwoosh - - - - - PageWhiteText - - - - - PageWhiteTextWidth - - - - - PageWhiteTux - - - - - PageWhiteVector - - - - - PageWhiteVisualstudio - - - - - PageWhiteWidth - - - - - PageWhiteWord - - - - - PageWhiteWorld - - - - - PageWhiteWrench - - - - - PageWhiteZip - - - - - PageWord - - - - - PageWorld - - - - - Paint - - - - - Paintbrush - - - - - PaintbrushColor - - - - - Paintcan - - - - - PaintcanRed - - - - - PaintCanBrush - - - - - Palette - - - - - PastePlain - - - - - PasteWord - - - - - PauseBlue - - - - - PauseGreen - - - - - PauseRecord - - - - - Pencil - - - - - PencilAdd - - - - - PencilDelete - - - - - PencilGo - - - - - Phone - - - - - PhoneAdd - - - - - PhoneDelete - - - - - PhoneEdit - - - - - PhoneError - - - - - PhoneGo - - - - - PhoneKey - - - - - PhoneLink - - - - - PhoneSound - - - - - PhoneStart - - - - - PhoneStop - - - - - Photo - - - - - Photos - - - - - PhotoAdd - - - - - PhotoDelete - - - - - PhotoEdit - - - - - PhotoLink - - - - - PhotoPaint - - - - - Picture - - - - - Pictures - - - - - PicturesThumbs - - - - - PictureAdd - - - - - PictureClipboard - - - - - PictureDelete - - - - - PictureEdit - - - - - PictureEmpty - - - - - PictureError - - - - - PictureGo - - - - - PictureKey - - - - - PictureLink - - - - - PictureSave - - - - - Pilcrow - - - - - Pill - - - - - PillAdd - - - - - PillDelete - - - - - PillError - - - - - PillGo - - - - - PlayBlue - - - - - PlayGreen - - - - - Plugin - - - - - PluginAdd - - - - - PluginDelete - - - - - PluginDisabled - - - - - PluginEdit - - - - - PluginError - - - - - PluginGo - - - - - PluginKey - - - - - PluginLink - - - - - PreviousGreen - - - - - Printer - - - - - PrinterAdd - - - - - PrinterCancel - - - - - PrinterColor - - - - - PrinterConnect - - - - - PrinterDelete - - - - - PrinterEmpty - - - - - PrinterError - - - - - PrinterGo - - - - - PrinterKey - - - - - PrinterMono - - - - - PrinterStart - - - - - PrinterStop - - - - - Rainbow - - - - - RainbowStar - - - - - RecordBlue - - - - - RecordGreen - - - - - RecordRed - - - - - Reload - - - - - Report - - - - - ReportAdd - - - - - ReportDelete - - - - - ReportDisk - - - - - ReportEdit - - - - - ReportGo - - - - - ReportKey - - - - - ReportLink - - - - - ReportMagnify - - - - - ReportPicture - - - - - ReportStart - - - - - ReportStop - - - - - ReportUser - - - - - ReportWord - - - - - ResultsetFirst - - - - - ResultsetLast - - - - - ResultsetNext - - - - - ResultsetPrevious - - - - - ReverseBlue - - - - - ReverseGreen - - - - - RewindBlue - - - - - RewindGreen - - - - - Rgb - - - - - Rosette - - - - - RosetteBlue - - - - - Rss - - - - - RssAdd - - - - - RssDelete - - - - - RssError - - - - - RssGo - - - - - RssValid - - - - - Ruby - - - - - RubyAdd - - - - - RubyDelete - - - - - RubyGear - - - - - RubyGet - - - - - RubyGo - - - - - RubyKey - - - - - RubyLink - - - - - RubyPut - - - - - Script - - - - - ScriptAdd - - - - - ScriptCode - - - - - ScriptCodeOriginal - - - - - ScriptCodeRed - - - - - ScriptDelete - - - - - ScriptEdit - - - - - ScriptError - - - - - ScriptGear - - - - - ScriptGo - - - - - ScriptKey - - - - - ScriptLightning - - - - - ScriptLink - - - - - ScriptPalette - - - - - ScriptSave - - - - - ScriptStart - - - - - ScriptStop - - - - - Seasons - - - - - SectionCollapsed - - - - - SectionExpanded - - - - - Server - - - - - ServerAdd - - - - - ServerChart - - - - - ServerCompressed - - - - - ServerConnect - - - - - ServerDatabase - - - - - ServerDelete - - - - - ServerEdit - - - - - ServerError - - - - - ServerGo - - - - - ServerKey - - - - - ServerLightning - - - - - ServerLink - - - - - ServerStart - - - - - ServerStop - - - - - ServerUncompressed - - - - - ServerWrench - - - - - Shading - - - - - ShapesMany - - - - - ShapesManySelect - - - - - Shape3d - - - - - ShapeAlignBottom - - - - - ShapeAlignCenter - - - - - ShapeAlignLeft - - - - - ShapeAlignMiddle - - - - - ShapeAlignRight - - - - - ShapeAlignTop - - - - - ShapeFlipHorizontal - - - - - ShapeFlipVertical - - - - - ShapeGroup - - - - - ShapeHandles - - - - - ShapeMoveBack - - - - - ShapeMoveBackwards - - - - - ShapeMoveForwards - - - - - ShapeMoveFront - - - - - ShapeRotateAnticlockwise - - - - - ShapeRotateClockwise - - - - - ShapeShadeA - - - - - ShapeShadeB - - - - - ShapeShadeC - - - - - ShapeShadow - - - - - ShapeShadowToggle - - - - - ShapeSquare - - - - - ShapeSquareAdd - - - - - ShapeSquareDelete - - - - - ShapeSquareEdit - - - - - ShapeSquareError - - - - - ShapeSquareGo - - - - - ShapeSquareKey - - - - - ShapeSquareLink - - - - - ShapeSquareSelect - - - - - ShapeUngroup - - - - - Share - - - - - Shield - - - - - ShieldAdd - - - - - ShieldDelete - - - - - ShieldError - - - - - ShieldGo - - - - - ShieldRainbow - - - - - ShieldSilver - - - - - ShieldStart - - - - - ShieldStop - - - - - Sitemap - - - - - SitemapColor - - - - - Smartphone - - - - - SmartphoneAdd - - - - - SmartphoneConnect - - - - - SmartphoneDelete - - - - - SmartphoneDisk - - - - - SmartphoneEdit - - - - - SmartphoneError - - - - - SmartphoneGo - - - - - SmartphoneKey - - - - - SmartphoneWrench - - - - - SortAscending - - - - - SortDescending - - - - - Sound - - - - - SoundAdd - - - - - SoundDelete - - - - - SoundHigh - - - - - SoundIn - - - - - SoundLow - - - - - SoundMute - - - - - SoundNone - - - - - SoundOut - - - - - Spellcheck - - - - - Sport8ball - - - - - SportBasketball - - - - - SportFootball - - - - - SportGolf - - - - - SportGolfPractice - - - - - SportRaquet - - - - - SportShuttlecock - - - - - SportSoccer - - - - - SportTennis - - - - - Star - - - - - StarBronze - - - - - StarBronzeHalfGrey - - - - - StarGold - - - - - StarGoldHalfGrey - - - - - StarGoldHalfSilver - - - - - StarGrey - - - - - StarHalfGrey - - - - - StarSilver - - - - - StatusAway - - - - - StatusBeRightBack - - - - - StatusBusy - - - - - StatusInvisible - - - - - StatusOffline - - - - - StatusOnline - - - - - Stop - - - - - StopBlue - - - - - StopGreen - - - - - StopRed - - - - - Style - - - - - StyleAdd - - - - - StyleDelete - - - - - StyleEdit - - - - - StyleGo - - - - - Sum - - - - - Tab - - - - - Table - - - - - TableAdd - - - - - TableCell - - - - - TableColumn - - - - - TableColumnAdd - - - - - TableColumnDelete - - - - - TableConnect - - - - - TableDelete - - - - - TableEdit - - - - - TableError - - - - - TableGear - - - - - TableGo - - - - - TableKey - - - - - TableLightning - - - - - TableLink - - - - - TableMultiple - - - - - TableRefresh - - - - - TableRelationship - - - - - TableRow - - - - - TableRowDelete - - - - - TableRowInsert - - - - - TableSave - - - - - TableSort - - - - - TabAdd - - - - - TabBlue - - - - - TabDelete - - - - - TabEdit - - - - - TabGo - - - - - TabGreen - - - - - TabRed - - - - - Tag - - - - - TagsGrey - - - - - TagsRed - - - - - TagBlue - - - - - TagBlueAdd - - - - - TagBlueDelete - - - - - TagBlueEdit - - - - - TagGreen - - - - - TagOrange - - - - - TagPink - - - - - TagPurple - - - - - TagRed - - - - - TagYellow - - - - - Telephone - - - - - TelephoneAdd - - - - - TelephoneDelete - - - - - TelephoneEdit - - - - - TelephoneError - - - - - TelephoneGo - - - - - TelephoneKey - - - - - TelephoneLink - - - - - TelephoneRed - - - - - Television - - - - - TelevisionAdd - - - - - TelevisionDelete - - - - - TelevisionIn - - - - - TelevisionOff - - - - - TelevisionOut - - - - - TelevisionStar - - - - - Textfield - - - - - TextfieldAdd - - - - - TextfieldDelete - - - - - TextfieldKey - - - - - TextfieldRename - - - - - TextAb - - - - - TextAlignCenter - - - - - TextAlignJustify - - - - - TextAlignLeft - - - - - TextAlignRight - - - - - TextAllcaps - - - - - TextBold - - - - - TextColumns - - - - - TextComplete - - - - - TextDirection - - - - - TextDoubleUnderline - - - - - TextDropcaps - - - - - TextFit - - - - - TextFlip - - - - - TextFontDefault - - - - - TextHeading1 - - - - - TextHeading2 - - - - - TextHeading3 - - - - - TextHeading4 - - - - - TextHeading5 - - - - - TextHeading6 - - - - - TextHorizontalrule - - - - - TextIndent - - - - - TextIndentRemove - - - - - TextInverse - - - - - TextItalic - - - - - TextKerning - - - - - TextLeftToRight - - - - - TextLetterspacing - - - - - TextLetterOmega - - - - - TextLinespacing - - - - - TextListBullets - - - - - TextListNumbers - - - - - TextLowercase - - - - - TextLowercaseA - - - - - TextMirror - - - - - TextPaddingBottom - - - - - TextPaddingLeft - - - - - TextPaddingRight - - - - - TextPaddingTop - - - - - TextReplace - - - - - TextRightToLeft - - - - - TextRotate0 - - - - - TextRotate180 - - - - - TextRotate270 - - - - - TextRotate90 - - - - - TextRuler - - - - - TextShading - - - - - TextSignature - - - - - TextSmallcaps - - - - - TextSpelling - - - - - TextStrikethrough - - - - - TextSubscript - - - - - TextSuperscript - - - - - TextTab - - - - - TextUnderline - - - - - TextUppercase - - - - - Theme - - - - - ThumbDown - - - - - ThumbUp - - - - - Tick - - - - - Time - - - - - TimelineMarker - - - - - TimeAdd - - - - - TimeDelete - - - - - TimeGo - - - - - TimeGreen - - - - - TimeRed - - - - - Transmit - - - - - TransmitAdd - - - - - TransmitBlue - - - - - TransmitDelete - - - - - TransmitEdit - - - - - TransmitError - - - - - TransmitGo - - - - - TransmitRed - - - - - Tux - - - - - User - - - - - UserAdd - - - - - UserAlert - - - - - UserB - - - - - UserBrown - - - - - UserComment - - - - - UserCross - - - - - UserDelete - - - - - UserEarth - - - - - UserEdit - - - - - UserFemale - - - - - UserGo - - - - - UserGray - - - - - UserGrayCool - - - - - UserGreen - - - - - UserHome - - - - - UserKey - - - - - UserMagnify - - - - - UserMature - - - - - UserOrange - - - - - UserRed - - - - - UserStar - - - - - UserSuit - - - - - UserSuitBlack - - - - - UserTick - - - - - Vcard - - - - - VcardAdd - - - - - VcardDelete - - - - - VcardEdit - - - - - VcardKey - - - - - Vector - - - - - VectorAdd - - - - - VectorDelete - - - - - VectorKey - - - - - Wand - - - - - WeatherCloud - - - - - WeatherClouds - - - - - WeatherCloudy - - - - - WeatherCloudyRain - - - - - WeatherLightning - - - - - WeatherRain - - - - - WeatherSnow - - - - - WeatherSun - - - - - Webcam - - - - - WebcamAdd - - - - - WebcamConnect - - - - - WebcamDelete - - - - - WebcamError - - - - - WebcamStart - - - - - WebcamStop - - - - - World - - - - - WorldAdd - - - - - WorldConnect - - - - - WorldDawn - - - - - WorldDelete - - - - - WorldEdit - - - - - WorldGo - - - - - WorldKey - - - - - WorldLink - - - - - WorldNight - - - - - WorldOrbit - - - - - Wrench - - - - - WrenchOrange - - - - - Xhtml - - - - - XhtmlAdd - - - - - XhtmlDelete - - - - - XhtmlError - - - - - XhtmlGo - - - - - XhtmlValid - - - - - Zoom - - - - - ZoomIn - - - - - ZoomOut - - - - - SystemClose - - - - - SystemNew - - - - - SystemSave - - - - - SystemSaveClose - - - - - SystemSaveNew - - - - - SystemSearch - - - - - 预定义图标名称 - - - - - 获取图标名称 - - - - - - - 获得图标的服务器地址 - - 图标 - 图标的服务器地址 - - - - 获取客户端可用的图标URL地址 - - 图标 - URL地址 - - - - 获取客户端可用的图标URL地址 - - 图标 - 图标地址 - URL地址 - - - - 将图标字符串转换为图标 - - 图标字符串 - 是否忽略大小写 - 图标 - - - - 将图标转换为图标字符串 - - 图标 - 图标字符串 - - - - 样式 - - - - - 蓝色 - - - - - 银灰色 - - - - - 高对比度 - - - - - 海王星(默认值) - - - - - 样式的类型名称 - - - - - 语言 - - - - - 英文 - - - - - 中文(默认值) - - - - - 中文(台湾) - - - - - 葡萄牙文(巴西) - - - - - 土耳其文 - - - - - 俄文 - - - - - 语言的类型名称 - - - - - 操作符(用于表单控件的客户端验证) - - - - - 等于(默认值) - - - - - 大于 - - - - - 大于等于 - - - - - 小于 - - - - - 小于等于 - - - - - 不等于 - - - - - 操作符名称 - - - - - 触发器输入框右侧图标的类型 - - - - - 无(默认值) - - - - - 搜索图标 - - - - - 清空图标 - - - - - 日期图标 - - - - - 系统图标名称 - - - - - 窗体的初始显示位置 - - - - - 页面的中部 - - - - - 页面的黄金分割点处(默认值) - - - - - 工具条的位置 - - - - - 顶部(默认值) - - - - - 底部 - - - - - 左侧 - - - - - 右侧 - - - - - 工具条的位置名称 - - - - - 窗体以及对话框的显示位置 - - - - - 当前页面(默认值) - - - - - 父页面 - - - - - 最外层页面 - - - - - Alert,Confirm,Window显示的位置 - - - - - Get target name used inside JavaScript code. - - - - - - - 正则表达式常用类型(用于表单控件的客户端验证) - - - - - 无(默认值) - - - - - 数字 - - - - - 字母 - - - - - 字母数字 - - - - - 字母下划线 - - - - - 字母数字下划线 - - - - - 小写字母 - - - - - 大写字母 - - - - - 电子邮箱 - - - - - 网址 - - - - - 邮政编码(中华人民共和国) - - - - - IP地址 - - - - - 身份证(中华人民共和国) - - - - - 正则表达式常用类型 内容 - - - - - 关闭窗体的动作 - - - - - 关闭窗体(默认值) - - - - - 关闭窗体后刷新父页面 - - - - - 关闭窗体后会发父页面(需要注册OnClose事件处理函数) - - - - - 关闭窗体的动作 - - - - - Region控件所在RegionPanel中的位置 - - - - - 上方 - - - - - 底部 - - - - - 左侧 - - - - - 右侧 - - - - - 中部(默认值) - - - - - 布局类型名称 - - - - - Tab标签的显示位置 - - - - - 顶部(默认值) - - - - - 底部 - - - - - 左侧 - - - - - 右侧 - - - - - Tab显示的位置名称 - - - - - 按钮上图标的摆放位置 - - - - - 靠上 - - - - - 靠右 - - - - - 靠下 - - - - - 靠左(默认值) - - - - - 图标摆放位置的名称 - - - - - 按钮的大小 - - - - - 小尺寸(默认值) - - - - - 中等尺寸 - - - - - 大尺寸 - - - - - 按钮的大小名称 - - - - - 在HBox布局或者VBox布局中,用来控制容器子控件的位置 - - - - - 所有子控件位于父容器的开始位置(废弃,请使用Start代替) - - - - - 所有子控件位于父容器的中间位置(废弃,请使用Center代替) - - - - - 所有子控件位于父容器的开始位置 - - - - - 所有子控件位于父容器的中间位置 - - - - - 所有子控件被拉伸至父容器的大小(默认值) - - - - - 所有子控件被拉伸至最大子控件的大小 - - - - - HBox或者VBox的位置的名称 - - - - - 在HBox布局或者VBox布局中,用来控制容器子控件的位置 - - - - - 子控件靠父容器的开始位置排列(废弃,请使用Start代替) - - - - - 子控件靠父容器的结束位置排列(废弃,请使用End代替) - - - - - 子控件靠父容器的中间位置排列 - - - - - 子控件靠父容器的开始位置排列(默认值) - - - - - 子控件靠父容器的结束位置排列 - - - - - HBox或者VBox的位置的名称 - - - - - Ajax提示信息的类型 - - - - - 在页面顶部显示黄色提示框(默认值) - - - - - Extjs的页面遮罩提示框 - - - - - Ajax提示信息的类型名称 - - - - - 文本排列位置 - - - - - 靠左排列(默认值) - - - - - 居中排列 - - - - - 靠右排列 - - - - - 文本排列位置名称 - - - - - 表单中标签的排列位置 - - - - - 靠左(默认值) - - - - - 靠右 - - - - - 靠上 - - - - - 表单中标签的排列位置名称 - - - - - 垂直排列位置 - - - - - 居中排列(默认值) - - - - - 靠上排列 - - - - - 靠下排列 - - - - - 垂直排列位置名称 - - - - - 创建Javascript数组参数的帮助类 - - - - - 构造函数 - - - - - 构造函数 - - 初始属性值 - - - - 构造函数 - - 初始属性值 - 是否保持原样 - - - - 删除属性 - - 属性值 - - - - 添加属性 - - 属性值 - - - - 添加属性 - - 属性值 - 是否保持原样 - - - - 将整个数组中元素顺序反转 - - - - - 返回对象的JSON字符串形式 - - 对象的JSON形式 - - - - 内部保存的数据 - - - - - 已经添加属性的个数 - - - - - 删除属性 - - - - - - 添加属性 - - - - - - - 添加属性 - - - - 是否保持原样 - - - - 使用这个方法需要特别注意,因为这里返回的不是设置的属性了 - 比如:"margin-right:5px;"被添加到OB中就变成:"\"margin-right:5px;\"" - - - - - - - 返回对象的Json字符串表示 - - - - - - 存在 Page.Items 上下文中,用于生成JavascriptID - - - - - 添加JS文件到页面的底部 - - - - - - - - 添加样式表到页头 - - - - - - - - 向页面头部添加内容 - - - - - - - - 页头是否包含控件 - - - - - - - - 取得下一个控件的位置 - - - - - - 资源处理程序 - - - - - 处理资源的请求 - - Http请求上下文 - - - - 只要请求的 URL 相同,则请求可以重用 - - - - - AJAX输出过滤器 - - - - - 设置引起本次回发的按钮(或其他控件)可用 - - - - - - 更新 EventValidation 节点的值 - - - - - - - 更新 ViewState 节点的值 - - - - - - - 更新ASP.NET控件 - - - - - - - 取得 HTML 中一个节点的值 - - - - - - - - 取得 HTML 中一个节点的OuterHtml - - - - - - - - 获取当前输出流的HTML内容 - - - - - - 请求处理模块(主要用来处理Response.Redirect的情况) - - - - - 清除资源 - - - - - 初始化模块 - - Http应用程序 - - - - 存在 Page.Items 上下文中,用于生成JavascriptID - - - - - 模拟树帮助类(用于表格和树控件) - - - - - 模拟树结构的节点类 - - - - - 模拟树的节点内容 - - - - - 节点内容 - - - - - 节点内容 - - - - - 节点所在层次(从0开始,0表示根节点) - - - - - 父节点 - - - - - 是否有弟节点 - - - - - 控件相关帮助函数 - - - - - 查找父控件 - - 当前控件 - 查找控件的类型 - 如果找到的控件实例继承自controlType,同样也认为是找到了 - 找到的第一个父控件 - - - - 查找父控件 - - 当前控件 - 查找控件的类型 - 找到的第一个父控件 - - - - 获得服务器控件ID的客户端ID数组 - - - - - - - 查找父层次结构中是否存在用户控件 - - 当前控件 - 父层次中的用户控件 - - - - 根据控件ID查找控件 - - 要查找的控件ID - 找到的控件 - - - - 根据控件类型查找控件 - - 要查找的控件类型 - 找到的控件 - - - - 在父控件的所有子控件中查找控件 - - 父控件 - 要查找的控件ID - 找到的控件 - - - - 在父控件的所有子控件中查找控件 - - 父控件 - 要查找的控件类型 - 找到的控件 - - - - 字符串帮助类 - - - - - GZIP压缩的ViewState隐藏字段的ID - - - - - GZIP压缩的ViewState隐藏字段的ID - - - - - 获取枚举实例 - - 枚举类型 - 枚举实例名称 - 枚举实例 - - - - 获取枚举实例名称 - - 枚举实例 - 枚举实例名称 - - - - 去除字符串中的Html - - 字符串 - 字符串 - - - - 将字符串"1,2,3"转化为整形列表[1,2,3] - - 字符串 - 整形列表 - - - - 将字符串"1,2,3"转化为整形列表[1,2,3] - - 字符串 - 返回之前是否对数组进行排序(由小到大) - 整形列表 - - - - 将字符串"ssdd,2,ok"转化为字符串列表["ssdd","2","ok"] - - 字符串 - 字符串列表 - - - - 将字符串"ssdd,2,ok"转化为字符串列表["ssdd","2","ok"] - - - 返回之前是否对数组进行排序(由小到大) - 字符串列表 - - - - 将字符串数组["ssdd","2","ok"]转化为字符串"ssdd,2,ok" - - 字符串数组 - 字符串 - - - - 将整型数组[2,3,4]转化为字符串"2,3,4" - - 整形数组 - 字符串 - - - - 比较两个整形数组是否相等 - - 整形数组1 - 整形数组2 - 是否相等 - - - - 比较两个字符串数组是否相等 - - 字符串数组1 - 字符串数组2 - 是否相等 - - - - 将 10% 转换为 0.1 的字符串的形式 - - 百分比字符串 - 小数 - - - - Base64解码 - - 需要解码的字节数组 - 解码后的字符串 - - - - Base64解码 - - 需要解码的字符串 - 解码后的字符串 - - - - Base64编码 - - 需要编码的字节数组 - 编码后的字符串 - - - - Base64编码 - - 需要编码的字符串 - 编码后的字符串 - - - - Gzip编码字符串 - - 源字符串 - Gzip后的字符串 - - - - 解码Gzip字符串 - - Gzip后的字符串 - 源字符串 - - - - 加载Gzipped的ViewState - - - - - - - 生成Gzipped的ViewState - - - - - - - 对象帮助类 - - - - - 获取对象的属性值 - - 可能是DataRowView或一个对象 - 属性名 - 属性值 - - - - 获取对象的属性值 - - 对象 - 属性名("Color"、"BodyStyle"或者"Info.UserName") - 属性值 - - - - 创建HTML节点的帮助类 - - - - - 构造函数 - - 节点名称 - - - - 设置属性 - - 属性名 - 属性值 - - - - 取得属性的值 - - 属性名 - 属性值 - - - - 转化为客户端可用的HTML标签字符串 - - 客户端可用的HTML标签字符串 - - - - 节点内部值 - - - - - 样式帮助类 - - - - - 提取样式字符串 - - CSS字符串 - 样式名称 - 样式字符串 - - - - 获取背景图片样式 - - 选择符 - 图片地址 - CSS样式 - - - - 获取背景图片样式(no-repeat) - - 选择符 - 图片地址 - CSS样式 - - - - 获取适合CSS的Margin或者Padding定义 - - 源字符串 - CSS样式 - - - - JSON帮助类 - - - - - 将JArray转换为整型数组 - - JArray对象 - 整型数组 - - - - 将JArray转换为字符串数组 - - JArray对象 - 字符串数组 - - - - 将JArray转换为对象数组 - - JArray对象 - 对象数组 - - - - A utility class to compute CRC32. - - - - - Compute a checksum for a given string. - - The string to compute the checksum for. - The computed checksum. - - - - Compute a checksum for a given array of bytes. - - The array of bytes to compute the checksum for. - The computed checksum. - - - - Represents an HTML attribute. - - - - - Creates a duplicate of this attribute. - - The cloned attribute. - - - - Compares the current instance with another attribute. Comparison is based on attributes' name. - - An attribute to compare with this instance. - A 32-bit signed integer that indicates the relative order of the names comparison. - - - - Gets the qualified name of the attribute. - - - - - Gets or sets the value of the attribute. - - - - - Gets the line number of this attribute in the document. - - - - - Gets the column number of this attribute in the document. - - - - - Gets the stream position of this attribute in the document, relative to the start of the document. - - - - - Gets the HTML node to which this attribute belongs. - - - - - Gets the HTML document to which this attribute belongs. - - - - - Represents a combined list and collection of HTML nodes. - - - - - Inserts the specified attribute as the last attribute in the collection. - - The attribute to insert. May not be null. - The appended attribute. - - - - Creates and inserts a new attribute as the last attribute in the collection. - - The name of the attribute to insert. - The appended attribute. - - - - Creates and inserts a new attribute as the last attribute in the collection. - - The name of the attribute to insert. - The value of the attribute to insert. - The appended attribute. - - - - Inserts the specified attribute as the first node in the collection. - - The attribute to insert. May not be null. - The prepended attribute. - - - - Removes the attribute at the specified index. - - The index of the attribute to remove. - - - - Removes a given attribute from the list. - - The attribute to remove. May not be null. - - - - Removes an attribute from the list, using its name. If there are more than one attributes with this name, they will all be removed. - - The attribute's name. May not be null. - - - - Remove all attributes in the list. - - - - - Returns an enumerator that can iterate through the list. - - An IEnumerator for the entire list. - - - - Gets the number of elements actually contained in the list. - - - - - Gets a given attribute from the list using its name. - - - - - Gets the attribute at the specified index. - - - - - Represents an enumerator that can iterate through the list. - - - - - Sets the enumerator to its initial position, which is before the first element in the collection. - - - - - Advances the enumerator to the next element of the collection. - - true if the enumerator was successfully advanced to the next element, false if the enumerator has passed the end of the collection. - - - - Gets the current element in the collection. - - - - - Gets the current element in the collection. - - - - - Represents an HTML comment. - - - - - Represents an HTML node. - - - - - Gets the name of a comment node. It is actually defined as '#comment'. - - - - - Gets the name of the document node. It is actually defined as '#document'. - - - - - Gets the name of a text node. It is actually defined as '#text'. - - - - - Gets a collection of flags that define specific behaviors for specific element nodes. - The table contains a DictionaryEntry list with the lowercase tag name as the Key, and a combination of HtmlElementFlags as the Value. - - - - - Determines if an element node is closed. - - The name of the element node to check. May not be null. - true if the name is the name of a closed element node, false otherwise. - - - - Determines if an element node can be kept overlapped. - - The name of the element node to check. May not be null. - true if the name is the name of an element node that can be kept overlapped, false otherwise. - - - - Determines if a text corresponds to the closing tag of an node that can be kept overlapped. - - The text to check. May not be null. - true or false. - - - - Determines if an element node is a CDATA element node. - - The name of the element node to check. May not be null. - true if the name is the name of a CDATA element node, false otherwise. - - - - Determines if an element node is defined as empty. - - The name of the element node to check. May not be null. - true if the name is the name of an empty element node, false otherwise. - - - - Creates an HTML node from a string representing literal HTML. - - The HTML text. - The newly created node instance. - - - - Creates a duplicate of the node and the subtree under it. - - The node to duplicate. May not be null. - - - - Creates a duplicate of the node. - - The node to duplicate. May not be null. - true to recursively clone the subtree under the specified node, false to clone only the node itself. - - - - Creates a new XPathNavigator object for navigating this HTML node. - - An XPathNavigator object. The XPathNavigator is positioned on the node from which the method was called. It is not positioned on the root of the document. - - - - Selects the first XmlNode that matches the XPath expression. - - The XPath expression. May not be null. - The first HtmlNode that matches the XPath query or a null reference if no matching node was found. - - - - Selects a list of nodes matching the XPath expression. - - The XPath expression. - An HtmlNodeCollection containing a collection of nodes matching the XPath query, or null if no node matched the XPath expression. - - - - Creates a duplicate of the node - - - - - - Creates a duplicate of the node and changes its name at the same time. - - The new name of the cloned node. May not be null. - The cloned node. - - - - Creates a duplicate of the node and changes its name at the same time. - - The new name of the cloned node. May not be null. - true to recursively clone the subtree under the specified node; false to clone only the node itself. - The cloned node. - - - - Creates a duplicate of the node. - - true to recursively clone the subtree under the specified node; false to clone only the node itself. - The cloned node. - - - - Removes all the children and/or attributes of the current node. - - - - - Removes all the children of the current node. - - - - - Removes the specified child node. - - The node being removed. May not be null. - The node removed. - - - - Removes the specified child node. - - The node being removed. May not be null. - true to keep grand children of the node, false otherwise. - The node removed. - - - - Replaces the child node oldChild with newChild node. - - The new node to put in the child list. - The node being replaced in the list. - The node replaced. - - - - Inserts the specified node immediately before the specified reference node. - - The node to insert. May not be null. - The node that is the reference node. The newChild is placed before this node. - The node being inserted. - - - - Inserts the specified node immediately after the specified reference node. - - The node to insert. May not be null. - The node that is the reference node. The newNode is placed after the refNode. - The node being inserted. - - - - Adds the specified node to the beginning of the list of children of this node. - - The node to add. May not be null. - The node added. - - - - Adds the specified node list to the beginning of the list of children of this node. - - The node list to add. May not be null. - - - - Adds the specified node to the end of the list of children of this node. - - The node to add. May not be null. - The node added. - - - - Adds the specified node to the end of the list of children of this node. - - The node list to add. May not be null. - - - - Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. - - The name of the attribute to get. May not be null. - The default value to return if not found. - The value of the attribute if found, the default value if not found. - - - - Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. - - The name of the attribute to get. May not be null. - The default value to return if not found. - The value of the attribute if found, the default value if not found. - - - - Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned. - - The name of the attribute to get. May not be null. - The default value to return if not found. - The value of the attribute if found, the default value if not found. - - - - Helper method to set the value of an attribute of this node. If the attribute is not found, it will be created automatically. - - The name of the attribute to set. May not be null. - The value for the attribute. - The corresponding attribute instance. - - - - Saves the current node to the specified TextWriter. - - The TextWriter to which you want to save. - - - - Saves the current node to the specified XmlWriter. - - The XmlWriter to which you want to save. - - - - Saves all the children of the node to the specified TextWriter. - - The TextWriter to which you want to save. - - - - Saves the current node to a string. - - The saved string. - - - - Saves all the children of the node to a string. - - The saved string. - - - - Gets or sets the value of the 'id' HTML attribute. The document must have been parsed using the OptionUseIdAttribute set to true. - - - - - Gets the line number of this node in the document. - - - - - Gets the column number of this node in the document. - - - - - Gets the stream position of this node in the document, relative to the start of the document. - - - - - Gets a value indicating if this node has been closed or not. - - - - - Gets or sets this node's name. - - - - - Gets or Sets the text between the start and end tags of the object. - - - - - Gets or Sets the HTML between the start and end tags of the object. - - - - - Gets or Sets the object and its content in HTML. - - - - - Gets the HTML node immediately following this element. - - - - - Gets the node immediately preceding this node. - - - - - Gets the first child of the node. - - - - - Gets the last child of the node. - - - - - Gets the type of this node. - - - - - Gets the parent of this node (for nodes that can have parents). - - - - - Gets the HtmlDocument to which this node belongs. - - - - - Gets all the children of the node. - - - - - Gets a value indicating whether the current node has any attributes. - - - - - Gets a value indicating whether the current node has any attributes on the closing tag. - - - - - Gets a value indicating whether this node has any child nodes. - - - - - Gets the collection of HTML attributes for this node. May not be null. - - - - - Gets the collection of HTML attributes for the closing tag. May not be null. - - - - - Gets or Sets the HTML between the start and end tags of the object. In the case of a text node, it is equals to OuterHtml. - - - - - Gets or Sets the object and its content in HTML. - - - - - Gets or Sets the comment text of the node. - - - - - Represents a complete HTML document. - - - - - Defines if a checksum must be computed for the document while parsing. Default is false. - - - - - Defines if declared encoding must be read from the document. - Declared encoding is determined using the meta http-equiv="content-type" content="text/html;charset=XXXXX" html node. - Default is true. - - - - - Defines if non closed nodes will be checked at the end of parsing. Default is true. - - - - - Defines if the 'id' attribute must be specifically used. Default is true. - - - - - Defines if empty nodes must be written as closed during output. Default is false. - - - - - Defines if output must conform to XML, instead of HTML. - - - - - Defines if name must be output in uppercase. Default is false. - - - - - Defines if attribute value output must be optimized (not bound with double quotes if it is possible). Default is false. - - - - - Adds Debugging attributes to node. Default is false. - - - - - Defines if source text must be extracted while parsing errors. - If the document has a lot of errors, or cascading errors, parsing performance can be dramatically affected if set to true. - Default is false. - - - - - Defines if closing for non closed nodes must be done at the end or directly in the document. - Setting this to true can actually change how browsers render the page. Default is false. - - - - - Defines if LI, TR, TH, TD tags must be partially fixed when nesting errors are detected. Default is false. - - - - - Defines the maximum length of source text or parse errors. Default is 100. - - - - - Defines the default stream encoding to use. Default is System.Text.Encoding.Default. - - - - - Defines the name of a node that will throw the StopperNodeException when found as an end node. Default is null. - - - - - Creates an instance of an HTML document. - - - - - Applies HTML encoding to a specified string. - - The input string to encode. May not be null. - The encoded string. - - - - Detects the encoding of an HTML stream. - - The input stream. May not be null. - The detected encoding. - - - - Detects the encoding of an HTML file. - - Path for the file containing the HTML document to detect. May not be null. - The detected encoding. - - - - Detects the encoding of an HTML text. - - The input html text. May not be null. - The detected encoding. - - - - Detects the encoding of an HTML text provided on a TextReader. - - The TextReader used to feed the HTML. May not be null. - The detected encoding. - - - - Loads an HTML document from a stream. - - The input stream. - - - - Loads an HTML document from a stream. - - The input stream. - Indicates whether to look for byte order marks at the beginning of the stream. - - - - Loads an HTML document from a stream. - - The input stream. - The character encoding to use. - - - - Loads an HTML document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the stream. - - - - Loads an HTML document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the stream. - The minimum buffer size. - - - - Loads an HTML document from a file. - - The complete file path to be read. May not be null. - - - - Loads an HTML document from a file. - - The complete file path to be read. May not be null. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads an HTML document from a file. - - The complete file path to be read. May not be null. - The character encoding to use. May not be null. - - - - Loads an HTML document from a file. - - The complete file path to be read. May not be null. - The character encoding to use. May not be null. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads an HTML document from a file. - - The complete file path to be read. May not be null. - The character encoding to use. May not be null. - Indicates whether to look for byte order marks at the beginning of the file. - The minimum buffer size. - - - - Loads the HTML document from the specified string. - - String containing the HTML document to load. May not be null. - - - - Detects the encoding of an HTML document from a file first, and then loads the file. - - The complete file path to be read. - - - - Detects the encoding of an HTML document from a file first, and then loads the file. - - The complete file path to be read. May not be null. - true to detect encoding, false otherwise. - - - - Loads the HTML document from the specified TextReader. - - The TextReader used to feed the HTML data into the document. May not be null. - - - - Saves the HTML document to the specified stream. - - The stream to which you want to save. - - - - Saves the HTML document to the specified stream. - - The stream to which you want to save. May not be null. - The character encoding to use. May not be null. - - - - Saves the mixed document to the specified file. - - The location of the file where you want to save the document. - - - - Saves the mixed document to the specified file. - - The location of the file where you want to save the document. May not be null. - The character encoding to use. May not be null. - - - - Saves the HTML document to the specified StreamWriter. - - The StreamWriter to which you want to save. - - - - Saves the HTML document to the specified TextWriter. - - The TextWriter to which you want to save. May not be null. - - - - Saves the HTML document to the specified XmlWriter. - - The XmlWriter to which you want to save. - - - - Creates a new XPathNavigator object for navigating this HTML document. - - An XPathNavigator object. The XPathNavigator is positioned on the root of the document. - - - - Gets a valid XML name. - - Any text. - A string that is a valid XML name. - - - - Gets the HTML node with the specified 'id' attribute value. - - The attribute id to match. May not be null. - The HTML node with the matching id or null if not found. - - - - Creates an HTML element node with the specified name. - - The qualified name of the element. May not be null. - The new HTML node. - - - - Creates an HTML comment node. - - The new HTML comment node. - - - - Creates an HTML comment node with the specified comment text. - - The comment text. May not be null. - The new HTML comment node. - - - - Creates an HTML text node. - - The new HTML text node. - - - - Creates an HTML text node with the specified text. - - The text of the node. May not be null. - The new HTML text node. - - - - Creates an HTML attribute with the specified name. - - The name of the attribute. May not be null. - The new HTML attribute. - - - - Creates an HTML attribute with the specified name. - - The name of the attribute. May not be null. - The value of the attribute. - The new HTML attribute. - - - - Determines if the specified character is considered as a whitespace character. - - The character to check. - true if if the specified character is considered as a whitespace character. - - - - Gets the remaining text. - Will always be null if OptionStopperNodeName is null. - - - - - Gets the offset of Remainder in the original Html text. - If OptionStopperNodeName is null, this will return the length of the original Html text. - - - - - Gets a list of parse errors found in the document. - - - - - Gets the document's stream encoding. - - - - - Gets the document's declared encoding. - Declared encoding is determined using the meta http-equiv="content-type" content="text/html;charset=XXXXX" html node. - - - - - Gets the document's output encoding. - - - - - Gets the root node of the document. - - - - - Gets the document CRC32 checksum if OptionComputeChecksum was set to true before parsing, 0 otherwise. - - - - - Flags that describe the behavior of an Element node. - - - - - The node is a CDATA node. - - - - - The node is empty. META or IMG are example of such nodes. - - - - - The node will automatically be closed during parsing. - - - - - The node can overlap. - - - - - A utility class to replace special characters by entities and vice-versa. - Follows HTML 4.0 specification found at http://www.w3.org/TR/html4/sgml/entities.html - - - - - Clone and entitize an HtmlNode. This will affect attribute values and nodes' text. It will also entitize all child nodes. - - The node to entitize. - An entitized cloned node. - - - - Replace characters above 127 by entities. - - The source text. - The result text. - - - - Replace characters above 127 by entities. - - The source text. - If set to false, the function will not use known entities name. Default is true. - The result text. - - - - Replace characters above 127 by entities. - - The source text. - If set to false, the function will not use known entities name. Default is true. - If set to true, the [quote], [ampersand], [lower than] and [greather than] characters will be entitized. - The result text - - - - Replace known entities by characters. - - The source text. - The result text. - - - - A collection of entities indexed by name. - - - - - A collection of entities indexed by value. - - - - - Represents a combined list and collection of HTML nodes. - - - - - Returns an enumerator that can iterate through the list. - - An IEnumerator for the entire list. - - - - Gets the number of elements actually contained in the list. - - - - - Gets the node at the specified index. - - - - - Gets a given node from the list. - - - - - Represents an enumerator that can iterate through the list. - - - - - Sets the enumerator to its initial position, which is before the first element in the collection. - - - - - Advances the enumerator to the next element of the collection. - - true if the enumerator was successfully advanced to the next element, false if the enumerator has passed the end of the collection. - - - - Gets the current element in the collection. - - - - - Gets the current element in the collection. - - - - - Represents an HTML navigator on an HTML document seen as a data store. - - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. - - The input stream. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. - - The input stream. - Indicates whether to look for byte order marks at the beginning of the stream. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. - - The input stream. - The character encoding to use. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the stream. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the stream. - The minimum buffer size. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a TextReader. - - The TextReader used to feed the HTML data into the document. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. - - The complete file path to be read. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. - - The complete file path to be read. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. - - The complete file path to be read. - The character encoding to use. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. - - The complete file path to be read. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Initializes a new instance of the HtmlNavigator and loads an HTML document from a file. - - The complete file path to be read. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - The minimum buffer size. - - - - Moves to the next sibling of the current node. - - true if the navigator is successful moving to the next sibling node, false if there are no more siblings or if the navigator is currently positioned on an attribute node. If false, the position of the navigator is unchanged. - - - - Moves to the previous sibling of the current node. - - true if the navigator is successful moving to the previous sibling node, false if there is no previous sibling or if the navigator is currently positioned on an attribute node. - - - - Moves to the first sibling of the current node. - - true if the navigator is successful moving to the first sibling node, false if there is no first sibling or if the navigator is currently positioned on an attribute node. - - - - Moves to the first child of the current node. - - true if there is a first child node, otherwise false. - - - - Moves to the parent of the current node. - - true if there is a parent node, otherwise false. - - - - Moves to the root node to which the current node belongs. - - - - - Moves to the same position as the specified HtmlNavigator. - - The HtmlNavigator positioned on the node that you want to move to. - true if successful, otherwise false. If false, the position of the navigator is unchanged. - - - - Moves to the node that has an attribute of type ID whose value matches the specified string. - - A string representing the ID value of the node to which you want to move. This argument does not need to be atomized. - true if the move was successful, otherwise false. If false, the position of the navigator is unchanged. - - - - Determines whether the current HtmlNavigator is at the same position as the specified HtmlNavigator. - - The HtmlNavigator that you want to compare against. - true if the two navigators have the same position, otherwise, false. - - - - Creates a new HtmlNavigator positioned at the same node as this HtmlNavigator. - - A new HtmlNavigator object positioned at the same node as the original HtmlNavigator. - - - - Gets the value of the HTML attribute with the specified LocalName and NamespaceURI. - - The local name of the HTML attribute. - The namespace URI of the attribute. Unsupported with the HtmlNavigator implementation. - The value of the specified HTML attribute. String.Empty or null if a matching attribute is not found or if the navigator is not positioned on an element node. - - - - Moves to the HTML attribute with matching LocalName and NamespaceURI. - - The local name of the HTML attribute. - The namespace URI of the attribute. Unsupported with the HtmlNavigator implementation. - true if the HTML attribute is found, otherwise, false. If false, the position of the navigator does not change. - - - - Moves to the first HTML attribute. - - true if the navigator is successful moving to the first HTML attribute, otherwise, false. - - - - Moves to the next HTML attribute. - - - - - - Returns the value of the namespace node corresponding to the specified local name. - Always returns string.Empty for the HtmlNavigator implementation. - - The local name of the namespace node. - Always returns string.Empty for the HtmlNavigator implementation. - - - - Moves the XPathNavigator to the namespace node with the specified local name. - Always returns false for the HtmlNavigator implementation. - - The local name of the namespace node. - Always returns false for the HtmlNavigator implementation. - - - - Moves the XPathNavigator to the first namespace node of the current element. - Always returns false for the HtmlNavigator implementation. - - An XPathNamespaceScope value describing the namespace scope. - Always returns false for the HtmlNavigator implementation. - - - - Moves the XPathNavigator to the next namespace node. - Always returns falsefor the HtmlNavigator implementation. - - An XPathNamespaceScope value describing the namespace scope. - Always returns false for the HtmlNavigator implementation. - - - - Gets the name of the current HTML node without the namespace prefix. - - - - - Gets the namespace URI (as defined in the W3C Namespace Specification) of the current node. - Always returns string.Empty in the case of HtmlNavigator implementation. - - - - - Gets the qualified name of the current node. - - - - - Gets the prefix associated with the current node. - Always returns string.Empty in the case of HtmlNavigator implementation. - - - - - Gets the type of the current node. - - - - - Gets the text value of the current node. - - - - - Gets the base URI for the current node. - Always returns string.Empty in the case of HtmlNavigator implementation. - - - - - Gets the xml:lang scope for the current node. - Always returns string.Empty in the case of HtmlNavigator implementation. - - - - - Gets a value indicating whether the current node is an empty element. - - - - - Gets the XmlNameTable associated with this implementation. - - - - - Gets a value indicating whether the current node has child nodes. - - - - - Gets a value indicating whether the current node has child nodes. - - - - - Gets the current HTML node. - - - - - Gets the current HTML document. - - - - - Represents the type of a node. - - - - - The root of a document. - - - - - An HTML element. - - - - - An HTML comment. - - - - - A text node is always the child of an element or a document node. - - - - - Represents a parsing error found during document parsing. - - - - - Gets the type of error. - - - - - Gets the line number of this error in the document. - - - - - Gets the column number of this error in the document. - - - - - Gets the absolute stream position of this error in the document, relative to the start of the document. - - - - - Gets the the full text of the line containing the error. - - - - - Gets a description for the error. - - - - - Represents the type of parsing error. - - - - - A tag was not closed. - - - - - A tag was not opened. - - - - - There is a charset mismatch between stream and declared (META) encoding. - - - - - An end tag was not required. - - - - - An end tag is invalid at this position. - - - - - Represents an HTML text node. - - - - - Gets or Sets the HTML between the start and end tags of the object. In the case of a text node, it is equals to OuterHtml. - - - - - Gets or Sets the object and its content in HTML. - - - - - Gets or Sets the text of the node. - - - - - A utility class to get HTML document from HTTP. - - - - - Occurs before an HTTP request is executed. - - - - - Occurs after an HTTP request has been executed. - - - - - Occurs before an HTML document is handled. - - - - - Creates an instance of an HtmlWeb class. - - - - - Gets an HTML document from an Internet resource and saves it to the specified file. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The location of the file where you want to save the document. - - - - Gets an HTML document from an Internet resource and saves it to the specified file. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The location of the file where you want to save the document. - The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. - - - - Gets an HTML document from an Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - A new HTML document. - - - - Loads an HTML document from an Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. - A new HTML document. - - - - Gets the cache file path for a specified url. - - The url fo which to retrieve the cache path. May not be null. - The cache file path. - - - - Gets the path extension for a given MIME content type. - - The input MIME content type. - The default path extension to return if any error occurs. - The MIME content type's path extension. - - - - Gets the MIME content type for a given path extension. - - The input path extension. - The default content type to return if any error occurs. - The path extention's MIME content type. - - - - Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The XmlTextWriter to which you want to save. - - - - Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter, after an XSLT transformation. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The URL that specifies the XSLT stylesheet to load. - An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. - The XmlTextWriter to which you want to save. - - - - Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter, after an XSLT transformation. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". May not be null. - The URL that specifies the XSLT stylesheet to load. - An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. - The XmlTextWriter to which you want to save. - A file path where the temporary XML before transformation will be saved. Mostly used for debugging purposes. - - - - Creates an instance of the given type from the specified Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The requested type. - An newly created instance. - - - - Creates an instance of the given type from the specified Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The URL that specifies the XSLT stylesheet to load. - An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. - The requested type. - An newly created instance. - - - - Creates an instance of the given type from the specified Internet resource. - - The requested URL, such as "http://Myserver/Mypath/Myfile.asp". - The URL that specifies the XSLT stylesheet to load. - An XsltArgumentList containing the namespace-qualified arguments used as input to the transform. - The requested type. - A file path where the temporary XML before transformation will be saved. Mostly used for debugging purposes. - An newly created instance. - - - - Gets a value indicating if the last document was retrieved from the cache. - - - - - Gets the URI of the Internet resource that actually responded to the request. - - - - - Gets or Sets a value indicating whether to get document only from the cache. - If this is set to true and document is not found in the cache, nothing will be loaded. - - - - - Gets or Sets a value indicating if cookies will be stored. - - - - - Gets the last request duration in milliseconds. - - - - - Gets or Sets a value indicating if document encoding must be automatically detected. - - - - - Gets the last request status. - - - - - Gets or Sets the size of the buffer used for memory operations. - - - - - Gets or Sets the cache path. If null, no caching mechanism will be used. - - - - - Gets or Sets a value indicating whether the caching mechanisms should be used or not. - - - - - Represents the method that will handle the PreRequest event. - - - - - Represents the method that will handle the PostResponse event. - - - - - Represents the method that will handle the PreHandleDocument event. - - - - - Represents an exception thrown by the HtmlWeb utility class. - - - - - Creates an instance of the HtmlWebException. - - The exception's message. - - - - Represents a document with mixed code and text. ASP, ASPX, JSP, are good example of such documents. - - - - - Gets or sets the token representing code start. - - - - - Gets or sets the token representing code end. - - - - - Gets or sets the token representing code directive. - - - - - Gets or sets the token representing response write directive. - - - - - Creates a mixed code document instance. - - - - - Loads a mixed code document from a stream. - - The input stream. - - - - Loads a mixed code document from a stream. - - The input stream. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads a mixed code document from a stream. - - The input stream. - The character encoding to use. - - - - Loads a mixed code document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads a mixed code document from a stream. - - The input stream. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - The minimum buffer size. - - - - Loads a mixed code document from a file. - - The complete file path to be read. - - - - Loads a mixed code document from a file. - - The complete file path to be read. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads a mixed code document from a file. - - The complete file path to be read. - The character encoding to use. - - - - Loads a mixed code document from a file. - - The complete file path to be read. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - - - - Loads a mixed code document from a file. - - The complete file path to be read. - The character encoding to use. - Indicates whether to look for byte order marks at the beginning of the file. - The minimum buffer size. - - - - Loads a mixed document from a text - - The text to load. - - - - Loads the mixed code document from the specified TextReader. - - The TextReader used to feed the HTML data into the document. - - - - Saves the mixed document to the specified stream. - - The stream to which you want to save. - - - - Saves the mixed document to the specified stream. - - The stream to which you want to save. - The character encoding to use. - - - - Saves the mixed document to the specified file. - - The location of the file where you want to save the document. - - - - Saves the mixed document to the specified file. - - The location of the file where you want to save the document. - The character encoding to use. - - - - Saves the mixed document to the specified StreamWriter. - - The StreamWriter to which you want to save. - - - - Saves the mixed document to the specified TextWriter. - - The TextWriter to which you want to save. - - - - Create a text fragment instances. - - The newly created text fragment instance. - - - - Create a code fragment instances. - - The newly created code fragment instance. - - - - Gets the encoding of the stream used to read the document. - - - - - Gets the list of code fragments in the document. - - - - - Gets the list of text fragments in the document. - - - - - Gets the list of all fragments in the document. - - - - - Gets the code represented by the mixed code document seen as a template. - - - - - Represents a fragment of code in a mixed code document. - - - - - Represents a base class for fragments in a mixed code document. - - - - - Gets the type of fragment. - - - - - Gets the fragment position in the document's stream. - - - - - Gets the line number of the fragment. - - - - - Gets the line position (column) of the fragment. - - - - - Gets the fragement text. - - - - - Gets the fragment code text. - - - - - Represents a list of mixed code fragments. - - - - - Appends a fragment to the list of fragments. - - The fragment to append. May not be null. - - - - Prepends a fragment to the list of fragments. - - The fragment to append. May not be null. - - - - Remove a fragment from the list of fragments. If this fragment was not in the list, an exception will be raised. - - The fragment to remove. May not be null. - - - - Remove a fragment from the list of fragments, using its index in the list. - - The index of the fragment to remove. - - - - Remove all fragments from the list. - - - - - Gets an enumerator that can iterate through the fragment list. - - - - - Gets an enumerator that can iterate through the fragment list. - - - - - Gets the number of fragments contained in the list. - - - - - Gets a fragment from the list using its index. - - - - - Represents a fragment enumerator. - - - - - Sets the enumerator to its initial position, which is before the first element in the collection. - - - - - Advances the enumerator to the next element of the collection. - - true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. - - - - Gets the current element in the collection. - - - - - Gets the current element in the collection. - - - - - Represents the type of fragement in a mixed code document. - - - - - The fragment contains code. - - - - - The fragment contains text. - - - - - Represents a fragment of text in a mixed code document. - - - - - Gets the fragment text. - - - - - JSBeautifyOptions - - - - - indent_size - - - - - indent_char - - - - - indent_level - - - - - preserve_newlines - - - - - JSBeautify - - - - - GetResult - - - - - - JSBeautify - - - - - - - 工具条控件集合 - - - - - 构造函数 - - 父控件实例 - - - - 菜单项复选框控件(单选框) - - - - - 菜单项控件基类(抽象类) - - - - - 菜单项控件基类(抽象类) - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 添加子控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 点击时隐藏菜单,可以配合使用CssStyle=cursor:default; - - - - - 图标地址 - - - - - 预定义图标 - - - - - 文本 - - - - - 上下文菜单 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 触发复选框状态改变事件 - - 事件参数 - - - - 分组名(如果指定分组名,则此控件被渲染为单选框) - - - - - [AJAX属性]是否选中 - - - - - 是否自动回发 - - - - - 复选框状态改变事件(需要启用AutoPostBack) - - - - - 定时器控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 获取 Hidden 属性改变的 JavaScript 脚本 - - 客户端脚本 - - - - 处理回发事件 - - 事件参数 - - - - 触发定时事件 - - 事件参数 - - - - 不向页面输出控件的外部容器 - - - - - 定时间隔(单位:秒) - - - - - 定时事件 - - - - - 支持提示的表单字段基类(抽象类) - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 添加提示信息 - - HtmlNodeBuilder实例 - - - - [AJAX属性]提示文本 - - - - - [AJAX属性]提示文本的标题 - - - - - [AJAX属性]是否自动隐藏提示信息 - - - - - 用户控件的容器 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 取得第一个子控件 - - - - - - - 不向页面输出控件的外部容器 - - - - - 单项按钮项 - - - - - 构造函数 - - - - - 构造函数 - - 文本 - 值 - - - - 构造函数 - - 文本 - 值 - 是否选中 - - - - 是否选中 - - - - - 显示的文本 - - - - - 值 - - - - - 单选项集合 - - - - - 通过文本查找单选项 - - 文本 - 单选项 - - - - 通过文本查找单选项 - - 文本 - 是否去除HTML标签 - 单选项 - - - - 通过值查找单选项 - - 值 - 单选项 - - - - 添加单选项 - - 文本 - 值 - 新元素的插入位置 - - - - 确认对话框帮助类(静态类) - - - - - 确认对话框默认图标 - - - - - 显示消息框 - - - - - - 显示消息框 - - - - - - - 显示消息框 - - - - - - - 显示消息框 - - - - - - - - 获取显示确认对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 对话框图标 - 客户端脚本 - - - - 获取显示确认对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 对话框图标 - 点击确定按钮执行的客户端脚本 - 点击取消按钮执行的客户端脚本 - 客户端脚本 - - - - 获取显示确认对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 对话框图标 - 点击确定按钮执行的客户端脚本 - 点击取消按钮执行的客户端脚本 - 弹出对话框的目标页面 - 客户端脚本 - - - - 当前活动窗体帮助类(静态类) - - - - - 获取将values值写回控件的客户端脚本 - - 需要写回的字符串列表 - 客户端脚本 - - - - 获取关闭当前激活窗体的客户端脚本 - - 客户端脚本 - - - - 获取关闭当前激活窗体并刷新父页面的客户端脚本 - - 客户端脚本 - - - - 获取关闭当前激活窗体并回发父页面的客户端脚本 - - 客户端脚本 - - - - 获取关闭当前激活窗体并回发父页面的客户端脚本 - - 回发参数 - 客户端脚本 - - - - 获取关闭当前激活窗体并执行脚本的客户端脚本 - - 回发参数 - 客户端脚本 - - - - 菜单项按钮控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发事件 - - 事件参数 - - - - 触发按钮点击事件 - - 事件参数 - - - - 是否可以回发 - - - - - 点击按钮时需要执行的客户端脚本 - - - - - 提交之前需要验证的表单名称列表 - - - - - 验证失败时提示对话框弹出位置 - - - - - 验证失败时是否出现提示对话框 - - - - - 确认对话框标题 - - - - - 确认对话框内容 - - - - - 确认对话框提示图标 - - - - - 确认对话框弹出位置 - - - - - 按钮点击事件 - - - - - 菜单项文本控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 菜单项分隔符控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 菜单项超链接控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 链接地址 - - - - - 链接目标 - - - - - 菜单项控件集合 - - - - - 构造函数 - - 父控件实例 - - - - 带下拉列表的按钮 - - - - - 按钮控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 获取按钮客户端点击事件的脚本 - - 验证表单列表 - 表单验证提示消息目标页面 - 是否显示表单验证提示对话框 - 启用回发 - 回发脚本 - 确认对话框消息 - 确认对话框标题 - 确认对话框图标 - 确认对话框目标页面 - 自定义客户端点击脚本 - 需要禁用的控件客户端ID - 客户端脚本 - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 处理回发事件 - - 事件参数 - - - - 触发按钮点击事件 - - 事件参数 - - - - 回发之前禁用按钮(防止重复提交) - - - - - 是否可以回发 - - - - - [AJAX属性]是否被按下 - - - - - 是否可以按下 - - - - - [AJAX属性]点击按钮时需要执行的客户端脚本 - - - - - [AJAX属性]预定义图标 - - - - - 按钮的大小 - - - - - 图标地址 - - - - - 图标摆放位置 - - - - - [AJAX属性]按钮文本 - - - - - [AJAX属性]提示文本 - - - - - 提示文本类型 - - - - - Tab键索引 - - - - - 按钮类型 - - - - - 需要验证的表单名称列表(逗号分隔) - - - - - 验证失败时提示对话框弹出位置 - - - - - 验证失败时是否出现提示对话框 - - - - - [AJAX属性]确认对话框标题 - - - - - [AJAX属性]确认对话框内容 - - - - - [AJAX属性]确认对话框提示图标 - - - - - [AJAX属性]确认对话框弹出位置 - - - - - 按钮的上下文菜单 - - - - - 按钮的上下文菜单 - - - - - 按钮点击事件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 菜单控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不向页面输出控件的外部容器 - - - - - 菜单项集合 - - - - - 页面配置管理器(每个页面必须包含一个 PageManager 控件) - - - - - 渲染控件的开始标签 - - 输出流 - - - - 渲染控件的结束标签 - - 输出流 - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 获取回发的客户端脚本(触发PageManager的CustomEvent事件) - - 事件参数 - 客户端脚本 - - - - 获取回发的客户端脚本(触发PageManager的CustomEvent事件) - - 事件参数 - 是否在回发前验证表单(在PageManager上进行表单配置) - 客户端脚本 - - - - 处理回发事件 - - 事件参数 - - - - 触发自定义事件 - - 事件参数 - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 自定义页面加载图片 - - - - - 自动调整此容器的宽度和高度,以填充整个页面 - - - - - 是否隐藏滚动条 - - - - - 每次页面回发后总是执行onReady脚本(包括Ajax局部回发) - - - - - 是否启用页面加载标示 - - - - - 需要在AJAX回发时更新的Asp.net控件列表(逗号分隔) - - - - - 本次AJAX请求过程中需要更新TemplateField的表格 - - - - - 本次AJAX请求过程中重新加载的表格 - - - - - 是否启用表单改变确认对话框 - - - - - 样式 - - - - - 自定义样式的根路径 - - - - - 自定义样式的名称 - - - - - 语言 - - - - - 是否启用Ajax - - - - - 是否启用Ajax正在加载提示 - - - - - Ajax正在加载提示的类型 - - - - - Ajax超时时间(单位:秒,默认:60秒) - - - - - 是否启用FState压缩(默认为false) - - - - - 是否向页面输出IE=edge标识 - - - - - 需要验证的表单名称列表(逗号分隔),需配合CustomEvent使用 - - - - - 验证失败时提示对话框弹出位置,需配合CustomEvent使用 - - - - - 验证失败时是否出现提示对话框,需配合CustomEvent使用 - - - - - 表单中消息的位置 - - - - - 表单中标签的位置 - - - - - 表单中右侧的空白宽度 - - - - - 表单中字段标签的宽度 - - - - - 表单中字段与标签的分隔符 - - - - - PageManager在当前页面的实例 - - - - - 自定义事件 - - - - - 图片控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - [AJAX属性]链接地址 - - - - - [AJAX属性]预定义图标 - - - - - [AJAX属性]图片的宽度 - - - - - [AJAX属性]图片的高度 - - - - - [AJAX属性]图片的样式类 - - - - - [AJAX属性]图片的样式 - - - - - [AJAX属性]图片的Alt - - - - - 文件上传控件 - - - - - 构造函数 - - - - - 将上载文件的内容保存到 Web 服务器上的指定路径 - - 保存的文件的名称 - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 处理回发事件 - - 事件参数 - - - - 触发文件选定事件 - - 事件参数 - - - - 不支持此属性 - - - - - 允许上传的文件类型(仅部分浏览器支持) - - - - - 按钮文本 - - - - - 是否只显示按钮,不显示只读输入框 - - - - - 按钮图标 - - - - - 按钮图标地址 - - - - - 上传的文件 - - - - - 是否包含文件 - - - - - 客户端文件名称,包含目录路径(IE下为完成路径,Chrome下为文件名) - - - - - 客户端文件名称,不包含目录路径 - - - - - 文件选定事件(需要启用AutoPostBack) - - - - - 隐藏表单控件 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 扩展文本框控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发事件 - - 事件参数 - - - - 触发第一个触发按钮点击事件 - - 事件参数 - - - - 触发第二个触发按钮点击事件 - - 事件参数 - - - - 是否允许编辑 - - - - - 是否显示触发器 - - - - - [AJAX属性]是否显示第一个触发器 - - - - - [AJAX属性]是否显示第一个触发器 - - - - - 是否可以回发第一个触发器 - - - - - 是否可以回发第一个触发器 - - - - - 第一个触发器图片 - - - - - 第二个触发器图片 - - - - - 第一个触发器图片 - - - - - 第二个触发器图片 - - - - - 点击第一个触发器时需要执行的客户端脚本 - - - - - 点击第二个触发器时需要执行的客户端脚本 - - - - - 第一个触发按钮点击事件 - - - - - 第二个触发按钮点击事件 - - - - - 链接按钮控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发事件 - - 事件参数 - - - - 触发按钮点击事件 - - 事件参数 - - - - [AJAX属性]文本 - - - - - [AJAX属性]点击按钮时需要执行的客户端脚本 - - - - - 提交之前需要验证的表单名称列表 - - - - - 验证失败时提示对话框弹出位置 - - - - - 验证失败时是否出现提示对话框 - - - - - 是否可以回发 - - - - - 是否对文本编码 - - - - - [AJAX属性]确认对话框标题 - - - - - [AJAX属性]确认对话框内容 - - - - - [AJAX属性]确认对话框提示图标 - - - - - [AJAX属性]确认对话框弹出位置 - - - - - 按钮点击事件 - - - - - 单选框列表控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 绑定到数据源 - - - - - 绑定到数据表 - - - - - - 绑定到可枚举列表 - - - - - - 取得属性值 - - - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 触发选中项改变事件 - - 事件参数 - - - - 是否必填项 - - - - - 为空时提示信息 - - - - - 是否自动回发 - - - - - 渲染成几列 - - - - - 是否按照纵向顺序渲染 - - - - - 显示文本的数据字段 - - - - - 显示文本的格式化字符串 - - - - - 显示值的数据字段 - - - - - 数据源 - - - - - [AJAX属性]选中项的值 - - - - - [AJAX属性]选中项的索引 - - - - - 选中项 - - - - - 单选项集合 - - - - - 保存的单选项数据(内部使用) - - - - - 选中项改变事件(需要启用AutoPostBack) - - - - - 单选框控件 - - - - - 构造函数 - - - - - 设置本组内其他RadioButton的Checked属性为false - 简单处理,只查找和此RadioButton在同一个层级的RadioButton - - - - - 初始化控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 触发单选框状态改变事件 - - 事件参数 - - - - 文本 - - - - - [AJAX属性]是否选中 - - - - - 分组的名称 - - - - - 是否自动回发 - - - - - 单选框状态改变事件(需要启用AutoPostBack) - - - - - 扩展文本框控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 触发按钮点击事件 - - 事件参数 - - - - 处理回发事件 - - 事件参数 - - - - 是否允许编辑 - - - - - 是否显示触发器 - - - - - 是否可以回发 - - - - - 右侧按钮的图片 - - - - - 右侧的图标 - - - - - 点击按钮时需要执行的客户端脚本 - - - - - 触发按钮点击事件 - - - - - 为设计时提供的表格列集合编辑器 - - - - - 构造函数 - - 控件类型 - - - - 获取此集合编辑器可包含的数据类型 - - 类型集合 - - - - 表格行选中事件参数 - - - - - 构造函数 - - 行索引 - - - - 行索引 - - - - - 表格行点击事件参数 - - - - - 构造函数 - - 行索引 - /// 列ID - - - - 行索引 - - - - - 列ID - - - - - 表格列基类(抽象类) - - - - - 表格列基类(抽象类) - - - - - 取得列头渲染后的HTML - - 渲染后的HTML - - - - 取得列渲染后的HTML - - 表格行实例 - 渲染后的HTML - - - - 获取列的状态 - - - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 添加表格列的渲染脚本 - - - - - - 表格对象 - - - - - 列索引 - - - - - 排序字段 - - - - - 允许锁定 - - - - - 是否处于锁定状态 - - - - - 是否隐藏列 - - - - - 列ID(如果没有设置,则为ClientID) - - - - - 标题栏显示的文字 - - - - - 标题栏文字的提示文本 - - - - - 标题栏文字的提示文本类型 - - - - - 列宽度 - - - - - 控制子控件的尺寸(表格列使用HBox布局) - - - - - 此列会扩展所有未使用的宽度 - - - - - 文本的排列位置 - - - - - 启用表头菜单 - - - - - 启用隐藏列功能 - - - - - 表格单元格容器样式类 - - - - - 本列是否需要保存状态(目前只有CheckBoxField实现了这个定义) - - - - - 取得提示字符串 - - - - - - - 此列模拟树显示时的层次字段 - - - - - 提示文本 - - - - - 提示字段名称 - - - - - 提示字段格式化字符串 - - - - - 表格可编辑列 - - - - - 表格可编辑列的基类 - - - - - 字段名称 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 单元格编辑控件 - - - - - 字段类型 - - - - - 渲染器 - - - - - 渲染器的参数 - - - - - 自定义渲染器函数(JavaScript函数) - - - - - 处理数据库中null值,默认为空字符串 - - - - - 显示之前进行HTML编码(默认为true) - - - - - 表格可编辑复选框列 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 表格数据绑定列 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 启用表头菜单 - - - - - 是否允许隐藏列 - - - - - 是否启用分页行号 - - - - - 表格分组列 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 列数据 - - - - - 区域面板控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 布局类型 - - - - - 区域集合 - - - - - 手风琴控件 - - - - - - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 处理回发事件 - - 事件参数 - - - - 触发面板改变事件 - - 事件参数 - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 布局类型 - - - - - 是否启用折叠按钮 - - - - - 是否启用激活在最上面 - - - - - 是否启用填充整个区域 - - - - - 切换面板时是否自动回发 - - - - - [AJAX属性]激活面板的索引 - - - - - 当前激活的面板 - - - - - 手风琴面板集合 - - - - - 面板改变事件 - - - - - 手风琴面板控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 鼠标移到标题栏是否高亮显示 - - - - - 手风琴面板控件集合 - - - - - 构造函数 - - 父控件实例 - - - - 树节点命令事件参数 - - - - - 构造函数 - - 树节点 - 命令名称 - 命令参数 - - - - 树实例 - - - - - 树节点ID - - - - - 命令名称 - - - - - 命令参数 - - - - - 树节点选中事件参数 - - - - - 构造函数 - - 树节点 - 是否选中 - - - - 树节点 - - - - - 节点ID - - - - - 是否选中 - - - - - 树节点 - - - - - 设置属性的值 - - - - - - - 树实例 - - - - - 父节点 - - - - - 树节点集合 - - - - - 展开树节点是否回发 - - - - - 折叠树节点是否回发 - - - - - 单击树节点是否回发 - - - - - 点击按钮时需要执行的客户端脚本 - - - - - 命令名称 - - - - - 命令参数 - - - - - 是否选中 - - - - - 是否启用复选框 - - - - - 改变复选框状态是否自动回发 - - - - - 文本 - - - - - 树节点ID - - - - - 是否叶子节点 - - - - - 是否可用 - - - - - 是否展开 - - - - - 链接目标 - - - - - 链接地址 - - - - - 图标地址 - - - - - 预定义图标 - - - - - 提示文本 - - - - - 树节点控件集合 - - - - - 构造函数 - - 树实例 - 父节点 - - - - 插入树节点 - - 插入索引位置 - 树节点实例 - - - - 设置每个节点的Tree实例 - - - - - - 树节点的属性映射 - - - - - 映射源 - - - - - 映射目标 - - - - - 树节点的属性映射集合 - - - - - 窗体关闭事件参数 - - - - - 构造函数 - - 关闭参数 - - - - 关闭参数 - - - - - 表格行预绑定事件参数 - - - - - 构造函数 - - 行数据源 - 行索引 - - - - 是否取消添加本节点 - - - - - 行数据源(如果数据源为DataTable,则DataItem为DataRowView) - - - - - 行索引 - - - - - 表格分页事件参数 - - - - - 构造函数 - - 新页面的索引 - - - - 新页面的索引 - - - - - 表格行命令事件参数 - - - - - 构造函数 - - 行索引 - 列索引 - 命令名称 - 命令参数 - - - - 行索引 - - - - - 列索引 - - - - - 命令名称 - - - - - 命令参数 - - - - - 表格行绑定事件参数 - - - - - 构造函数 - - 行数据源 - 行索引 - 本行各列的值 - - - - 本行各列的值(渲染后的HTML片段) - - - - - 行数据源 - - - - - 行索引 - - - - - 表格行点击事件参数 - - - - - 构造函数 - - 行索引 - - - - 行索引 - - - - - 表格链接按钮列 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 启用表头菜单 - - - - - 是否允许隐藏列 - - - - - 字段名称 - - - - - 字段格式化字符串 - - - - - 按钮文本 - - - - - 显示之前进行HTML编码(默认为true) - - - - - 是否在应用DataFormatString属性之后进行HTML编码(默认为true) - - - - - 是否可以回发 - - - - - 是否可用 - - - - - 点击按钮时需要执行的客户端脚本 - - - - - 提交之前需要验证的表单名称列表 - - - - - 验证失败时提示对话框弹出位置 - - - - - 验证失败时是否出现提示对话框 - - - - - 图标 - - - - - 图标地址 - - - - - 确认对话框标题 - - - - - 确认对话框内容 - - - - - 确认对话框提示图标 - - - - - 确认对话框弹出位置 - - - - - 命令名称 - - - - - 命令参数 - - - - - 是否启用AJAX - - - - - 区域控件 - - - - - Tab 控件必须包含在 TabStrip 中 - - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 是否可以拖动分隔条 - - - - - 位置 - - - - - Region控件集合 - - - - - 构造函数 - - 父控件实例 - - - - 日期控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发事件 - - 事件参数 - - - - 触发日期选定事件 - - 事件参数 - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - [AJAX属性]选择的日期 - - - - - 日期格式 - - - - - 最大日期 - - - - - 最小日期 - - - - - 选择日期是否自动回发 - - - - - 日期选定事件(需要启用EnableDateSelect) - - - - - 工具条控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 页脚工具栏的排列位置 - - - - - 工具条的位置 - - - - - 工具条项集合 - - - - - 工具栏文本控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - [AJAX属性]文本 - - - - - 工具栏分隔符控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 工具栏左右分隔符控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 链接控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不支持此属性 - - - - - [AJAX属性]文本 - - - - - [AJAX属性]点击链接时需要执行的客户端脚本 - - - - - [AJAX属性]链接地址 - - - - - [AJAX属性]链接目标 - - - - - 是否对文本编码 - - - - - 页面上下文帮助类(静态类),包括向页面注册脚本、刷新当前页面、页面重定向等实用函数 - - - - - 跳转到指定的Url - - - - - - 跳转到指定的Url,Target指定在哪个窗口中跳转(_self,_parent,_top) - - - _self,_parent,_top - - - - 刷新当前页面 - - - - - 刷新指定页面 - - 目标页面 - - - - 注册页面脚本 - - 客户端脚本 - - - - 树控件 - - - - - 构造函数 - - - - - 初始化控件 - - - - - 渲染 HTML 之前调用 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 绑定数据源 - - - - - - 如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起页面死循环回发 - 同时处理 AutoLeafIdentification 属性 - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 处理回发事件 - - 事件参数 - - - - 触发节点绑定后事件 - - 事件参数 - - - - 触发节点预绑定事件 - - 事件参数 - - - - 触发节点选中事件 - - 事件参数 - - - - 触发节点点击事件 - - 事件参数 - - - - 触发节点展开事件 - - 事件参数 - - - - 触发节点展开事件 - - 事件参数 - - - - 触发节点延迟加载事件 - - 事件参数 - - - - 获取所有展开节点的ID数组 - - 节点的ID数组 - - - - 获取指定节点集合中所有展开节点的ID数组 - - 指定的节点集合 - 节点的ID数组 - - - - 获取所有展开节点的数组 - - 节点的数组 - - - - 获取指定节点集合中所有展开节点的数组 - - 指定的节点集合 - 节点的数组 - - - - 折叠所有节点 - - - - - 折叠指定节点集合中的所有节点 - - 指定的节点集合 - - - - 展开所有节点 - - - - - 展开指定节点集合中的所有节点 - - 指定的节点集合 - - - - 获取选中节点的ID数组 - - 节点的ID数组 - - - - 获取指定节点集合中选中节点的ID数组 - - 指定的节点集合 - 节点的ID数组 - - - - 获取选中节点的数组 - - 节点的数组 - - - - 获取指定节点集合中选中节点的数组 - - 指定的节点集合 - 节点的数组 - - - - 选中所有节点的复选框 - - - - - 选中指定节点的复选框 - - 指定的节点集合 - - - - 反选所有节点的复选框 - - - - - 反选指定节点的复选框 - - 指定的节点集合 - - - - 查找树节点 - - 节点ID - 树节点 - - - - 在指定的节点集合中查找树节点 - - 节点ID - 指定的节点集合 - 树节点 - - - - 获取展开全部节点的的客户端脚本 - - 客户端脚本 - - - - 获取折叠全部节点的的客户端脚本 - - 客户端脚本 - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 布局类型 - - - - - 单击切换节点的折叠展开状态 - - - - - 启用箭头 - - - - - 启用节点之间连线 - - - - - 启用动画 - - - - - 每次只能展开一个 - - - - - 启用图标 - - - - - 自动标识没有子节点的节点为叶子节点,而不必为每个设置设置 Leaf 属性(默认:true) - - - - - 启用多行选择 - - - - - 数据源 - - - - - 树节点集合 - - - - - 选中的树节点 - - - - - [AJAX属性]选中的树节点ID - - - - - [AJAX属性]选中的树节点ID列表 - - - - - 树控件属性与数据源节点的映射关系 - - - - - 选中行 - - - - - 展开的节点列表 - - - - - 选中的节点列表 - - - - - 树节点集合的 JSON 表示(内部使用) - - - - - 节点绑定后事件 - - - - - 节点预绑定事件 - - - - - 节点选中事件 - - - - - 节点点击事件 - - - - - 节点展开事件 - - - - - 节点展开事件 - - - - - 节点延迟加载事件 - - - - - 脚本(不和控件关联的脚本) - - - - - 脚本 - - - - - 层次(层次越高,注册越靠后)(缺省100) - 负值表示在所有注册脚本之前执行 - - - - - 容器面板控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 布局类型 - - - - - 表单面板控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理列 - - - - - - 添加列 - - 行ID集合 - 开始行的索引(包含) - 结束行的索引(包含) - 行的列数 - - - - 添加Items变量 - - - - - - - - 取得当前行的列数 - - - - - - - 取得当前行 columnIndex 列的控件 - - - - - - - - 不支持此属性 - - - - - 表单行控件集合 - - - - - 表单行控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 格式化widths - - - - - - - 各列的宽度,空格分割 - - - - - 子控件集合 - - - - - 表单行控件集合 - - - - - 构造函数 - - 父控件实例 - - - - 分组面板控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 布局类型 - - - - - 复选框控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 触发复选框状态改变事件 - - 事件参数 - - - - 文本 - - - - - [AJAX属性]是否选中 - - - - - 是否自动回发 - - - - - 复选框状态改变事件(需要启用AutoPostBack) - - - - - 简单的表单容器控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 窗体控件 - - - - - 构造函数 - - - - - 不向页面输出任何HTML代码,通过Javascript代码添加DIV标签 - - 输出流 - - - - 不向页面输出任何HTML代码,通过Javascript代码添加DIV标签 - - 输出流 - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 获取 Hidden 属性改变的 JavaScript 脚本 - Window 控件需要特殊处理,而不是像其他客户端组件一样调用 f_setVisible 函数 - - - - - 保存服务器控件的ClientID - 可以调用ActiveWindow.GetWriteBackValueReference在子页面向这些服务器控件写入值 - - - - - 获取窗体内IFrame回发页面的客户端脚本(比如:__doPostBack('','eventArgument');) - - 事件参数 - 客户端脚本 - - - - 获取窗体内IFrame回发的客户端脚本(触发PageManager的CustomEvent事件) - - 事件参数 - 客户端脚本 - - - - 获取窗体内IFrame回发的客户端脚本(触发PageManager的CustomEvent事件) - - 事件参数 - 是否在回发前验证表单(在PageManager上进行表单配置) - 客户端脚本 - - - - 获取显示窗体的客户端脚本 - - 客户端脚本 - - - - 获取显示窗体的客户端脚本 - - IFrame地址 - 客户端脚本 - - - - 获取显示窗体的客户端脚本 - - IFrame地址 - 窗体标题 - 客户端脚本 - - - - 获取显示窗体的客户端脚本 - - 窗体宽度 - 窗体高度 - 客户端脚本 - - - - 获取显示窗体的客户端脚本 - - 窗体标题 - 窗体宽度 - 窗体高度 - 客户端脚本 - - - - 获取显示窗体的客户端脚本 - - IFrame地址 - 窗体标题 - 窗体宽度 - 窗体高度 - 客户端脚本 - - - - 获取最大化窗体尺寸的客户端脚本 - - 客户端脚本 - - - - 获取恢复窗体尺寸的客户端脚本 - - 客户端脚本 - - - - 获取最小化窗体尺寸的客户端脚本 - - 客户端脚本 - - - - 获取关闭当前激活Window的客户端脚本 - - 客户端脚本 - - - - 获取关闭当前激活Window然后刷新页面的客户端脚本 - - 客户端脚本 - - - - 获取关闭当前激活Window然后回发页面的客户端脚本 - - 客户端脚本 - - - - 获取关闭当前激活Window然后回发页面的客户端脚本 - - 客户端脚本 - - - - 获取关闭当前激活Window然后执行脚本的客户端脚本 - - 执行的脚本 - 客户端脚本 - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 处理回发事件 - - 事件参数 - - - - 触发窗体关闭事件 - - 事件参数 - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 为了放置不同页面的Window的ClientID发生冲突,加上GUID - - - - - [只读]Window的IFrameName必须是唯一的,在所有页面中是唯一的 - 所以不要手工定义Window的IFrameName - - - - - 窗口的位置 - - - - - 左上角位置 - - - - - 左上角位置 - - - - - 是否可以关闭 - - - - - 是否可以移动 - - - - - 是否可以最大化 - - - - - 是否可以最小化 - - - - - 最小高度 - - - - - 最小宽度 - - - - - 是否模式窗口 - - - - - 是否可以改变窗口大小 - - - - - 点击关闭按钮时需要执行的客户端脚本 - - - - - 关闭窗体的动作(点击关闭按钮或者按 ESC 键都会执行此动作) - - - - - 弹出窗口的目标位置(只有在EnableIFrame=true的情况下有效) - - - - - 窗体关闭事件(需要设置EnableClose=true和CloseAction=HidePostBack) - - - - - 表格排序事件参数 - - - - - 构造函数 - - 排序字段 - 排序方向 - 列索引 - - - - 排序字段 - - - - - 排序方向 - - - - - 列索引 - - - - - 表格控件 - - - - - 模板列占位符前缀 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 当前分页的开始行和结束行 - - - - - - 渲染开始标签 - - 输出流 - - - - 渲染结束标签 - - 输出流 - - - - 当在客户端修改了模板列中的值,调用此函数来告诉表格控件需要更新这些值; - 如果对表格重新进行了数据绑定,则不需要调用此函数,因为重新绑定后会更新表格的全部内容 - - - - - 绑定到数据源 - - - - - 清空Rows,同时清除所有子控件中的GridRow控件 - - - - - 获取用户修改的数据 - - - - - - 获取删除的行索引列表 - - - - - - 获取新增的行数据 - - - - - - 获取用户修改的行数据 - - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 接受用户编辑单元格(同时消除编辑单元格左上方的红色提示图标) - - - - - 获取接受用户编辑单元格的客户端脚本(同时消除编辑单元格左上方的红色提示图标) - - 客户端脚本 - - - - 拒绝用户编辑单元格(同时消除编辑单元格左上方的红色提示图标) - - - - - 获取拒绝用户编辑单元格的客户端脚本(同时消除编辑单元格左上方的红色提示图标) - - - - - 清空表格选中项 - - - - - 获取清空表格选中项的客户端脚本 - - 客户端脚本 - - - - 添加一条新纪录 - - 缺省值 - - - - 添加一条新纪录 - - 缺省值 - 是否添加到末尾 - - - - 获取添加一条新纪录的客户端脚本 - - 缺省值 - 客户端脚本 - - - - 获取添加一条新纪录的客户端脚本 - - 缺省值 - 是否添加到末尾 - 客户端脚本 - - - - 删除选中行(或者单元格) - - - - - 获取删除选中行(或者单元格)的客户端脚本 - - 客户端脚本 - - - - 获取表格是否有选中项的客户端脚本 - - 客户端脚本 - - - - 获取表格选中项数的客户端脚本 - - 客户端脚本 - - - - 获取表格选中单元格的客户端脚本(仅用于AllowCellEditing模式) - - 客户端脚本 - - - - 获取表格没有任何选中项时在本窗口弹出提示对话框的客户端脚本 - - 客户端脚本 - - - - 获取表格没有任何选中项时在本窗口弹出提示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 客户端脚本 - - - - 获取表格没有任何选中项时在本窗口弹出提示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 对话框图标 - 客户端脚本 - - - - 获取表格没有任何选中项时在父级窗口弹出提示对话框的客户端脚本 - - 对话框消息 - 客户端脚本 - - - - 获取表格没有任何选中项时在父级窗口弹出提示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 客户端脚本 - - - - 获取表格没有任何选中项时在父级窗口弹出提示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 对话框图标 - 客户端脚本 - - - - 获取表格没有任何选中项时在顶级窗口弹出提示对话框的客户端脚本 - - 对话框消息 - 客户端脚本 - - - - 获取表格没有任何选中项时在顶级窗口弹出提示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 客户端脚本 - - - - 获取表格没有任何选中项时在顶级窗口弹出提示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 对话框图标 - 客户端脚本 - - - - 通过列ID获取列实例 - - 列ID - 列实例 - - - - 通过列索引获取列实例 - - 列索引 - 列实例 - - - - 选中所有行(设置SelectedRowIndexArray属性) - - - - - 展开全部的行扩展列 - - - - - 折叠全部的行扩展列 - - - - - 处理回发事件 - - 事件参数 - - - - 获取Columns前面的列(比如索引列,选择框列) - - - - - - 触发排序事件 - - 事件参数 - - - - 触发绑定前事件 - - 事件参数 - - - - 触发行绑定前事件 - - 事件参数 - - - - 触发行绑定后事件 - - 事件参数 - - - - 触发行内事件 - - 事件参数 - - - - 触发页索引改变事件 - - 事件参数 - - - - 触发行点击事件 - - 事件参数 - - - - 触发行双击事件 - - 事件参数 - - - - 触发行选中事件 - - 事件参数 - - - - 触发结束编辑事件 - - 事件参数 - - - - 装载控件状态 - - - - - - 保存控件状态 - - - - - - 初始化 - - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 布局类型 - - - - - 允许单元格编辑 - - - - - 编辑单元格时点击单元格的次数(默认为2次) - - - - - 允许列锁定 - - - - - 允许服务器端分页 - - - - - 是否数据库分页 - - - - - 服务器端分页后清空选中的行 - - - - - 每页显示项数 - - - - - [AJAX属性]当前显示页索引 - - - - - [AJAX属性]总页数 - - - - - [AJAX属性]记录的总个数 - - - - - 允许服务器端排序 - - - - - 排序方向("ASC", "DESC") - - - - - 当前排序字段(只读) - - - - - 启用合计行 - - - - - [AJAX属性]合计行数据 - - - - - 合计行的位置 - - - - - 数据为空时显示在内容区域的文本,可以是HTML标签 - - - - - 行中文字的垂直排列位置(默认为Middle) - - - - - 是否延迟渲染 - - - - - 展开所有的行扩展列 - - - - - 启用表格中的文字选择 - - - - - 显示表格表头 - - - - - 显示分页工具条右侧的分页信息 - - - - - 启用表头菜单 - - - - - 启用表格列分隔线(默认为false) - - - - - 启用表格行分隔线(默认为true) - - - - - 启用交替行显示不同的颜色 - - - - - 启用鼠标移动到行的颜色 - - - - - 选中行是否自动回发 - - - - - 点击行是否自动回发 - - - - - 双击行是否自动回发 - - - - - 结束编辑是否自动回发(需要启用AllowCellEditing) - - - - - 自动扩展宽度以填充剩余空间的列(ColumnID) - - - - - 成比例改变表格各列的宽度,以防止出现水平滚动条(第一次加载和之后改变表格宽度时都有效) - - - - - 启用多选框 - - - - - 只能通过多选框选中行(仅在启用EnableCheckBoxSelect属性时有效) - - - - - 启用多行选择 - - - - - [AJAX属性]选中行的索引(列表中的第一项) - - - - - [AJAX属性]选中的单元格([行索引,列索引]) - - - - - [AJAX属性]选中行的索引列表 - - - - - [AJAX属性]隐藏的列名称列表(逗号分隔) - - - - - 数据源 - - - - - 行关键字段 - - - - - 行关键字段的值 - - - - - 分页工具条项集合 - - - - - 全部的列 - - - - - 列数据 - - - - - 行数据 - - - - - 保存的行数据(内部使用) - - - - - 排序事件 - - - - - 绑定前事件 - - - - - 行绑定前事件 - - - - - 行绑定后事件 - - - - - 行内事件 - - - - - 页索引改变事件 - - - - - 行点击事件(需要启用EnableRowClick) - - - - - 行双击事件(需要启用EnableRowDoubleClick) - - - - - 行选中事件(需要启用EnableRowSelect) - - - - - 结束编辑事件(需要启用EnableAfterEditEvent) - - - - - 表格数据绑定列 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 是否可用 - - - - - 字段名称 - - - - - 字段格式化字符串 - - - - - 处理数据库中null值,默认为空字符串 - - - - - 显示之前进行HTML编码(默认为true) - - - - - 是否在应用DataFormatString属性之后进行HTML编码(默认为true) - - - - - 表格复选框列 - - - - - 取得单元格的数据 - - - - - - - - 本行的复选框是否处于选中状态 - - 行索引 - 选中状态 - - - - 设置本列复选框的选中状态 - - 行索引 - 是否选中 - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 是否可用(只在RenderAsStaticField=false时有效) - - - - - 是否自动回发(只在RenderAsStaticField=false时有效) - - - - - 字段名称 - - - - - 渲染为静态图片,否则渲染为可编辑的复选框 - - - - - 显示列头复选框(只在RenderAsStaticField=false时有效) - - - - - 是否启用AJAX - - - - - 命令名称 - - - - - 命令参数 - - - - - 表格窗体列 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 启用表头菜单 - - - - - 是否允许隐藏列 - - - - - 是否可用 - - - - - 对应的窗体控件ID - - - - - 窗体标题对应的字段名称 - - - - - 窗体标题对应的字段格式化字符串 - - - - - 字段名称 - - - - - 字段格式化字符串 - - - - - 显示之前进行HTML编码(默认为true) - - - - - 是否在应用DataFormatString属性之后进行HTML编码(默认为true) - - - - - 绑定到IFrame地址的字段名称列表 - - - - - 绑定到IFrame地址的字段格式化字符串 - - - - - 对每个绑定到IFrame地址的字段进行URL编码(默认为true) - - - - - IFrame地址 - - - - - 显示文本 - - - - - 标题 - - - - - 图标 - - - - - 图标地址 - - - - - 表格图片列 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 图片地址字段 - - - - - 图片地址字段格式化字符串 - - - - - 图片的宽度 - - - - - 图片的高度 - - - - - 表格模板列 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 模板容器 - - - - - 是否渲染为行扩展列 - - - - - 双击展开折叠行扩展列 - - - - - 回车按键展开折叠行扩展列 - - - - - 点击图标展开折叠行扩展列时选中行 - - - - - 表格超链接列 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 是否可用 - - - - - 字段名称 - - - - - 字段格式化字符串 - - - - - 绑定到超链接地址的字段名称列表 - - - - - 对每个绑定到超链接地址的字段进行URL编码(此属性废弃,请使用UrlEncode属性) - - - - - 对每个绑定到超链接地址的字段进行URL编码(默认为true) - - - - - 绑定到超链接地址的字段格式化字符串 - - - - - 打开超链接的目标框架 - - - - - 超链接地址 - - - - - 超链接文本 - - - - - 显示之前进行HTML编码(默认为true) - - - - - 是否在应用DataFormatString属性之后进行HTML编码(默认为true) - - - - - 表格列集合 - - - - - 构造函数 - - 父控件实例 - - - - 用来作为模板列的数据绑定容器,实现了IDataItemContainer接口 - - - - - 构造函数 - - 数据源 - 行索引 - - - - 控件初始化事件 - - 事件参数 - - - - 渲染开始标签 - - ASP.NET服务器控件输出流 - - - - 渲染结束标签 - - ASP.NET服务器控件输出流 - - - - 数据源(IDataItemContainer成员) - - - - - 数据项索引(IDataItemContainer成员) - - - - - 数据项在控件中显示位置的索引(IDataItemContainer成员) - - - - - 表格行 - - - - - 构造函数 - - - - - 构造函数 - - 表格实例 - 行对应的数据源(在回发时为null) - 行序号 - - - - 当前行列状态列表 - - - - - - 恢复当前行列状态列表(同时更新相应的Values值) - - - - - - 更新当前行某列的渲染后的HTML - - - - - - 表格行中模板列控件列表(数据绑定时自动生成每个模板列控件ID,回发时从FState中回发模板列控件ID) - - - - - 绑定行的值 - - - - - 查找表格行内的控件 - - - - - - - 表格实例 - - - - - 本行对应的数据源(不维护状态) - - - - - 第几行 - - - - - 此行的状态信息 - - - - - 此行DataKeyNames字段的值 - - - - - 非公开属性,对于CheckBoxField可以通过GetCheckedState访问 - - - - - 表格行中模板列控件列表,一个典型的例子为:[GridRowControl, null, null, GridRowControl, null, null, null, null, null] - - - - - 表格行控件集合 - - - - - 列表项 - - - - - 构造函数 - - - - - 构造函数 - - 文本 - 值 - - - - 构造函数 - - 文本 - 值 - 是否选中 - - - - 是否选中 - - - - - 显示的文本 - - - - - 值 - - - - - 是否可选择 - - - - - 模拟树的层次(从0开始为根节点) - - - - - 列表项集合 - - - - - 通过文本查找列表项 - - 文本 - 列表项 - - - - 通过文本查找列表项 - - 文本 - 是否去除HTML标签 - 列表项 - - - - 通过值查找列表项 - - 值 - 列表项 - - - - 添加列表项 - - 文本 - 值 - 新元素的插入位置 - - - - 下拉列表控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 绑定到数据源 - - - - - 绑定到数据表格 - - 数据表格 - - - - 绑定到可枚举类型 - - 可枚举类型 - - - - 取得属性值 - - - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 触发选中项改变事件 - - 事件参数 - - - - 文本框为空时显示的文本 - - - - - [AJAX属性]用户输入的文本(只有在允许编辑和不强制选择的情况下才有效) - - - - - [AJAX属性]选中项的值 - - - - - [AJAX属性]选中项的索引 - - - - - 选中项的文本 - - - - - 选中项 - - - - - [AJAX属性]选中项的值 - - - - - [AJAX属性]选中项的索引 - - - - - 选中项 - - - - - 下拉列表和字段的宽度相匹配 - - - - - 如果未定义选中项,则自动选中第一个子项(默认为true) - - - - - 是否可以选择多项 - - - - - 选择多项的分隔符 - - - - - 是否强制选中下拉列表中的项(启用编辑的情况下) - - - - - 是否可编辑,以便在录入时自动过滤下拉框中的值 - - - - - 是否启用模拟树显示 - - - - - 模拟树显示时指示所在层次的数据字段 - - - - - 是否可选择的字段 - - - - - 是否自动回发 - - - - - 显示文本字段 - - - - - 显示文本的格式化字符串 - - - - - 显示值字段 - - - - - 数据源 - - - - - 保存的列表项数据(内部使用) - - - - - 列表项集合 - - - - - 选中项改变事件(需要启用AutoPostBack) - - - - - 文本控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 是否对文本编码 - - - - - [AJAX属性]文本 - - - - - 多行文本框控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不支持此属性 - - - - - 是否自动增长高度 - - - - - 自动增长的最大高度 - - - - - 自动增长的最小高度 - - - - - 是否总是隐藏滚动条 - - - - - 选项卡控件 - - - - - 构造函数 - - - - - Tab 控件必须包含在 TabStrip 中 - - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 获取 Hidden 属性改变的 JavaScript 脚本 - Tab 控件需要特殊处理,而不是像其他客户端组件一样调用 f_setVisible 函数 - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 获取显示选项卡的客户端脚本 - - 客户端脚本 - - - - 获取隐藏选项卡的客户端脚本 - - 客户端脚本 - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 是否可以关闭 - - - - - 选项卡面板控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 处理回发事件 - - 事件参数 - - - - 触发选项卡改变事件 - - 事件参数 - - - - 获取添加选项卡的脚本 - - 选项卡ID - IFrame地址 - 选项卡标题 - 是否可以关闭 - 客户端脚本 - - - - 获取添加选项卡的脚本 - - 选项卡ID - IFrame地址 - 选项卡标题 - 选项卡图标 - 是否可以关闭 - 客户端脚本 - - - - 获取移除选项卡的脚本 - - 选项卡ID - 客户端脚本 - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - 布局类型 - - - - - 切换选项卡时是否自动回发 - - - - - 是否启用右键菜单(可用来关闭当前Tab和所有其他Tab) - - - - - 选项卡显示的位置 - - - - - [AJAX属性]激活选项卡的索引 - - - - - 当前激活的选项卡 - - - - - 选项卡集合 - - - - - 选项卡改变事件 - - - - - 面板控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - HTML编辑框控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发数据 - 回发到服务器,判断控件的属性是否变化, - 如果变化返回true,则RaisePostDataChangedEvent - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 触发文本改变事件 - - 事件参数 - - - - 不支持此属性 - - - - - 不支持此属性 - - - - - [AJAX属性]文本 - - - - - 启用左右定位 - - - - - 启用颜色 - - - - - 启用字体 - - - - - 启用调整字体大小 - - - - - 启用格式化 - - - - - 启用创建链接 - - - - - 启用创建列表 - - - - - 启用源码视图 - - - - - 字体列表 - - - - - 启用中文字体 - - - - - 文本改变事件 - - - - - 日期选择框控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发事件 - - 事件参数 - - - - 触发日期选定事件 - - 事件参数 - - - - 是否允许编辑 - - - - - 选择的日期 - - - - - 启用中文智能识别,手工输入时如果不匹配指定格式,会尝试按照下面几种格式解析:yyyy-MM-dd、yyyy-M-d、yyyyMMdd、yyyyMd、yy-MM-dd、yy-M-d、yyMMdd、yyMd - - - - - 尝试解析日期的格式列表 - - - - - 日期格式 - - - - - 最大日期 - - - - - 最小日期 - - - - - 选择日期是否自动回发 - - - - - 日期选定事件(需要启用EnableDateSelect) - - - - - 选项卡集合 - - - - - 构造函数 - - 父控件实例 - - - - 控件相关脚本 - - - - - 要注册脚本的控件 - - - - - 脚本 - - - - - 布局类型 - - - - - 容器布局(默认值) - - - - - 锚点布局 - - - - - 区域布局 - - - - - 自适应布局(用于只有一个子控件的情况) - - - - - 手风琴布局(只用于Accordion控件) - - - - - 表单布局(用于SimpleForm和Form控件) - - - - - 卡片布局(只用于TabStrip控件) - - - - - 列布局 - - - - - 绝对定位布局 - - - - - 表格布局 - - - - - 垂直盒子布局 - - - - - 水平盒子布局 - - - - - 布局类型名称 - - - - - 数字输入框控件 - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 不允许小数 - - - - - 不允许负数 - - - - - 最大值 - - - - - 最小值 - - - - - 小数点后的位数(默认为2) - - - - - 文本框类型 - - - - - 普通文本框(默认值) - - - - - 密码输入框 - - - - - 文本框类型名称 - - - - - 提示框的类型 - - - - - Extjs的浮动提示框(默认值) - - - - - HTML标签的title属性 - - - - - 提示框的类型名称 - - - - - JavaScript帮助类 - - - - - 获取一段完成的JavaScript函数 - - 函数主体 - 函数参数 - 字符串表示的JavaScript函数 - - - - 获取延迟执行JavaScript脚本的字符串 - - 需要执行的脚本内容 - 延迟毫秒数 - 延迟执行的客户端脚本 - - - - 获取延迟执行JavaScript脚本的字符串 - - 需要执行的脚本内容 - 延迟毫秒数 - 执行脚本时的函数上下文 - 延迟执行的客户端脚本 - - - - 返回的是单引号括起来的字符串,用来作为JSON属性比较合适 - - 源字符串 - 单引号括起来的字符串 - - - - 将包含JavaScript代码块的字符串转换为可以使用的客户端脚本 - - 包含JavaScript代码块的字符串 - 转换后的客户端脚本 - - - - 获取字符串数组的脚本字符串形式 - - 字符串数组 - 字符串数组的脚本字符串 - - - - 获取整形数组的脚本字符串形式 - - 整数数组 - 整形数组的脚本字符串 - - - - 将数字对象转化为字符串 - - 数字对象 - 字符串 - - - - 对话框帮助类 - - - - - 默认提示对话图标 - - - - - 显示对话框 - - - - - 获取显示对话框的客户端脚本 - - 客户端脚本 - - - - 显示对话框 - - 消息正文 - - - - 显示对话框 - - 消息正文 - 标题 - - - - 显示对话框 - - 消息正文 - 图标 - - - - 显示对话框 - - 对话框消息 - 对话框标题 - 点击确定按钮执行的客户端脚本 - - - - 显示对话框 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - - - - 显示对话框 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 点击确定按钮执行的客户端脚本 - - - - 显示对话框 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 点击确定按钮执行的客户端脚本 - 显示对话框的目标页面 - - - - 显示对话框 - - 对话框消息 - 对话框标题 - - 点击确定按钮执行的客户端脚本 - 显示对话框的目标页面 - 自定义对话框图标 - 自定义对话框图标地址 - - - - 在父页面中显示对话框 - - 消息正文 - - - - 在父页面中显示对话框 - - 消息正文 - 标题 - - - - 在父页面中显示对话框 - - 消息正文 - 图标 - - - - 在父页面中显示对话框 - - 对话框消息 - 对话框标题 - 点击确定按钮执行的客户端脚本 - - - - 在父页面中显示对话框 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - - - - 在父页面中显示对话框 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 点击确定按钮执行的客户端脚本 - - - - 在顶层窗口中显示对话框 - - 消息正文 - - - - 在顶层窗口中显示对话框 - - 消息正文 - 对话框标题 - - - - 在顶层窗口中显示对话框 - - 消息正文 - 自定义对话框图标 - - - - - - 消息正文 - 对话框标题 - 点击确定按钮执行的客户端脚本 - - - - - - 消息正文 - 对话框标题 - 自定义对话框图标 - - - - 在顶层窗口中显示对话框 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 点击确定按钮执行的客户端脚本 - - - - 获取显示对话框的客户端脚本 - - 对话框消息 - 客户端脚本 - - - - 获取显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 客户端脚本 - - - - 获取显示对话框的客户端脚本 - - 对话框消息 - 自定义对话框图标 - 客户端脚本 - - - - 获取显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 客户端脚本 - - - - 获取显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 点击确定按钮执行的客户端脚本 - 客户端脚本 - - - - 获取显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 点击确定按钮执行的客户端脚本 - 客户端脚本 - - - - 获取显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 点击确定按钮执行的客户端脚本 - 显示对话框的目标页面 - 客户端脚本 - - - - 获取显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - - 点击确定按钮执行的客户端脚本 - 显示对话框的目标页面 - - 自定义对话框图标地址 - 客户端脚本 - - - - 获取在父页面中显示对话框的客户端脚本 - - 对话框消息 - 客户端脚本 - - - - 获取在父页面中显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 客户端脚本 - - - - 获取在父页面中显示对话框的客户端脚本 - - 对话框消息 - 自定义对话框图标 - 客户端脚本 - - - - 获取在父页面中显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 客户端脚本 - - - - 获取在父页面中显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 点击确定按钮执行的客户端脚本 - 客户端脚本 - - - - 获取在父页面中显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 点击确定按钮执行的客户端脚本 - 客户端脚本 - - - - 获取在最上层页面中显示对话框的客户端脚本 - - 对话框消息 - 客户端脚本 - - - - 获取在最上层页面中显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 客户端脚本 - - - - 获取在最上层页面中显示对话框的客户端脚本 - - 对话框消息 - 自定义对话框图标 - 客户端脚本 - - - - 获取在最上层页面中显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 客户端脚本 - - - - 获取在最上层页面中显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 点击确定按钮执行的客户端脚本 - 客户端脚本 - - - - 获取在最上层页面中显示对话框的客户端脚本 - - 对话框消息 - 对话框标题 - 自定义对话框图标 - 点击确定按钮执行的客户端脚本 - 客户端脚本 - - - - 对话框消息正文 - - - - - 对话框标题 - - - - - 对话框图标 - - - - - 点击确认按钮执行的JavaScript脚本 - - - - - 对话框的目标位置 - - - - - 自定义对话框图标地址 - - - - - 自定义对话框图标 - - - - - 消息框图标类型 - - - - - 信息(默认值) - - - - - 警告 - - - - - 问题 - - - - - 错误 - - - - - 消息框图标类型名称 - - - - - 创建Javascript对象参数的帮助类 - - - - - 构造函数 - - - - - 构造函数 - - 属性名 - 属性值 - - - - 构造函数 - - 属性名 - 属性值 - 是否保持原样 - - - - 删除属性 - - 属性名 - - - - 是否包含属性 - - 属性名 - - - - - 添加属性 - - 属性名 - 属性值 - - - - 添加属性 - - 属性名 - 属性值 - 是否保持原样 - - - - 获取属性 - - 属性名 - 属性值 - - - - 返回对象的JSON字符串形式 - - 对象的JSON形式 - - - - 已经添加属性的个数 - - - - - 资源帮助类 - - - - - 获取嵌入资源的 res.axd 地址 - - 资源名称 - 资源地址 - - - - 获取嵌入资源的 res.axd 地址 - - 页面对象 - 资源名称 - 资源地址 - - - - 获取嵌入资源的地址 - - 资源名称 - 资源地址 - - - - 获取嵌入资源的地址 - - 页面实例 - 资源名称 - 资源地址 - - - - 取得资源的内容 - - 资源名称 - 资源内容 - - - - 取得资源的二进制内容 - - 资源名称 - 资源的二进制内容 - - - - 获取空白图片的地址 - - 空白图片的地址 - - - - 常量 - - - - - 绝对脚本的默认级别(仅内部使用) - - - - - 文件类型 - - - - - 文件类型 - - - - - 文件类型 - - - - - 文件类型 - - - - - 文件类型 - - - - - 文件类型 - - - - - 文件类型 - - - - - 文件类型 - - - - - 文件类型 - - - - - 配置字段名称 - - - - - 字段属性名称 - - - - - 字段属性值 - - - - - 属性分类的名称 - - - - - 基本属性 - - - - - 属性 - - - - - 表单验证 - - - - - 布局 - - - - - 事件 - - - - - 文本框控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 文本框类型 - - - - - FineUI在Web.config中的配置节 - - - - - 主题 - - - - - 语言 - - - - - 表单验证消息的提示位置 - - - - - 表单中标签的位置 - - - - - 表单控件右侧距离边界的距离 - - - - - 表单控件标签的宽度 - - - - - 表单控件标签的分隔符 - - - - - 启用AJAX - - - - - 启用AJAX加载提示信息 - - - - - AJAX提示信息的类型 - - - - - 客户端AJAX超时时间 - - - - - 是否启用大字体(将ExtJS所有11px字体改为12px) - - - - - 是否启用调试模式 - - - - - JS文件夹所在的根目录 - - - - - 图标所在的根目录 - - - - - 自定义主题所在的根目录 - - - - - 自定义主题名称 - - - - - 是否启用FState压缩(默认为false) - - - - - 是否向页面输出IE=edge标识 - - - - - 是否启用表单改变确认对话框 - - - - - 存在 Page.Items 上下文中,向页面注册资源 - - - - - 需要向页面注册的样式列表 - - - - - 确保ResourceManager实例的Page和当前页面一致 - - - - - - 准备呈现页面内容,在保存页面状态之前 - - - - - - - 注册页面第一次加载时的样式和脚本 - - - - - 注册页面脚本 - - - - - 是否注册startup脚本 - - - - - - - 取得页面初始化时脚本 - - - - - - - 返回经过排序的 _startupControlScriptList 列表,子控件排在父控件的前面 - - - - - - 取得应该将Script插入的位置 - 要能够向上回溯,因为控件的父控件可能不存在列表中,而父控件的父控件存在列表中 - - - - - - - - 添加样式 - - - - - - - - 删除已经添加的CSS样式 - - - - - - 添加脚本 - 相同控件的脚本合并在一起(30372245@qq.com 2008-7-4) - - - - - - - - 控件control的注册脚本是否存在 - - - - - - - AJAX时每个控件需要注册的脚本 - - - - - AJAX时不依赖控件的脚本 - - - - - AJAX时使用到的所有短名称列表 - 比如:F('SimpleForm1_tbxUserName') -> cmp0 - F('SimpleForm1_tbxPassword') -> cmp1 - - - - - 取得 ResourceManager 的实例,单件模式 - - - - - 复选框列表控件 - - - - - 构造函数 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 绑定到数据源 - - - - - 绑定到数据表 - - - - - - 绑定到可枚举列表 - - - - - - 取得属性值 - - - - - - - 处理回发数据 - - 回发数据键 - 回发数据集 - 回发数据是否改变 - - - - 触发回发数据改变事件 - - - - - 触发选中项改变事件 - - 事件参数 - - - - 是否必填项 - - - - - 为空时提示信息 - - - - - 是否自动回发 - - - - - 渲染成几列 - - - - - 是否按照纵向顺序渲染 - - - - - 显示文本的数据字段 - - - - - 显示文本的格式化字符串 - - - - - 显示值的数据字段 - - - - - 数据源 - - - - - [AJAX属性]选中项的值 - - - - - [AJAX属性]选中项的索引 - - - - - 选中项 - - - - - 复选框集合 - - - - - 保存的复选框数据(内部使用) - - - - - 选中项改变事件(需要启用AutoPostBack) - - - - - 复选框列表项 - - - - - 构造函数 - - - - - 构造函数 - - 文本 - 值 - - - - 构造函数 - - 文本 - 值 - 是否选中 - - - - 是否选中 - - - - - 显示的文本 - - - - - 值 - - - - - 复选项集合 - - - - - 通过文本查找复选项 - - 文本 - 复选项 - - - - 通过文本查找复选项 - - 文本 - 是否去除HTML标签 - 复选项 - - - - 通过值查找复选项 - - 值 - 复选项 - - - - 添加复选项 - - 文本 - 值 - 新元素的插入位置 - - - - 时间选择框控件 - - - - - 渲染 HTML 之前调用(AJAX回发) - - - - - 渲染 HTML 之前调用(页面第一次加载或者普通回发) - - - - - 处理回发事件 - - 事件参数 - - - - 触发日期选择事件 - - 事件参数 - - - - 是否允许编辑 - - - - - 选择的时间 - - - - - 尝试解析时间的格式列表 - - - - - 时间格式(默认为HH:mm,24小时制,比如“20:30”) - - - - - 最大时间 - - - - - 最大时间的字符串形式 - - - - - 最小时间 - - - - - 最小时间的字符串形式 - - - - - 列表中每个时间值相差的分钟数(默认为15分钟) - - - - - 选择时间是否自动回发 - - - - - 日期选择事件(需要启用EnableDateSelect) - - - - diff --git a/FineUI.Examples/bin/FredCK.FCKeditorV2.dll b/FineUI.Examples/bin/FredCK.FCKeditorV2.dll deleted file mode 100644 index 8cfc177..0000000 Binary files a/FineUI.Examples/bin/FredCK.FCKeditorV2.dll and /dev/null differ diff --git a/FineUI.Examples/bin/Newtonsoft.Json.dll b/FineUI.Examples/bin/Newtonsoft.Json.dll deleted file mode 100644 index 2024b03..0000000 Binary files a/FineUI.Examples/bin/Newtonsoft.Json.dll and /dev/null differ diff --git a/FineUI.Examples/bin/Wilco.SyntaxHighlighter.dll b/FineUI.Examples/bin/Wilco.SyntaxHighlighter.dll deleted file mode 100644 index bb21c58..0000000 Binary files a/FineUI.Examples/bin/Wilco.SyntaxHighlighter.dll and /dev/null differ diff --git a/FineUI.Examples/default.aspx b/FineUI.Examples/default.aspx index 0d5b500..06f4cf8 100644 --- a/FineUI.Examples/default.aspx +++ b/FineUI.Examples/default.aspx @@ -8,119 +8,7 @@ - + @@ -230,7 +118,7 @@ 版本:v QQ公开群 - Copyright © 2014 合肥三生石上软件有限公司 + Copyright © 2008-2015 合肥三生石上软件有限公司 在线人数: @@ -256,6 +144,18 @@ + + + + + + + + + + + + @@ -274,18 +174,6 @@ - - - - - - - - - - - - @@ -510,6 +398,7 @@ + // 此函数源代码定义在:extjs_builder\js\F\F.util.js // 初始化主框架中的树(或者Accordion+Tree)和选项卡互动,以及地址栏的更新 // treeMenu: 主框架中的树控件实例,或者内嵌树控件的手风琴控件实例 // mainTabStrip: 选项卡实例 @@ -517,7 +406,7 @@ // updateLocationHash: 切换Tab时,是否更新地址栏Hash值 // refreshWhenExist: 添加选项卡时,如果选项卡已经存在,是否刷新内部IFrame // refreshWhenTabChange: 切换选项卡时,是否刷新内部IFrame - F.util.initTreeTabStrip(mainMenu, mainTabStrip, createToolbar, true, false, false); + F.initTreeTabStrip(mainMenu, mainTabStrip, createToolbar, true, false, false); @@ -541,7 +430,9 @@ }; + // 添加工具图标,并在点击时显示上下文菜单 + // 专业版提醒:请将 type:'gear' 改为 iconFont:'gear' leftPanel.addTool({ type: 'gear', //tooltip: '系统设置', diff --git a/FineUI.Examples/default.aspx.cs b/FineUI.Examples/default.aspx.cs index da488c1..489aabd 100644 --- a/FineUI.Examples/default.aspx.cs +++ b/FineUI.Examples/default.aspx.cs @@ -200,12 +200,21 @@ namespace FineUI.Examples /// private void treeMenu_NodeDataBound(object sender, TreeNodeEventArgs e) { + // 是否叶子节点 + bool isLeaf = e.XmlNode.ChildNodes.Count == 0; + string isNewHtml = GetIsNewHtml(e.XmlNode); if (!String.IsNullOrEmpty(isNewHtml)) { e.Node.Text += isNewHtml; } + if (isLeaf) + { + // 设置节点的提示信息 + e.Node.ToolTip = e.Node.Text; + } + // 如果仅显示最新示例 并且 当前节点不是子节点,则展开当前节点 if (_showOnlyNew && !e.Node.Leaf) { diff --git a/FineUI.Examples/default.aspx.designer.cs b/FineUI.Examples/default.aspx.designer.cs index 0c53629..6b7439d 100644 --- a/FineUI.Examples/default.aspx.designer.cs +++ b/FineUI.Examples/default.aspx.designer.cs @@ -201,6 +201,51 @@ namespace FineUI.Examples { /// protected global::FineUI.MenuSeparator MenuSeparator1; + /// + /// MenuTheme 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.MenuButton MenuTheme; + + /// + /// MenuThemeNeptune 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.MenuCheckBox MenuThemeNeptune; + + /// + /// MenuThemeBlue 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.MenuCheckBox MenuThemeBlue; + + /// + /// MenuThemeGray 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.MenuCheckBox MenuThemeGray; + + /// + /// MenuThemeAccess 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.MenuCheckBox MenuThemeAccess; + /// /// MenuStyle 控件。 /// @@ -264,51 +309,6 @@ namespace FineUI.Examples { /// protected global::FineUI.MenuCheckBox MenuLangEN; - /// - /// MenuTheme 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUI.MenuButton MenuTheme; - - /// - /// MenuThemeNeptune 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUI.MenuCheckBox MenuThemeNeptune; - - /// - /// MenuThemeBlue 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUI.MenuCheckBox MenuThemeBlue; - - /// - /// MenuThemeGray 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUI.MenuCheckBox MenuThemeGray; - - /// - /// MenuThemeAccess 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUI.MenuCheckBox MenuThemeAccess; - /// /// MenuSeparator2 控件。 /// diff --git a/FineUI.Examples/extjs_builder/js/F/F.ajax.js b/FineUI.Examples/extjs_builder/js/F/F.ajax.js index e7083c6..f54dc5a 100644 --- a/FineUI.Examples/extjs_builder/js/F/F.ajax.js +++ b/FineUI.Examples/extjs_builder/js/F/F.ajax.js @@ -1,6 +1,9 @@ (function () { + // 正在进行中的AJAX请求个数 + var __ajaxUnderwayCount = 0; + F.ajax = { timeoutErrorMsg: "Request timeout, please refresh the page and try again!", @@ -16,24 +19,24 @@ }; function enableAjax() { - if (typeof (F.control_enable_ajax) === 'undefined') { - return F.global_enable_ajax; + if (typeof (F.controlEnableAjax) === 'undefined') { + return F.enableAjax; } - return F.control_enable_ajax; + return F.controlEnableAjax; } function enableAjaxLoading() { - if (typeof (F.control_enable_ajax_loading) === 'undefined') { - return F.global_enable_ajax_loading; + if (typeof (F.controlEnableAjaxLoading) === 'undefined') { + return F.enableAjaxLoading; } - return F.control_enable_ajax_loading; + return F.controlEnableAjaxLoading; } function ajaxLoadingType() { - if (typeof (F.control_ajax_loading_type) === 'undefined') { - return F.global_ajax_loading_type; + if (typeof (F.controlAjaxLoadingType) === 'undefined') { + return F.ajaxLoadingType; } - return F.control_ajax_loading_type; + return F.controlAjaxLoadingType; } @@ -41,29 +44,13 @@ //if (typeof (F.util.beforeAjaxPostBackScript) === 'function') { // F.util.beforeAjaxPostBackScript(); //} - F.util.triggerBeforeAjax(); + + // 如果显式返回false,则阻止AJAX回发 + if(F.util.triggerBeforeAjax() === false) { + return; + } - function ajaxSuccess(data, viewStateBeforeAJAX) { - /* - try { - new Function(data)(); - } catch (e) { - createErrorWindow({ - statusText: "Execute JavaScript Exception", - status: -1, - responseText: util.htmlEncode(data) - }); - } - */ - new Function('__VIEWSTATE', data)(viewStateBeforeAJAX); - - // 有可能响应返回后即关闭本窗体 - if (F && F.util) { - F.util.triggerAjaxReady(); - } - } - // Ext.encode will convert Chinese characters. Ext.encode({a:"你好"}) => '{"a":"\u4f60\u597d"}' // We will include the official JSON object from http://json.org/ // 现在还是用的 Ext.encode,在 IETester的 IE8下 JSON.stringify 生成的中文是\u9009\u9879形式。 @@ -79,13 +66,13 @@ F.util.setHiddenFieldValue('F_STATE', fstate); //F.util.setHiddenFieldValue('F_STATE', encodeURIComponent(Ext.encode(getFState()))); if (!enableAjax()) { - // 当前请求结束后必须重置 F.control_enable_ajax - F.control_enable_ajax = undefined; + // 当前请求结束后必须重置 F.controlEnableAjax + F.controlEnableAjax = undefined; F.util.setHiddenFieldValue('F_AJAX', 'false'); theForm.submit(); } else { - // 当前请求结束后必须重置 F.control_enable_ajax - F.control_enable_ajax = undefined; + // 当前请求结束后必须重置 F.controlEnableAjax + F.controlEnableAjax = undefined; F.util.setHiddenFieldValue('F_AJAX', 'true'); var url = document.location.href; var urlHashIndex = url.indexOf('#'); @@ -94,17 +81,72 @@ } var viewStateBeforeAJAX = F.util.getHiddenFieldValue('__VIEWSTATE'); + var disabledButtonIdBeforeAJAX = F.getHidden('F_TARGET'); + + function ajaxSuccess(data, viewStateBeforeAJAX) { + /* + try { + new Function(data)(); + } catch (e) { + createErrorWindow({ + statusText: "Execute JavaScript Exception", + status: -1, + responseText: util.htmlEncode(data) + }); + } + */ + + function processEnd() { + // 启用AJAX发起时禁用的按钮 + if (disabledButtonIdBeforeAJAX) { + F.enable(disabledButtonIdBeforeAJAX); + } + + //隐藏正在加载提示 + ajaxStop(); + } + + + // 如果显式返回false,则阻止AJAX回发 + if (F.util.triggerBeforeAjaxSuccess(data) === false) { + processEnd(); + return; + } + + try { + new Function('__VIEWSTATE', data)(viewStateBeforeAJAX); + + // 有可能响应返回后即关闭本窗体 + if (F && F.util) { + F.util.triggerAjaxReady(); + } + } catch (e) { + + // 重新抛出异常 + throw e; + + } finally { + + processEnd(); + } + + } + + ajaxStart(); + + + // 判断是否有文件上传 + var isFileUpload = !!Ext.get(theForm).query('input[type=file]').length; Ext.Ajax.request({ form: theForm.id, url: url, - isUpload: F.form_upload_file, + isUpload: isFileUpload, //F.form_upload_file, //params: serializeForm(theForm) + '&X_AJAX=true', success: function (data) { var scripts = data.responseText; - - if (scripts && F.form_upload_file) { + if (scripts && isFileUpload) { // 文件上传时,输出内容经过encodeURIComponent编码(在ResponseFilter中的Close函数中) //scripts = scripts.replace(/<\/?pre[^>]*>/ig, ''); scripts = decodeURIComponent(scripts); @@ -132,12 +174,12 @@ F.util.triggerAjaxReady(); } */ - }, 100); + }, 0); }, failure: function (data) { - var lastDisabledButtonId = F.util.getHiddenFieldValue('F_TARGET'); - if (lastDisabledButtonId) { - F.enable(lastDisabledButtonId); + //var lastDisabledButtonId = F.util.getHiddenFieldValue('F_TARGET'); + if (disabledButtonIdBeforeAJAX) { + F.enable(disabledButtonIdBeforeAJAX); } createErrorWindow(data); }, @@ -154,13 +196,26 @@ // 如果启用 Ajax,则所有对 __doPostBack 的调用都会到这里来 function f__doPostBack(eventTarget, eventArgument) { + var enableAjax; + if (typeof (eventTarget) === 'boolean') { + enableAjax = eventTarget; + eventTarget = eventArgument; + eventArgument = arguments[2]; + } + // 回发页面之前延时 100 毫秒,确保页面上的操作完成(比如选中复选框的动作) window.setTimeout(function () { + // theForm variable will always exist, because we invoke the GetPostBackEventReference in PageManager. if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; + // 设置当前请求是否为AJAX请求 + if (typeof (enableAjax) === 'boolean') { + F.controlEnableAjax = enableAjax; + } + f__doPostBack_internal(); } }, 100); @@ -326,7 +381,15 @@ if(cmp.f_cellEditing) { // 可编辑单元格的表格 // 选中单元格 - saveInHiddenField('SelectedCell', cmp.f_getSelectedCell().join(',')); + //saveInHiddenField('SelectedCell', cmp.f_getSelectedCell().join(',')); + + // 选中单元格 + var selectedCell = cmp.f_getSelectedCell(); + if (selectedCell && selectedCell.length) { + saveInHiddenField('SelectedCell', JSON.stringify(selectedCell)); + } else { + removeHiddenField('SelectedCell'); + } //// 新增行 //var newAddedRows = cmp.f_getNewAddedRows(); @@ -344,6 +407,7 @@ removeHiddenField('ModifiedData'); } + /* // 删除的行索引列表 var deletedRows = cmp.f_getDeletedRows(); if (deletedRows.length > 0) { @@ -351,11 +415,19 @@ } else { removeHiddenField('DeletedRows'); } + */ } else { // 普通的表格 // 选中行索引列表 - saveInHiddenField('SelectedRowIndexArray', cmp.f_getSelectedRows().join(',')); + //saveInHiddenField('SelectedRowIndexArray', cmp.f_getSelectedRows().join(',')); + // 选中行标识符列表 + var selectedRows = cmp.f_getSelectedRows(); + if (selectedRows && selectedRows.length) { + saveInHiddenField('SelectedRows', JSON.stringify(selectedRows)); + } else { + removeHiddenField('SelectedRows'); + } } @@ -419,7 +491,8 @@ // 显示“正在载入...”的提示信息 function _showAjaxLoading(ajaxLoadingType) { - if (_requestCount > 0) { + // 延迟后,要再次检查当前有 AJAX 正在进行,才显示提示信息 + if (__ajaxUnderwayCount > 0) { if (ajaxLoadingType === "default") { F.ajaxLoadingDefault.setStyle('left', (Ext.getBody().getWidth() - F.ajaxLoadingDefault.getWidth()) / 2 + 'px'); @@ -433,8 +506,7 @@ // 隐藏“正在载入...”的提示信息 function _hideAjaxLoading(ajaxLoadingType) { - if (_requestCount <= 0) { - _requestCount = 0; + if (__ajaxUnderwayCount === 0) { if (ajaxLoadingType === "default") { F.ajaxLoadingDefault.hide(); @@ -445,46 +517,71 @@ } } - // 当前 Ajax 的并发请求数 - var _requestCount = 0; + function ajaxStart() { - // 发起 Ajax 请求之前事件处理 - Ext.Ajax.on('beforerequest', function (conn, options) { - _requestCount++; + // 计数加一 + __ajaxUnderwayCount++; + + // 仅在第一个 AJAX 发起时,延迟显示提示信息 + if (__ajaxUnderwayCount !== 1) { + return; + } if (!enableAjaxLoading()) { // Do nothing } else { Ext.defer(_showAjaxLoading, 50, window, [ajaxLoadingType()]); } + + } + + function ajaxStop() { + // 计数减一 + __ajaxUnderwayCount--; + if (__ajaxUnderwayCount < 0) { + __ajaxUnderwayCount = 0; + } + + if (!enableAjaxLoading()) { + // ... + } else { + Ext.defer(_hideAjaxLoading, 0, window, [ajaxLoadingType()]); + } + + if (__ajaxUnderwayCount === 0) { + F.controlEnableAjaxLoading = undefined; + F.controlAjaxLoadingType = undefined; + } + } + + /* + // 当前 Ajax 的并发请求数 + //var _requestCount = 0; + var _ajaxStarted = false; + + // 发起 Ajax 请求之前事件处理 + Ext.Ajax.on('beforerequest', function (conn, options) { + //_requestCount++; + + _ajaxStarted = true; + ajaxStart(); }); // Ajax 请求结束 Ext.Ajax.on('requestcomplete', function (conn, options) { - _requestCount--; - - if (!enableAjaxLoading()) { - // ... - } else { - Ext.defer(_hideAjaxLoading, 0, window, [ajaxLoadingType()]); - } - F.control_enable_ajax_loading = undefined; - F.control_ajax_loading_type = undefined; + //_requestCount--; + _ajaxStarted = false; + }); // Ajax 请求发生异常 Ext.Ajax.on('requestexception', function (conn, options) { - _requestCount--; + //_requestCount--; + _ajaxStarted = false; + - if (!enableAjaxLoading()) { - // ... - } else { - Ext.defer(_hideAjaxLoading, 0, window, [ajaxLoadingType()]); - } - F.control_enable_ajax_loading = undefined; - F.control_ajax_loading_type = undefined; }); - + */ diff --git a/FineUI.Examples/extjs_builder/js/F/F.util.js b/FineUI.Examples/extjs_builder/js/F/F.util.js index 72a219a..8e315c5 100644 --- a/FineUI.Examples/extjs_builder/js/F/F.util.js +++ b/FineUI.Examples/extjs_builder/js/F/F.util.js @@ -4,18 +4,6 @@ var F = function (cmpName) { return Ext.getCmp(cmpName); }; -F.state = function (cmp, state) { - F.util.setFState(cmp, state); -}; - -F.enable = function (id) { - F.util.enableSubmitControl(id); -}; - -F.disable = function (id) { - F.util.disableSubmitControl(id); -}; - F.target = function (target) { return F.util.getTargetWindow(target); }; @@ -25,7 +13,7 @@ F.alert = function () { }; F.init = function () { - F.util.init.apply(window, arguments); + F.util.init.apply(window, arguments); }; F.load = function () { @@ -46,6 +34,10 @@ F.ajaxReady = function () { F.beforeAjax = function () { F.util.beforeAjax.apply(window, arguments); }; +F.beforeAjaxSuccess = function () { + F.util.beforeAjaxSuccess.apply(window, arguments); +}; + F.stop = function () { var event = arguments.callee.caller.arguments[0] || window.event; @@ -64,16 +56,6 @@ F.fieldValue = function (cmp) { return F.util.getFormFieldValue(cmp); }; -F.customEvent = function (argument, validate) { - var pmv = F.pagemanager.validate; - if (validate && pmv) { - if (!F.util.validForms(pmv.forms, pmv.target, pmv.messagebox)) { - return false; - } - } - __doPostBack(F.pagemanager.name, argument); -}; - F.getHidden = function () { return F.util.getHiddenFieldValue.apply(window, arguments); }; @@ -85,15 +67,77 @@ F.addCSS = function () { F.util.addCSS.apply(window, arguments); }; - -// 更新EventValidation的值 -F.eventValidation = function (newValue) { - F.setHidden("__EVENTVALIDATION", newValue); +F.initTreeTabStrip = function () { + F.util.initTreeTabStrip.apply(window, arguments); }; +F.addMainTab = function () { + F.util.addMainTab.apply(window, arguments); +}; + +F.getActiveWindow = function () { + return F.wnd.getActiveWindow.apply(window, arguments); +}; + + +// 记录最后一个控件的序号 +F.f_objectIndex = 0; + + +// 为了兼容保留函数签名:F.customEvent +F.f_customEvent = F.customEvent = function (argument, validate) { + //var pmv = F.f_pagemanager.validate; + //if (validate && pmv) { + // if (!F.util.validForms(pmv.forms, pmv.target, pmv.messagebox)) { + // return false; + // } + //} + //__doPostBack(F.f_pagemanager.name, argument); + + var enableAjax; + if (typeof(argument) === 'boolean') { + enableAjax = argument; + argument = validate; + validate = arguments[2]; + } + + var pmv = F.f_pagemanager.validate; + if (validate && pmv) { + if (!F.util.validateForms(pmv.forms, pmv.target, pmv.messagebox)) { + return false; + } + } + + if (typeof (enableAjax) === 'boolean') { + __doPostBack(enableAjax, F.f_pagemanager.name, argument); + } else { + __doPostBack(F.f_pagemanager.name, argument); + } +}; + + +// 更新EventValidation的值 +F.f_eventValidation = function (newValue) { + F.setHidden("__EVENTVALIDATION", newValue); +}; + +F.f_state = function (cmp, state) { + F.util.setFState(cmp, state); +}; + +// 为了兼容保留函数签名:F.enable +F.f_enable = F.enable = function (id) { + F.util.enableSubmitControl(id); +}; + +// 为了兼容保留函数签名:F.disable +F.f_disable = F.disable = function (id) { + F.util.disableSubmitControl(id); +}; + // 更新ViewState的值 -F.viewState = function (viewStateBeforeAJAX, newValue, startIndex) { +F.f_viewState = function (viewStateBeforeAJAX, newValue, startIndex) { var viewStateHiddenFiledId = '__VIEWSTATE'; var oldValue = F.getHidden(viewStateHiddenFiledId); @@ -133,7 +177,7 @@ F.viewState = function (viewStateBeforeAJAX, newValue, startIndex) { // expires: 天 // 新增 或者 修改Cookie F.cookie = function (key, value, options) { - if (typeof(value) === 'undefined') { + if (typeof (value) === 'undefined') { var cookies = document.cookie ? document.cookie.split('; ') : []; var result = key ? '' : {}; Ext.Array.each(cookies, function (cookie, index) { @@ -184,16 +228,35 @@ F.removeCookie = function (key, options) { }; +// 能否访问 iframe 中的 window.F 对象 +F.canAccess = function (iframeWnd) { + + // 访问 iframeWnd.F 时,可能出现错误 Blocked a frame with origin "http://fineui.com/" from accessing a cross-origin frame. + // Blocked:这个问题出现在 http://fineui.com/ 页面加载一个 http://baidu.com/ 的 iframe 页面 + try { + iframeWnd.F; + iframeWnd.window; + } catch (e) { + return false; + } + + if (!iframeWnd.F || !iframeWnd.window) { + return false; + } + + return true; +}; + + Ext.onReady(function () { - F.util.triggerLoad(); - + // 加延迟,以保证在 zh_CN 中通过 Ext.onReady 注册的脚本先执行(其中对 Ext.Date 进行了初始化) + window.setTimeout(function () { + F.util.triggerLoad(); + F.util.triggerReady(); + F.util.hidePageLoading(); + }, 0); - F.util.triggerReady(); - - - F.util.hidePageLoading(); - }); (function () { @@ -213,7 +276,7 @@ Ext.onReady(function () { }); } - + /* // 能否访问 iframe 中的 window.F 对象 function canIFrameWindowAccessed(iframeWnd) { @@ -231,6 +294,7 @@ Ext.onReady(function () { return true; } + */ // FineUI常用函数域(Utility) @@ -247,23 +311,23 @@ Ext.onReady(function () { // 初始化 init: function (options) { // msgTarget, labelWidth, labelSeparator, blankImageUrl, enableAjaxLoading, ajaxLoadingType, enableAjax, themeName, formChangeConfirm) { - - Ext.apply(F, options, { - language: 'zh_CN', - msgTarget: 'side', - labelWidth: 100, - labelSeparator: ':', - //blankImageUrl: '', - enableAjaxLoading: true, - ajaxLoadingType: 'default', - enableAjax: true, - theme: 'neptune', - formChangeConfirm: false, - ajaxTimeout: 120 - }); - - - // Ext.QuickTips.init(true); 在原生的IE7(非IE8下的IE7模式)会有问题 + + Ext.apply(F, options, { + language: 'zh_CN', + msgTarget: 'side', + labelWidth: 100, + labelSeparator: ':', + //blankImageUrl: '', + enableAjaxLoading: true, + ajaxLoadingType: 'default', + enableAjax: true, + theme: 'neptune', + formChangeConfirm: false, + ajaxTimeout: 120 + }); + + + // Ext.QuickTips.init(true); 在原生的IE7(非IE8下的IE7模式)会有问题 // 表现为iframe中的页面出现滚动条时,页面上的所有按钮都不能点击了。 // 测试例子在:aspnet/test.aspx //Ext.QuickTips.init(false); @@ -271,18 +335,17 @@ Ext.onReady(function () { F.ajax.hookPostBack(); - F.global_enable_ajax = F.enableAjax; - - F.global_enable_ajax_loading = F.enableAjaxLoading; - F.global_ajax_loading_type = F.ajaxLoadingType; + //F.global_enable_ajax = F.enableAjax; + //F.global_enable_ajax_loading = F.enableAjaxLoading; + //F.global_ajax_loading_type = F.ajaxLoadingType; // 添加Ajax Loading提示节点 F.ajaxLoadingDefault = Ext.get(F.util.appendLoadingNode()); F.ajaxLoadingMask = Ext.create('Ext.LoadMask', Ext.getBody(), { msg: F.util.loading }); - F.form_upload_file = false; - F.global_disable_ajax = false; + //F.form_upload_file = false; + //F.global_disable_ajax = false; //F.x_window_manager = new Ext.WindowManager(); //F.x_window_manager.zseed = 6000; @@ -290,8 +353,8 @@ Ext.onReady(function () { document.forms[0].autocomplete = 'off'; Ext.getBody().addCls('f-body'); - - Ext.Ajax.timeout = F.ajaxTimeout * 1000; + + Ext.Ajax.timeout = F.ajaxTimeout * 1000; // 向document.body添加主题类 if (F.theme) { @@ -330,7 +393,7 @@ Ext.onReady(function () { // Ext.getBody().addCls('bigfont'); //} - /* + /* // IE6&7不支持,IE8以上支持"data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" if (Ext.isIE6 || Ext.isIE7) { Ext.BLANK_IMAGE_URL = F.blankImageUrl; @@ -365,6 +428,7 @@ Ext.onReady(function () { _readyList: [], _ajaxReadyList: [], _beforeAjaxList: [], + _beforeAjaxSuccessList: [], _loadList: [], ready: function (callback) { @@ -372,7 +436,7 @@ Ext.onReady(function () { }, triggerReady: function () { Ext.Array.each(F.util._readyList, function (item, index) { - item.call(window); + item.apply(window); }); }, @@ -382,7 +446,7 @@ Ext.onReady(function () { }, triggerAjaxReady: function () { Ext.Array.each(F.util._ajaxReadyList, function (item, index) { - item.call(window); + item.apply(window); }); }, @@ -390,9 +454,26 @@ Ext.onReady(function () { F.util._beforeAjaxList.push(callback); }, triggerBeforeAjax: function () { + var result = true, args = arguments; Ext.Array.each(F.util._beforeAjaxList, function (item, index) { - item.call(window); + if (item.apply(window, args) === false) { + result = false; + } }); + return result; + }, + + beforeAjaxSuccess: function (callback) { + F.util._beforeAjaxSuccessList.push(callback); + }, + triggerBeforeAjaxSuccess: function () { + var result = true, args = arguments; + Ext.Array.each(F.util._beforeAjaxSuccessList, function (item, index) { + if (item.apply(window, args) === false) { + result = false; + } + }); + return result; }, @@ -401,7 +482,7 @@ Ext.onReady(function () { }, triggerLoad: function () { Ext.Array.each(F.util._loadList, function (item, index) { - item.call(window); + item.apply(window); }); }, @@ -492,24 +573,7 @@ Ext.onReady(function () { }, - // 弹出Alert对话框 - alert: function (msg, title, icon, okscript) { - title = title || F.util.alertTitle; - icon = icon || Ext.MessageBox.INFO; - Ext.MessageBox.show({ - title: title, - msg: msg, - buttons: Ext.MessageBox.OK, - icon: icon, - fn: function (buttonId) { - if (buttonId === "ok") { - if (typeof (okscript) === "function") { - okscript.call(window); - } - } - } - }); - }, + // 向页面添加Loading...节点 appendLoadingNode: function () { @@ -632,7 +696,7 @@ Ext.onReady(function () { iframeEls.each(function (iframeEl) { var iframeWnd = iframeEl.dom.contentWindow; - if (!canIFrameWindowAccessed(iframeWnd)) { + if (!F.canAccess(iframeWnd)) { return true; // continue } @@ -836,6 +900,7 @@ Ext.onReady(function () { Ext.removeNode(node.dom); } + /* var ss1; if (isCSSFile) { @@ -859,6 +924,32 @@ Ext.onReady(function () { var hh1 = document.getElementsByTagName("head")[0]; hh1.appendChild(ss1); + */ + + var ss1; + var hh1 = document.getElementsByTagName('head')[0]; + if (isCSSFile) { + ss1 = document.createElement('link'); + //ss1.setAttribute('type', 'text/css'); + ss1.setAttribute('rel', 'stylesheet'); + ss1.setAttribute('id', id); + ss1.setAttribute('href', content); + hh1.appendChild(ss1); + } else { + // Tricks From: http://www.phpied.com/dynamic-script-and-style-elements-in-ie/ + ss1 = document.createElement('style'); + //ss1.setAttribute('type', 'text/css'); + ss1.setAttribute('id', id); + // Update: note that it's important for IE that you append the style to the head *before* setting its content. Otherwise IE678 will *crash* is the css string contains an @import. + hh1.appendChild(ss1); + if (ss1.styleSheet) { // IE + ss1.styleSheet.cssText = content; + } else { // the world + var tt1 = document.createTextNode(content); + ss1.appendChild(tt1); + } + } + }, /* @@ -1194,7 +1285,7 @@ Ext.onReady(function () { // 对话框图标 getMessageBoxIcon: function (iconShortName) { - var icon = Ext.MessageBox.WARNING; + var icon = iconShortName || Ext.MessageBox.WARNING; if (iconShortName === 'info') { icon = Ext.MessageBox.INFO; } else if (iconShortName === 'warning') { @@ -1207,32 +1298,102 @@ Ext.onReady(function () { return icon; }, - // 确认对话框 - confirm: function (targetName, title, msg, okScript, cancelScript, iconShortName) { - var wnd = F.util.getTargetWindow(targetName); - var icon = F.util.getMessageBoxIcon(iconShortName); + // 弹出Alert对话框 + alert: function (target, message, title, messageIcon, ok) { // 老的顺序:msg, title, icon, okscript + var args = [].slice.call(arguments, 0); + + var options = args[0]; + if (typeof (options) === 'string') { + if (!/^_self|_parent|_top$/.test(args[0])) { + args.splice(0, 0, '_self'); + } + options = { + target: args[0], + message: args[1], + title: args[2], + messageIcon: args[3], + ok: args[4] + }; + } + + var wnd = F.util.getTargetWindow(options.target); + if (!F.canAccess(wnd)) { + return; // return + } + + var icon = Ext.MessageBox.INFO; + if (options.messageIcon) { + icon = F.util.getMessageBoxIcon(options.messageIcon); + } + wnd.Ext.MessageBox.show({ - title: title || F.util.confirmTitle, - msg: msg, + cls: options.cls || '', + title: options.title || F.util.alertTitle, + msg: options.message, + buttons: Ext.MessageBox.OK, + icon: icon, + fn: function (buttonId) { + if (buttonId === "ok") { + if (typeof (options.ok) === "function") { + options.ok.call(window); + } + } + } + }); + }, + + + + // 确认对话框 + confirm: function (target, message, title, messageIcon, ok, cancel) { // 老的顺序:targetName, title, msg, okScript, cancelScript, iconShortName) + + var args = [].slice.call(arguments, 0); //$.makeArray(arguments); + + var options = args[0]; + if (typeof (options) === 'string') { + if (!/^_self|_parent|_top$/.test(args[0])) { + args.splice(0, 0, '_self'); + } + options = { + target: args[0], + message: args[1], + title: args[2], + messageIcon: args[3], + ok: args[4], + cancel: args[5] + }; + } + + + var wnd = F.util.getTargetWindow(options.target); + if (!F.canAccess(wnd)) { + return; // return + } + + var icon = F.util.getMessageBoxIcon(options.messageIcon); + wnd.Ext.MessageBox.show({ + cls: options.cls || '', + title: options.title || F.util.confirmTitle, + msg: options.message, buttons: Ext.MessageBox.OKCANCEL, icon: icon, fn: function (btn) { if (btn == 'cancel') { - if (cancelScript) { - if (typeof (cancelScript) === 'string') { - new Function(cancelScript)(); + if (options.cancel) { + if (typeof (options.cancel) === 'string') { + new Function(options.cancel)(); } else { - cancelScript.apply(wnd); + options.cancel.apply(wnd); } } else { return false; } } else { - if (okScript) { - if (typeof (okScript) === 'string') { - new Function(okScript)(); + if (options.ok) { + if (typeof (options.ok) === 'string') { + new Function(options.ok)(); } else { - okScript.apply(wnd); + options.ok.apply(wnd); } } else { return false; @@ -1297,6 +1458,8 @@ Ext.onReady(function () { }, + + noop: function () { } }; diff --git a/FineUI.Examples/extjs_builder/js/F/F.wnd.js b/FineUI.Examples/extjs_builder/js/F/F.wnd.js index 71331ce..b50fae4 100644 --- a/FineUI.Examples/extjs_builder/js/F/F.wnd.js +++ b/FineUI.Examples/extjs_builder/js/F/F.wnd.js @@ -66,11 +66,16 @@ // isGoldenSection : 弹出窗体位于页面的黄金分隔位置 // hiddenHiddenFieldID : 隐藏表单字段记录此窗体是否弹出,也页面回发时保持状态用 show: function (panel, iframeUrl, windowTitle, left, top, isGoldenSection, hiddenHiddenFieldID, width, height) { - var target = F.util.getTargetWindow(panel['f_property_target']); - var guid = panel['f_property_guid']; - if (window.frameElement && target !== window) { - // 当前页面在IFrame中(也即时 window.frameElement 存在) - // 此弹出窗体需要在父窗口中弹出 + var target = F.util.getTargetWindow(panel.f_property_target); + var guid = panel.f_property_guid; + + // 当前页面在IFrame中(window.frameElement 存在) - 这个判断有问题 + // ----如果外部页面是 http://a.com/ 而内部页面是 http://b.com/ 在 b.com 内弹出窗体时, window.frameElement 就会出现拒绝访问 + + // parent != window - 当前窗体不是顶层窗体 + // target !== window - 并且当前窗体不是需要弹出的位置(target) + if (parent != window && target !== window) { + if (!target.F[guid]) { // 父窗口中已经创建了这个Ext-Window对象 var wrapper = guid + '_wrapper'; @@ -81,14 +86,19 @@ } // Ext.apply 的第三个参数是default obejct var config = Ext.apply({}, { - 'renderTo': wrapper, - 'id': guid, - 'f_property_window': window, - 'f_property_ext_window': panel + renderTo: wrapper, + id: guid, + f_property_window: window, + f_property_ext_window: panel }, panel.initialConfig); + delete config.f_state; + delete config.items; + delete config.listeners; + // 在父页面中创建一个Ext-Window的幻影(拷贝) - target.F[guid] = target.Ext.create('Ext.window.Window', config); + //target.F[guid] = target.Ext.create('Ext.window.Window', config); + target.F.wnd.createGhostWindow(config); } panel = target.F[guid]; } @@ -127,11 +137,48 @@ panel.setPosition(leftTop.left, leftTop.top); } + /* if (panel.maximizable) { F.wnd.fixMaximize(panel); } + */ + + F.wnd.fixMaximize(panel); }, + createGhostWindow: function (config) { + + var ghostWnd = Ext.create('Ext.window.Window', config); + ghostWnd.on('beforeclose', function () { + + // 如果原始窗体所在的页面存在,则触发原始窗体的 beforeclose 事件 + if (F.canAccess(config.f_property_window)) { + config.f_property_ext_window.fireEvent('beforeclose', config.f_property_ext_window); + + return false; + } + + // 如果原始窗体已经被关闭,则不拦截 beforeclose 事件,会简单的关闭窗体 + + }); + + + ghostWnd.on('maximize', function () { + + // 如果原始窗体所在的页面存在,则触发原始窗体的 maximize 事件 + if (F.canAccess(config.f_property_window)) { + config.f_property_ext_window.fireEvent('maximize', config.f_property_ext_window); + } else { + F.wnd.fixMaximize(ghostWnd); + } + + }); + + + F[config.id] = ghostWnd; + }, + + // 获取Ghost Panel实例 getGhostPanel: function (panel, targetName, guid) { if (typeof (targetName) === 'undefined') { @@ -141,7 +188,7 @@ guid = panel.f_property_guid; } var target = F.util.getTargetWindow(targetName); - if (window.frameElement && target !== window) { + if (parent != window && target !== window) { // 从父页面中查找幻影Ext-Window对象 panel = target.F[guid]; } @@ -173,6 +220,8 @@ maximize: function (panel) { var panel = F.wnd.getGhostPanel(panel); panel.maximize(); + + F.wnd.fixMaximize(panel); }, // 最小化 @@ -191,7 +240,7 @@ // 现在的 Window 控件时渲染在 from 表单里面的一个 DIV 中的 fixMaximize: function (panel) { if (panel.maximized) { - var target = F.util.getTargetWindow(panel['f_property_target']); + var target = F.util.getTargetWindow(panel.f_property_target); var bodySize = target.window.Ext.getBody().getViewSize(); panel.setSize(bodySize.width, bodySize.height); // 不要忘记左上角坐标 @@ -273,12 +322,14 @@ }, // 返回当前活动Window组件对象(浏览器窗口对象通过F.wnd.getActiveWindow().window获取) - getActiveWindow: function () { + getActiveWindow: function (justParentWindow) { // Ext.WindowManager.getActive();有可能返回一个弹出对话框 function getActiveFineUIWindow(wnd) { var result = wnd.Ext.WindowManager.getActive(); - if (!result.f_property_guid) { + + // 如果弹出的窗体不是 FineUI.Window 生成的窗体(有可能是Alert、Notify),则需要从排序列表中找 + if (result && !result.f_property_guid) { wnd.Ext.WindowManager.eachTopDown(function (cmp) { if (cmp.f_property_guid) { result = cmp; @@ -291,10 +342,11 @@ var activeWindow = parent.window; var activeExtWindow = getActiveFineUIWindow(activeWindow); + if (activeExtWindow) { - if (activeExtWindow['f_property_window']) { - activeWindow = activeExtWindow['f_property_window']; - activeExtWindow = activeExtWindow['f_property_ext_window']; + if (activeExtWindow.f_property_window && !justParentWindow) { + activeWindow = activeExtWindow.f_property_window; + activeExtWindow = activeExtWindow.f_property_ext_window; } activeExtWindow.window = activeWindow; } @@ -305,13 +357,61 @@ // 向弹出此Ext-Window的页面写入值 writeBackValue: function () { var aw = F.wnd.getActiveWindow(); - var controlIds = aw['f_property_save_state_control_client_ids']; - var controlCount = Math.min(controlIds.length, arguments.length); - for (var i = 0; i < controlCount; i++) { - aw.window.Ext.getCmp(controlIds[i]).setValue(arguments[i]); + if (F.canAccess(aw.window)) { + var controlIds = aw.f_property_save_state_control_client_ids; + var controlCount = Math.min(controlIds.length, arguments.length); + for (var i = 0; i < controlCount; i++) { + aw.window.Ext.getCmp(controlIds[i]).setValue(arguments[i]); + } } } }; + + + function hideActiveWindow(type, param) { + var aw = F.getActiveWindow(); + if (aw) { + if (F.canAccess(aw.window)) { + if (type === 'hide') { + aw.f_hide(); + } else if (type === 'hiderefresh') { + aw.f_hide_refresh(); + } else if (type === 'hidepostback') { + aw.f_hide_postback.call(aw, param) + } else if (type === 'hideexecutescript') { + aw.f_hide_executescript.call(aw, param) + } + } else { + var parentAW = F.getActiveWindow(true); + parentAW.hide(); + } + } + } + + // 当前激活窗体 + F.activeWnd = { + + hide: function () { + hideActiveWindow('hide'); + }, + + hideRefresh: function () { + hideActiveWindow('hiderefresh'); + }, + + hidePostBack: function (param) { + hideActiveWindow('hidepostback', param); + }, + + hideExecuteScript: function (param) { + hideActiveWindow('hideexecutescript', param); + } + + + }; + + + })(); diff --git a/FineUI.Examples/extjs_builder/js/F/extender.js b/FineUI.Examples/extjs_builder/js/F/extender.js index e75f8a6..731c304 100644 --- a/FineUI.Examples/extjs_builder/js/F/extender.js +++ b/FineUI.Examples/extjs_builder/js/F/extender.js @@ -334,69 +334,78 @@ if (Ext.form.field.Base) { if (this.setFieldLabel) { this.setFieldLabel(text); } - } + }, - }); -} + f_setReadOnly: function (readonly) { + var me = this; -if (Ext.form.field.Time) { - Ext.override(Ext.form.field.Time, { - - // Time 继承自 ComboBox,这个函数被覆盖了,因此需要重新定义 - f_setValue: function (value) { - if (typeof (value) === 'undefined') { - value = this.f_state['Text']; + if (typeof (readonly) === 'undefined') { + readonly = me.f_state['Readonly']; } - this.setValue(value); - } - }); -} - - -if (Ext.form.field.HtmlEditor) { - Ext.override(Ext.form.field.HtmlEditor, { - - f_setValue: function (text) { - if (typeof (text) === 'undefined') { - text = this.f_state['Text']; + if (me.setReadOnly) { + me.setReadOnly(readonly); + } + + if (readonly) { + me.el.addCls('f-readonly'); + } else { + me.el.removeCls('f-readonly'); } - this.setValue(text); } }); } -if (Ext.form.field.Checkbox) { - Ext.override(Ext.form.field.Checkbox, { +if (Ext.form.Label) { + Ext.override(Ext.form.Label, { - f_setValue: function () { - this.setValue(this.f_state['Checked']); + f_setReadOnly: function (readonly) { + var me = this; + + if (typeof (readonly) === 'undefined') { + readonly = me.f_state['Readonly']; + } + + if (me.setReadOnly) { + me.setReadOnly(readonly); + } + + if (readonly) { + me.el.addCls('f-readonly'); + } else { + me.el.removeCls('f-readonly'); + } } }); + } -if (Ext.form.RadioGroup) { - Ext.override(Ext.form.RadioGroup, { - - f_setValue: function (value) { - value = value || this.f_state['SelectedValue']; - var selectedObj = {}; - selectedObj[this.name] = value; - this.setValue(selectedObj); - //Ext.form.CheckboxGroup.prototype.f_setValue.apply(this, [value]); - } - - }); -} - if (Ext.form.CheckboxGroup) { Ext.override(Ext.form.CheckboxGroup, { + f_setReadOnly: function (readonly) { + var me = this; + + if (typeof (readonly) === 'undefined') { + readonly = me.f_state['Readonly']; + } + + if (me.setReadOnly) { + me.setReadOnly(readonly); + } + + if (readonly) { + me.el.addCls('f-readonly'); + } else { + me.el.removeCls('f-readonly'); + } + }, + f_reloadData: function (name, isradiogroup) { var container = this.ownerCt; var newConfig = Ext.apply(this.initialConfig, { @@ -465,6 +474,63 @@ if (Ext.form.CheckboxGroup) { }); } + + +if (Ext.form.field.Time) { + Ext.override(Ext.form.field.Time, { + + // Time 继承自 ComboBox,这个函数被覆盖了,因此需要重新定义 + f_setValue: function (value) { + if (typeof (value) === 'undefined') { + value = this.f_state['Text']; + } + this.setValue(value); + } + + }); +} + + +if (Ext.form.field.HtmlEditor) { + Ext.override(Ext.form.field.HtmlEditor, { + + f_setValue: function (text) { + if (typeof (text) === 'undefined') { + text = this.f_state['Text']; + } + this.setValue(text); + } + + }); +} + + +if (Ext.form.field.Checkbox) { + Ext.override(Ext.form.field.Checkbox, { + + f_setValue: function () { + this.setValue(this.f_state['Checked']); + } + + }); +} + + +if (Ext.form.RadioGroup) { + Ext.override(Ext.form.RadioGroup, { + + f_setValue: function (value) { + value = value || this.f_state['SelectedValue']; + var selectedObj = {}; + selectedObj[this.name] = value; + this.setValue(selectedObj); + //Ext.form.CheckboxGroup.prototype.f_setValue.apply(this, [value]); + } + + }); +} + + if (Ext.form.field.ComboBox) { Ext.override(Ext.form.field.ComboBox, { // Load data from local cache. @@ -560,7 +626,7 @@ if (Ext.grid.Panel) { Ext.override(Ext.grid.Panel, { f_getData: function () { - var $this = this, data = this.f_state['F_Rows']['Values']; + var $this = this, rows = this.f_state['F_Rows']; ////////////////////////////////////////////////// var tpls = this.f_getTpls(this.f_tpls); @@ -597,6 +663,7 @@ if (Ext.grid.Panel) { */ // 不要改变 F_Rows.Values 的原始数据,因为这个值会被POST到后台 + /* var newdata = [], newdataitem; Ext.Array.each(data, function (row, rowIndex) { newdataitem = []; @@ -611,6 +678,34 @@ if (Ext.grid.Panel) { }); newdata.push(newdataitem); }); + */ + + var newdata = []; + Ext.Array.each(rows, function (row, rowIndex) { + var newdataitem = []; + + // row['0'] -> Values + Ext.Array.each(row['0'], function (item, cellIndex) { + var newcellvalue = item; + if (typeof (item) === 'string' && item.substr(0, 7) === "#@TPL@#") { + var clientId = $this.id + '_' + item.substr(7); + newcellvalue = '' + tplsHash[clientId] + ''; + } + + newdataitem.push(newcellvalue); + }); + + // idProperty + var rowId = row['6']; + if (typeof (rowId) === 'undefined') { + // 如果未定义 id,要生成一个 id,用来记录选中的行(否则在行调整顺序后,选中的行就乱了) + rowId = 'fineui_row_' + rowIndex; + } + newdataitem.push(rowId); + + + newdata.push(newdataitem); + }); ////////////////////////////////////////////////// return newdata; @@ -695,6 +790,7 @@ if (Ext.grid.Panel) { if (this.f_cellEditing) { + this.f_cellEditing.cancelEdit(); store.commitChanges(); this.f_initRecordIDs(); } @@ -765,13 +861,17 @@ if (Ext.grid.Panel) { // 选中某些行 f_selectRows: function (rows) { - rows = rows || this.f_state['SelectedRowIndexArray'] || []; - var sm = this.getSelectionModel(); - if (sm.select) { + var me = this; + rows = rows || me.f_state['SelectedRowIDArray'] || []; + + var sm = me.getSelectionModel(); + var store = me.getStore(); + + if (rows.length && sm.select) { sm.deselectAll(true); Ext.Array.each(rows, function (row, index) { // select( records, [keepExisting], [suppressEvent] ) - sm.select(row, true, true); + sm.select(store.getById(row), true, true); }); } }, @@ -786,14 +886,15 @@ if (Ext.grid.Panel) { // 获取选中的行 f_getSelectedRows: function () { - var selectedRows = []; - var sm = this.getSelectionModel(); + var me = this, selectedRows = []; + + var sm = me.getSelectionModel(); if (sm.getSelection) { var selection = sm.getSelection(); - var store = this.getStore(); + var store = me.getStore(); Ext.Array.each(selection, function (record, index) { - selectedRows.push(store.indexOf(record)); + selectedRows.push(record.getId()); }); } @@ -802,30 +903,45 @@ if (Ext.grid.Panel) { // 选中单元格(AllowCellEditing) - f_selectCell: function (cell) { - cell = cell || this.f_state['SelectedCell'] || []; - var sm = this.getSelectionModel(); - if (sm.select) { - if (cell.length === 2) { - sm.setCurrentPosition({ - row: cell[0], - column: cell[1] - }); - } else { - // TODO: - //sm.deselectAll(); - } - } + f_selectCell: function (rowId, columnId) { + var me = this; + + var cell = rowId; + if(typeof(cell) === 'undefined') { + cell = me.f_state['SelectedCell'] || []; + } else if(!Ext.isArray(cell)) { + cell = [rowId, columnId]; + } + + var sm = me.getSelectionModel(); + if (cell.length === 2) { + // 支持[行索引,列索引],也支持[行Id,列Id] + var row = cell[0]; + var column = cell[1]; + + if(typeof(row) === 'string') { + row = me.f_getRow(row); + } + + if(typeof(column) === 'string') { + column = me.f_getColumn(column); + } + + sm.setCurrentPosition({ + row: row, + column: column + }); + } }, // 获取选中的单元格(AllowCellEditing) f_getSelectedCell: function () { - var selectedCell = [], currentPos; - var sm = this.getSelectionModel(); + var me = this, selectedCell = [], currentPos; + var sm = me.getSelectionModel(); if (sm.getCurrentPosition) { currentPos = sm.getCurrentPosition(); if (currentPos) { - selectedCell = [currentPos.row, currentPos.columnHeader.f_columnIndex]; + selectedCell = [currentPos.record.getId(), currentPos.columnHeader.id]; } } return selectedCell; @@ -1005,6 +1121,7 @@ if (Ext.grid.Panel) { f_commitChanges: function () { if (this.f_cellEditing) { + this.f_cellEditing.cancelEdit(); this.getStore().commitChanges(); this.f_initRecordIDs(); } @@ -1013,44 +1130,83 @@ if (Ext.grid.Panel) { // 从Store中删除选中的行(或者单元格) - f_deleteSelected: function () { - var $this = this; - var store = this.getStore(); + f_deleteSelectedRows: function () { + var me = this; + var store = me.getStore(); - var sm = this.getSelectionModel(); + var sm = me.getSelectionModel(); if (sm.getSelection) { - var rows = this.f_getSelectedRows(); - Ext.Array.each(rows, function (rowIndex, index) { - store.removeAt(rowIndex); + var rows = me.f_getSelectedRows(); + Ext.Array.each(rows, function (rowId, index) { + store.remove(store.getById(rowId)); }); } else if (sm.getSelectedCell) { - var selectedCell = this.f_getSelectedCell(); + var selectedCell = me.f_getSelectedCell(); if (selectedCell.length) { - store.removeAt(selectedCell[0]); + store.remove(store.getById(selectedCell[0])); } } }, + + f_generateNewId: function () { + var newid = 'fineui_' + F.f_objectIndex; + + F.f_objectIndex++; + + return newid; + }, // 添加一条新纪录 - f_addNewRecord: function (defaultObj, appendToEnd) { - var i, count, store = this.getStore(); + f_addNewRecord: function (defaultObj, appendToEnd, editColumnId) { + var me = this, store = me.getStore(); var newRecord = defaultObj; //new Ext.data.Model(defaultObj); + - this.f_cellEditing.cancelEdit(); + // 如果设置了 id,则 extjs 认为这不是一个 phantom(幻影),而是一个真实存在的数据,rejectChanges 就不能去除这条数据了 + /* + // 自动生成ID + if(typeof(newRecord.__id) === 'undefined') { + newRecord.__id = me.f_generateNewId(); + } + */ + - var rowIndex = 0; + me.f_cellEditing.cancelEdit(); + + var newAddedRecords; + //var rowIndex = 0; if (appendToEnd) { - store.add(newRecord); - rowIndex = store.getCount() - 1; + newAddedRecords = store.add(newRecord); + //rowIndex = store.getCount() - 1; } else { - store.insert(0, newRecord); - rowIndex = 0; + newAddedRecords = store.insert(0, newRecord); + //rowIndex = 0; } - this.f_cellEditing.startEditByPosition({ - row: rowIndex, - column: this.f_firstEditableColumnIndex() - }); - }, + + var newAddedRecord = newAddedRecords[0]; + + + // phantom: True when the record does not yet exist in a server-side database (see setDirty). Any record which has a real database pk set as its id property is NOT a phantom -- it's real. + // 如果设置了 id 属性,则 extjs 认为这不是一个 phantom(幻影),而是一个真实存在的数据,然后通过 getStore().getModifiedRecords() 就得不到这条记录了。 + // 所以需要设置 setDirty + //newAddedRecord.setDirty(true); + + var column; + if (typeof (editColumnId) === 'undefined') { + column = me.f_firstEditableColumn(); + } else { + column = me.f_getColumn(editColumnId); + } + + me.f_cellEditing.startEdit(newAddedRecord, column); + }, + + + f_startEdit: function(rowId, columnId) { + var me = this; + + me.f_cellEditing.startEdit(me.f_getRow(rowId), me.f_getColumn(columnId)); + }, //// 获取新增的行索引(在修改后的列表中) //f_getNewAddedRows: function () { @@ -1064,69 +1220,126 @@ if (Ext.grid.Panel) { // return newAddedRows; //}, + /* // 获取删除的行索引(在原始的列表中) f_getDeletedRows: function () { - var currentRecordIDs = [], deletedRows = []; - this.getStore().each(function (record, index) { + var me = this, currentRecordIDs = [], deletedRows = []; + me.getStore().each(function (record, index) { currentRecordIDs.push(record.id); }); // 快速判断是否存在行被删除的情况 - if (currentRecordIDs.join('') === this.f_recordIDs.join('')) { - return deletedRows; + if (currentRecordIDs.join('') === me.f_recordIDs.join('')) { + return []; // 没有行被删除 } - Ext.Array.each(this.f_recordIDs, function (recordID, index) { + + // 内存分页,特殊处理 + var originalIndexPlus = 0; + var pagingBar = me.f_getPaging(); + if (pagingBar && !pagingBar.f_databasePaging) { + originalIndexPlus = pagingBar.f_pageIndex * pagingBar.f_pageSize; + } + + + Ext.Array.each(me.f_recordIDs, function (recordID, index) { if (Ext.Array.indexOf(currentRecordIDs, recordID) < 0) { - deletedRows.push(index); + //deletedRows.push(index + originalIndexPlus); + deletedRows.push({ + index: -1, + originalIndex: index + originalIndexPlus, + id: recordID, + status: 'deleted' + }); } }); return deletedRows; }, + */ - f_firstEditableColumnIndex: function () { - var i = 0, count = this.columns.length, column; - for (; i < count; i++) { - column = this.columns[i]; - if ((column.getEditor && column.getEditor()) || column.xtype === 'checkcolumn') { - return i; + f_firstEditableColumn: function () { + var me = this, columns = me.f_getColumns(); + + for (var i = 0, count = columns.length; i < count; i++) { + var column = columns[i]; + if (me.f_columnEditable(column)) { + return column; } } - return 0; + + return undefined; }, f_columnEditable: function (columnID) { - var i = 0, count = this.columns.length, column; - for (; i < count; i++) { - column = this.columns[i]; - if (column.id === columnID) { - if ((column.getEditor && column.getEditor()) || column.xtype === 'checkcolumn') { - return true; - } else { - return false; - } - } + var me = this, columns = me.f_getColumns(); + + var column = columnID; + if (typeof (columnID) === 'string') { + column = me.f_getColumn(column); } + + if (column && column.f_editable) { + return true; + /* + if((column.getEditor && column.getEditor()) || column.xtype === 'checkcolumn') { + return true; + } + */ + } + return false; }, + + f_getColumn: function (columnID) { + var me = this, columns = me.f_getColumns(); + + for (var i=0, count = columns.length; i < count; i++) { + var column = columns[i]; + if (column.id === columnID) { + return column; + } + } + return undefined; + }, + + f_getRow: function(rowId) { + var me = this, store = me.getStore(); + return store.getById(rowId); + }, + + f_getCellValue: function(rowId, columnId) { + var me = this; + + var row = me.f_getRow(rowId); + if(row && row.data) { + return row.data[columnId]; + } + + return undefined; + }, + + f_updateCellValue: function(rowId, columnId, newvalue) { + var me = this; + + var row = me.f_getRow(rowId); + if(row && row.set) { + row.set(columnId, newvalue); + } + }, + + + /* // 获取用户修改的单元格值 f_getModifiedData: function () { var me = this, i, j, count, columns = this.f_getColumns(); - /* - Ext.Array.each(columns, function (column, index) { - columnMap[column.id] = column; - }); - - function checkColumnEditable(columnID) { - var column = columnMap[columnID]; - if (column && (column.hasEditor() || column.xtype === 'checkcolumn')) { - return true; - } - return false; + // 内存分页,特殊处理 + var originalIndexPlus = 0; + var pagingBar = me.f_getPaging(); + if (pagingBar && !pagingBar.f_databasePaging) { + originalIndexPlus = pagingBar.f_pageIndex * pagingBar.f_pageSize; } - */ var modifiedRows = []; var store = this.getStore(); @@ -1172,12 +1385,108 @@ if (Ext.grid.Panel) { } } // 修改现有数据行 - modifiedRows.push([rowIndex, rowIndexOriginal, rowModifiedObj]); + modifiedRows.push([rowIndex, rowIndexOriginal + originalIndexPlus, rowModifiedObj]); } } // 结果按照 rowIndex 升序排序 return modifiedRows.sort(function (a, b) { return a[0] - b[0]; }); + }, + */ + + // 获取用户修改的单元格值 + f_getModifiedData: function () { + var me = this, i, j, count, columns = me.f_getColumns(); + + // 内存分页,特殊处理 + var originalIndexPlus = 0; + var pagingBar = me.f_getPaging(); + if (pagingBar && !pagingBar.f_databasePaging) { + originalIndexPlus = pagingBar.f_pageIndex * pagingBar.f_pageSize; + } + + var modifiedRows = []; + var store = me.getStore(); + var modifiedRecords = store.getModifiedRecords(); + for (i = 0, count = modifiedRecords.length; i < count; i++) { + var modifiedRecord = modifiedRecords[i]; + var recordID = modifiedRecord.id; + var rowId = modifiedRecord.getId(); // getId() is not the same as id property + var rowIndex = store.indexOf(modifiedRecord); + var rowData = modifiedRecord.data; + if (rowIndex < 0) { + continue; + } + + // 本行数据在原始数据集合中的行索引 + var rowIndexOriginal = Ext.Array.indexOf(me.f_recordIDs, recordID); + if (rowIndexOriginal < 0) { + var newRowData = {}; + //for (var columnID in rowData) { + Ext.Object.each(rowData, function (columnID, value) { + //if (me.f_columnEditable(columnID)) { + //delete rowData[columnID]; + var column = me.f_getColumn(columnID); + if (column && (column.f_columnType === 'rendercheckfield' || column.f_columnType === 'renderfield')) { + var newData = rowData[columnID]; + // 如果是日期对象,则转化为字符串 + if (F.util.isDate(newData)) { + newData = F.util.resolveGridDateToString(me.f_fields, columnID, newData); + } + newRowData[columnID] = newData; + } + //} + }); + // 新增数据行 + //modifiedRows.push([rowIndex, -1, newRowData]); + modifiedRows.push({ + index: rowIndex, + originalIndex: -1, + id: rowId, + values: newRowData, + status: 'newadded' + }); + } else { + var rowModifiedObj = {}; + Ext.Object.each(modifiedRecord.modified, function(columnID, value) { + //for (var columnID in modifiedRecord.modified) { + // 不删除非可编辑列,比如[总成绩(不可编辑)]列不可编辑,但是可以通过代码更改 + //if (me.f_columnEditable(columnID)) { + var newData = rowData[columnID]; + // 如果是日期对象,则转化为字符串 + if (F.util.isDate(newData)) { + newData = F.util.resolveGridDateToString(me.f_fields, columnID, newData); + } + rowModifiedObj[columnID] = newData; + //} + }); + // 修改现有数据行 + //modifiedRows.push([rowIndex, rowIndexOriginal + originalIndexPlus, rowModifiedObj]); + modifiedRows.push({ + index: rowIndex, + originalIndex: rowIndexOriginal + originalIndexPlus, + id: rowId, + values: rowModifiedObj, + status: 'modified' + }); + } + } + + // 删除的行 + //modifiedRows = modifiedRows.concat(me.f_getDeletedRows()); + var removedRecords = store.getRemovedRecords(); + Ext.Array.each(removedRecords, function (record, index) { + var recordOriginalIndex = Ext.Array.indexOf(me.f_recordIDs, record.id); + modifiedRows.push({ + index: -1, + originalIndex: recordOriginalIndex + originalIndexPlus, + id: record.getId(), + status: 'deleted' + }); + }); + + // 结果按照 originalIndex 升序排序 + return modifiedRows.sort(function (a, b) { return a.originalIndex - b.originalIndex; }); } }); @@ -1229,7 +1538,9 @@ if (Ext.tree.Panel) { // 19 - EnableExpandEvent // 20 - EnableCollapseEvent - // 21 - Nodes + // 21 - CssClass + + // 22 - Nodes node.text = data[0]; node.leaf = !!data[1]; node.id = data[2]; @@ -1262,9 +1573,12 @@ if (Ext.tree.Panel) { node.f_enableexpandevent = !!data[19]; node.f_enablecollapseevent = !!data[20]; + if (data[21]) { + node.cls = data[21]; + } - if (data[21] && data[21].length > 0) { - node.children = that.f_tranformData(data[21]); + if (data[22] && data[22].length > 0) { + node.children = that.f_tranformData(data[22]); } nodes.push(node); @@ -1516,7 +1830,7 @@ if (Ext.window.Window) { me.f_hide(); if (me.f_property_enable_ajax === false) { - F.control_enable_ajax = false; + F.controlEnableAjax = false; } // 如果argument为undefined,则传入 __doPostBack 的 argument 应该为空字符串 @@ -1630,9 +1944,11 @@ if (Ext.ux.grid && Ext.ux.grid.ColumnHeaderGroup) { -// 修正IE7/IE8下Date.parse('2015-10-01')出错的问题 -// http://jibbering.com/faq/#parseDate + (function () { + + // 修正IE7/IE8下Date.parse('2015-10-01')出错的问题 + // http://jibbering.com/faq/#parseDate function parseISO8601(dateStr) { var isoExp = /(\d{2,4})-(\d\d?)-(\d\d?)/, date = new Date(NaN), month, @@ -1657,18 +1973,27 @@ if (Ext.ux.grid && Ext.ux.grid.ColumnHeaderGroup) { return date; } + + + + if (Ext.form.field.ComboBox) { + var originalComboSetValue = Ext.form.field.ComboBox.prototype.setValue; + Ext.form.field.ComboBox.prototype.setValue = function (value, doSelect) { + // value可能是数字(可编辑单元格,列的FieldType可能是Int) + if (typeof (value) === 'number' || typeof (value) === 'boolean') { + value += ''; + } + return originalComboSetValue.apply(this, [value, doSelect]); + }; + } + + + + })(); -if (Ext.form.field.ComboBox) { - F.originalComboSetValue = Ext.form.field.ComboBox.prototype.setValue; - Ext.form.field.ComboBox.prototype.setValue = function (value, doSelect) { - // value可能是数字(可编辑单元格,列的FieldType可能是Int) - if (typeof (value) === 'number' || typeof (value) === 'boolean') { - value += ''; - } - return F.originalComboSetValue.apply(this, [value, doSelect]); - }; -} + + diff --git a/FineUI.Examples/extjs_builder/js/lang/f-lang-zh_CN.js b/FineUI.Examples/extjs_builder/js/lang/f-lang-zh_CN.js index 1bcd27c..348c456 100644 --- a/FineUI.Examples/extjs_builder/js/lang/f-lang-zh_CN.js +++ b/FineUI.Examples/extjs_builder/js/lang/f-lang-zh_CN.js @@ -1,7 +1,6 @@ - Ext.apply(F.ajax, { errorMsg: "出错了!{0} ({1})", timeoutErrorMsg: "请求超时,请刷新页面并重试!" diff --git a/FineUI.Examples/extjs_builder/js/修改ext-all.js(为了支持 IE11).txt b/FineUI.Examples/extjs_builder/js/修改ext-all.js(为了支持 IE11).txt new file mode 100644 index 0000000..382b8e8 --- /dev/null +++ b/FineUI.Examples/extjs_builder/js/修改ext-all.js(为了支持 IE11).txt @@ -0,0 +1,10 @@ + ext-all.js ҵ´: +window.undefined=window.undefined;(function(){var q=function(e){return e.test(Ext.userAgent)},v=document.compatMode=="CSS1Compat",H=function(T,S){var e;return(T&&(e=S.exec(Ext.userAgent)))?parseFloat(e[1]):0},r=document.documentMode,a=q(/opera/),x=a&&q(/version\/10\.5/),M=q(/\bchrome\b/),B=q(/webkit/),c=!M&&q(/safari/),K=c&&q(/applewebkit\/4/),I=c&&q(/version\/3/),F=c&&q(/version\/4/),l=c&&q(/version\/5\.0/),E=c&&q(/version\/5/),k=!a&&q(/msie/),L=k&&((q(/msie 7/)&&r!=8&&r!=9&&r!=10)||r==7),J=k&&((q(/msie 8/)&&r!=7&&r!=9&&r!=10)||r==8),G=k&&((q(/msie 9/)&&r!=7&&r!=8&&r!=10)||r==9),h=k&&((q(/msie 10/)&&r!=7&&r!=8&&r!=9)||r==10),O=k&&q(/msie 6/),b=!B&&q(/gecko/),R=b&&q(/rv:1\.9/),Q=b&&q(/rv:2\.0/),P=b&&q(/rv:5\./),t=b&&q(/rv:10\./),A=R&&q(/rv:1\.9\.0/),y=R&&q(/rv:1\.9\.1/),w=R&&q(/rv:1\.9\.2/),g=q(/windows|win32/),D=q(/macintosh|mac os x/),z=q(/linux/),n=null,o=H(true,/\bchrome\/(\d+\.\d+)/),j=H(true,/\bfirefox\/(\d+\.\d+)/),p=H(k,/msie (\d+\.\d+)/),u=H(a,/version\/(\d+\.\d+)/),d=H(c,/version\/(\d+\.\d+)/),C=H(B,/webkit\/(\d+\.\d+)/),s=/^https/i.test(window.location.protocol),m; + +δϣ + +Ext._isIE = !a && (q(/msie/) || q(/trident/)), +Ext._isIE11 = k && ((q(/trident\/7\.0/) && r != 7 && r != 8 && r != 9 && r != 10) || r == 11); +if (Ext._isIE11) { +k = L = J = G = h = O = false; +} \ No newline at end of file diff --git a/FineUI.Examples/extjs_builder/res/FineUI.css b/FineUI.Examples/extjs_builder/res/FineUI.css index f404195..003cd4d 100644 --- a/FineUI.Examples/extjs_builder/res/FineUI.css +++ b/FineUI.Examples/extjs_builder/res/FineUI.css @@ -168,3 +168,9 @@ -webkit-user-select: text; }*/ + + +.f-formrow .x-column-form-item { + margin-bottom: 5px; +} + diff --git a/FineUI.Examples/extjs_builder/version.txt b/FineUI.Examples/extjs_builder/version.txt index 15a2b33..25e4c53 100644 --- a/FineUI.Examples/extjs_builder/version.txt +++ b/FineUI.Examples/extjs_builder/version.txt @@ -1 +1 @@ -v4.2.0 \ No newline at end of file +v4.2.3 \ No newline at end of file diff --git a/FineUI.Examples/form/calendar.aspx b/FineUI.Examples/form/calendar.aspx index 11ea349..60f63db 100644 --- a/FineUI.Examples/form/calendar.aspx +++ b/FineUI.Examples/form/calendar.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/form/checkbox.aspx b/FineUI.Examples/form/checkbox.aspx index ec8fac5..b84acb6 100644 --- a/FineUI.Examples/form/checkbox.aspx +++ b/FineUI.Examples/form/checkbox.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/form/checkboxlist.aspx b/FineUI.Examples/form/checkboxlist.aspx index 4f568e0..9f4fe6a 100644 --- a/FineUI.Examples/form/checkboxlist.aspx +++ b/FineUI.Examples/form/checkboxlist.aspx @@ -4,7 +4,7 @@ - + @@ -76,13 +76,13 @@ var selectedCheckboxs = list2.getValue(), selectedValues, i; if (Ext.Object.isEmpty(selectedCheckboxs)) { - top.F.util.alert("列表一没有选中项!"); + top.F.alert("列表一没有选中项!"); } else { selectedValues = []; Ext.Object.each(selectedCheckboxs, function (key, value) { selectedValues.push(value); }); - top.F.util.alert("列表一选中项的值:" + selectedValues.join(',')); + top.F.alert("列表一选中项的值:" + selectedValues.join(',')); } } diff --git a/FineUI.Examples/form/checkboxlist_update.aspx b/FineUI.Examples/form/checkboxlist_update.aspx index 5a233c4..3342310 100644 --- a/FineUI.Examples/form/checkboxlist_update.aspx +++ b/FineUI.Examples/form/checkboxlist_update.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/form/datepicker.aspx b/FineUI.Examples/form/datepicker.aspx index a79adf7..8d04ffb 100644 --- a/FineUI.Examples/form/datepicker.aspx +++ b/FineUI.Examples/form/datepicker.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/form/datepicker_autopostback.aspx b/FineUI.Examples/form/datepicker_autopostback.aspx index b532548..467be90 100644 --- a/FineUI.Examples/form/datepicker_autopostback.aspx +++ b/FineUI.Examples/form/datepicker_autopostback.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/form/datepicker_range.aspx b/FineUI.Examples/form/datepicker_range.aspx index 7ab7fc7..3541795 100644 --- a/FineUI.Examples/form/datepicker_range.aspx +++ b/FineUI.Examples/form/datepicker_range.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/form/fileupload.aspx b/FineUI.Examples/form/fileupload.aspx index e9868b9..140f772 100644 --- a/FineUI.Examples/form/fileupload.aspx +++ b/FineUI.Examples/form/fileupload.aspx @@ -4,7 +4,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 注:假设行的总宽度是 100px,行的属性 ColumnWidths="20px 50% 50%",则: + + 第一个字段宽度:20px + 第二个字段宽度:40px + 第三个字段宽度:40px + + + + diff --git a/FineUI.Examples/form/form_columnwidths.aspx.cs b/FineUI.Examples/form/form_columnwidths.aspx.cs new file mode 100644 index 0000000..2762645 --- /dev/null +++ b/FineUI.Examples/form/form_columnwidths.aspx.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.form +{ + public partial class form_columnwidths : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + } + } + + protected void btnSubmitForm2_Click(object sender, EventArgs e) + { + ShowNotify("表单 2 验证并提交成功!"); + } + + + + } +} diff --git a/FineUI.Examples/form/form_columnwidths.aspx.designer.cs b/FineUI.Examples/form/form_columnwidths.aspx.designer.cs new file mode 100644 index 0000000..01a5c10 --- /dev/null +++ b/FineUI.Examples/form/form_columnwidths.aspx.designer.cs @@ -0,0 +1,159 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.form { + + + public partial class form_columnwidths { + + /// + /// _form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm _form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Form Form2; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label3; + + /// + /// Label16 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label16; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// Label4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label4; + + /// + /// TextBox2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox2; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label2; + + /// + /// DropDownList3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DropDownList DropDownList3; + + /// + /// Label5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label5; + + /// + /// NumberBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox NumberBox1; + + /// + /// Label6 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label6; + + /// + /// TextArea1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextArea TextArea1; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel2; + + /// + /// btnSubmitForm2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnSubmitForm2; + } +} diff --git a/FineUI.Examples/form/form_compare.aspx b/FineUI.Examples/form/form_compare.aspx index bcd39c8..a017243 100644 --- a/FineUI.Examples/form/form_compare.aspx +++ b/FineUI.Examples/form/form_compare.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/form/form_disabled.aspx b/FineUI.Examples/form/form_disabled.aspx index e34cf16..b812cea 100644 --- a/FineUI.Examples/form/form_disabled.aspx +++ b/FineUI.Examples/form/form_disabled.aspx @@ -3,9 +3,9 @@ + - - + @@ -112,7 +112,36 @@ - + + + + + + + + + + + + + + .f-readonly { + opacity: .5; + filter: alpha(opacity=50); + } + + + diff --git a/FineUI.Examples/form/form_disabled.aspx.cs b/FineUI.Examples/form/form_disabled.aspx.cs index 80bec87..6d459a2 100644 --- a/FineUI.Examples/form/form_disabled.aspx.cs +++ b/FineUI.Examples/form/form_disabled.aspx.cs @@ -36,10 +36,7 @@ namespace FineUI.Examples.form { ResolveFormField(delegate(Field field) { - if (!(field is Label)) - { - field.Readonly = true; - } + field.Readonly = true; }); } @@ -47,10 +44,7 @@ namespace FineUI.Examples.form { ResolveFormField(delegate(Field field) { - if (!(field is Label)) - { - field.Readonly = false; - } + field.Readonly = false; }); } diff --git a/FineUI.Examples/form/form_disabled.aspx.designer.cs b/FineUI.Examples/form/form_disabled.aspx.designer.cs index 772c255..6d265a4 100644 --- a/FineUI.Examples/form/form_disabled.aspx.designer.cs +++ b/FineUI.Examples/form/form_disabled.aspx.designer.cs @@ -236,5 +236,23 @@ namespace FineUI.Examples.form { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.Button btnEnablePanel; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + + /// + /// Button3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button3; } } diff --git a/FineUI.Examples/form/form_dynamic.aspx b/FineUI.Examples/form/form_dynamic.aspx index 206010f..68cf721 100644 --- a/FineUI.Examples/form/form_dynamic.aspx +++ b/FineUI.Examples/form/form_dynamic.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/form/form_hide_field.aspx b/FineUI.Examples/form/form_hide_field.aspx index 95acbf6..fbe6414 100644 --- a/FineUI.Examples/form/form_hide_field.aspx +++ b/FineUI.Examples/form/form_hide_field.aspx @@ -4,12 +4,9 @@ + - - + @@ -19,37 +16,33 @@ - - + + - + - + - + - - + - - - - - @@ -74,15 +67,31 @@ - - + - 注意:比较上述两个按钮的异同(控件的HideMode属性)。 + + + + + + + 注: + + + 对比隐藏[标题]和隐藏[电话]的不同之处([标题]的HideMode=Visibility) + + + 对比隐藏第二行和隐藏第三行的不同之处(FormRow3的HideMode=Visibility) + + diff --git a/FineUI.Examples/form/form_hide_field.aspx.cs b/FineUI.Examples/form/form_hide_field.aspx.cs index 4a39fea..dacc788 100644 --- a/FineUI.Examples/form/form_hide_field.aspx.cs +++ b/FineUI.Examples/form/form_hide_field.aspx.cs @@ -18,13 +18,13 @@ namespace FineUI.Examples.form protected void btnSubmitForm2_Click(object sender, EventArgs e) { - Alert.ShowInTop("表单验证并提交成功!"); + ShowNotify("表单验证并提交成功!"); } - protected void btnShowHideLiuShuiHao_Click(object sender, EventArgs e) + protected void btnShowHidePhone_Click(object sender, EventArgs e) { - labLiuShuiHao.Hidden = !labLiuShuiHao.Hidden; + labPhone.Hidden = !labPhone.Hidden; } protected void btnShowHideTitle_Click(object sender, EventArgs e) @@ -32,6 +32,18 @@ namespace FineUI.Examples.form labTitle.Hidden = !labTitle.Hidden; } + protected void btnShowHideFormRow2_Click(object sender, EventArgs e) + { + FormRow2.Hidden = !FormRow2.Hidden; + } + + + protected void btnShowHideFormRow3_Click(object sender, EventArgs e) + { + FormRow3.Hidden = !FormRow3.Hidden; + } + + } } diff --git a/FineUI.Examples/form/form_hide_field.aspx.designer.cs b/FineUI.Examples/form/form_hide_field.aspx.designer.cs index f294792..2e188d9 100644 --- a/FineUI.Examples/form/form_hide_field.aspx.designer.cs +++ b/FineUI.Examples/form/form_hide_field.aspx.designer.cs @@ -58,13 +58,22 @@ namespace FineUI.Examples.form { protected global::FineUI.Label labLiuShuiHao; /// - /// Label3 控件。 + /// FormRow2 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUI.Label Label3; + protected global::FineUI.FormRow FormRow2; + + /// + /// labPhone 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labPhone; /// /// Label16 控件。 @@ -75,6 +84,15 @@ namespace FineUI.Examples.form { /// protected global::FineUI.Label Label16; + /// + /// FormRow3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.FormRow FormRow3; + /// /// Label4 控件。 /// @@ -148,12 +166,30 @@ namespace FineUI.Examples.form { protected global::FineUI.Button btnShowHideTitle; /// - /// btnShowHideLiuShuiHao 控件。 + /// btnShowHidePhone 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUI.Button btnShowHideLiuShuiHao; + protected global::FineUI.Button btnShowHidePhone; + + /// + /// btnShowHideFormRow2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnShowHideFormRow2; + + /// + /// btnShowHideFormRow3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnShowHideFormRow3; } } diff --git a/FineUI.Examples/form/form_labelwidth.aspx b/FineUI.Examples/form/form_labelwidth.aspx new file mode 100644 index 0000000..0639692 --- /dev/null +++ b/FineUI.Examples/form/form_labelwidth.aspx @@ -0,0 +1,53 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="form_labelwidth.aspx.cs" Inherits="FineUI.Examples.form.form_labelwidth" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 注:表单字段定义的 LabelWidth 和 LabelAlign 属性会覆盖 Form 的同名属性 + + + diff --git a/FineUI.Examples/form/form_labelwidth.aspx.cs b/FineUI.Examples/form/form_labelwidth.aspx.cs new file mode 100644 index 0000000..5b3e5f7 --- /dev/null +++ b/FineUI.Examples/form/form_labelwidth.aspx.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.form +{ + public partial class form_labelwidth : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + } + } + + protected void btnSubmitForm1_Click(object sender, EventArgs e) + { + ShowNotify("表单 1 验证并提交成功!"); + } + + + + } +} diff --git a/FineUI.Examples/form/form_labelwidth.aspx.designer.cs b/FineUI.Examples/form/form_labelwidth.aspx.designer.cs new file mode 100644 index 0000000..c18f5b9 --- /dev/null +++ b/FineUI.Examples/form/form_labelwidth.aspx.designer.cs @@ -0,0 +1,96 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.form { + + + public partial class form_labelwidth { + + /// + /// _form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm _form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Form Form1; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// CheckBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.CheckBox CheckBox1; + + /// + /// DropDownList1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DropDownList DropDownList1; + + /// + /// TextBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel1; + + /// + /// btnSubmitForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnSubmitForm1; + } +} diff --git a/FineUI.Examples/form/form_longlabel.aspx b/FineUI.Examples/form/form_longlabel.aspx new file mode 100644 index 0000000..eb4f978 --- /dev/null +++ b/FineUI.Examples/form/form_longlabel.aspx @@ -0,0 +1,30 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="form_longlabel.aspx.cs" Inherits="FineUI.Examples.form.form_longlabel" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/form/form_longlabel.aspx.cs b/FineUI.Examples/form/form_longlabel.aspx.cs new file mode 100644 index 0000000..27f1e4e --- /dev/null +++ b/FineUI.Examples/form/form_longlabel.aspx.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.form +{ + public partial class form_longlabel : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + } + + } + + protected void btnSubmit_Click(object sender, EventArgs e) + { + ShowNotify("表单验证成功"); + } + + } +} diff --git a/FineUI.Examples/form/form_longlabel.aspx.designer.cs b/FineUI.Examples/form/form_longlabel.aspx.designer.cs new file mode 100644 index 0000000..b38e311 --- /dev/null +++ b/FineUI.Examples/form/form_longlabel.aspx.designer.cs @@ -0,0 +1,87 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.form { + + + public partial class form_longlabel { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.SimpleForm SimpleForm1; + + /// + /// tbxUserName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxUserName; + + /// + /// tbxMyBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TriggerBox tbxMyBox1; + + /// + /// NumberBox5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox NumberBox5; + + /// + /// DatePicker1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DatePicker DatePicker1; + + /// + /// btnSubmit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnSubmit; + } +} diff --git a/FineUI.Examples/form/form_reset.aspx b/FineUI.Examples/form/form_reset.aspx index 811f83d..73ba28a 100644 --- a/FineUI.Examples/form/form_reset.aspx +++ b/FineUI.Examples/form/form_reset.aspx @@ -4,7 +4,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/form/layout_center_label.aspx.cs b/FineUI.Examples/form/layout_center_label.aspx.cs new file mode 100644 index 0000000..7bbd927 --- /dev/null +++ b/FineUI.Examples/form/layout_center_label.aspx.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.form +{ + public partial class layout_center_label : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + btnResetForm1.OnClientClick = Form1.GetResetReference(); + + } + } + + protected void btnSubmitForm1_Click(object sender, EventArgs e) + { + ShowNotify("表单验证并提交成功!"); + } + + + + } +} diff --git a/FineUI.Examples/form/layout_center_label.aspx.designer.cs b/FineUI.Examples/form/layout_center_label.aspx.designer.cs new file mode 100644 index 0000000..8ab18bf --- /dev/null +++ b/FineUI.Examples/form/layout_center_label.aspx.designer.cs @@ -0,0 +1,105 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.form { + + + public partial class layout_center_label { + + /// + /// _form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm _form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Form Form1; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label2; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// CheckBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.CheckBox CheckBox1; + + /// + /// DropDownList1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DropDownList DropDownList1; + + /// + /// TextBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox1; + + /// + /// btnSubmitForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnSubmitForm1; + + /// + /// btnResetForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnResetForm1; + } +} diff --git a/FineUI.Examples/form/layout_checkout.aspx b/FineUI.Examples/form/layout_checkout.aspx index 7fb1a39..9ddc188 100644 --- a/FineUI.Examples/form/layout_checkout.aspx +++ b/FineUI.Examples/form/layout_checkout.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/form/layout_contactus.aspx b/FineUI.Examples/form/layout_contactus.aspx index 55b5e9e..2cbe2c9 100644 --- a/FineUI.Examples/form/layout_contactus.aspx +++ b/FineUI.Examples/form/layout_contactus.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/form/layout_multiline_buttons.aspx b/FineUI.Examples/form/layout_multiline_buttons.aspx new file mode 100644 index 0000000..eeeae65 --- /dev/null +++ b/FineUI.Examples/form/layout_multiline_buttons.aspx @@ -0,0 +1,54 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="layout_multiline_buttons.aspx.cs" + Inherits="FineUI.Examples.form.layout_multiline_buttons" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 注:第一行按钮所在的面板设置了样式:CssStyle="margin-bottom:5px;"。 + + + diff --git a/FineUI.Examples/form/layout_multiline_buttons.aspx.cs b/FineUI.Examples/form/layout_multiline_buttons.aspx.cs new file mode 100644 index 0000000..2aa08a1 --- /dev/null +++ b/FineUI.Examples/form/layout_multiline_buttons.aspx.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.form +{ + public partial class layout_multiline_buttons : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + btnReset.OnClientClick = Form1.GetResetReference(); + + } + } + + protected void btnSubmitForm1_Click(object sender, EventArgs e) + { + ShowNotify("表单验证并提交成功!"); + } + + + + } +} diff --git a/FineUI.Examples/form/layout_multiline_buttons.aspx.designer.cs b/FineUI.Examples/form/layout_multiline_buttons.aspx.designer.cs new file mode 100644 index 0000000..8b169c3 --- /dev/null +++ b/FineUI.Examples/form/layout_multiline_buttons.aspx.designer.cs @@ -0,0 +1,123 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.form { + + + public partial class layout_multiline_buttons { + + /// + /// _form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm _form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.SimpleForm Form1; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// CheckBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.CheckBox CheckBox1; + + /// + /// DropDownList1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DropDownList DropDownList1; + + /// + /// TextBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel1; + + /// + /// Button3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button3; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel2; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button1; + + /// + /// btnReset 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnReset; + } +} diff --git a/FineUI.Examples/form/layout_panel.aspx b/FineUI.Examples/form/layout_panel.aspx index 94b97f8..1939fee 100644 --- a/FineUI.Examples/form/layout_panel.aspx +++ b/FineUI.Examples/form/layout_panel.aspx @@ -4,7 +4,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/grid/grid_editor_cell_textarea.aspx.cs b/FineUI.Examples/grid/grid_editor_cell_textarea.aspx.cs new file mode 100644 index 0000000..20d2612 --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_textarea.aspx.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +namespace FineUI.Examples.grid +{ + public partial class grid_editor_cell_textarea : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + } + + #region BindGrid + + private void BindGrid() + { + DataTable table = GetSourceData(); + + Grid1.DataSource = table; + Grid1.DataBind(); + } + + + + #endregion + + #region Events + + protected void Button2_Click(object sender, EventArgs e) + { + Dictionary> modifiedDict = Grid1.GetModifiedDict(); + + foreach (int rowIndex in modifiedDict.Keys) + { + int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]); + DataRow row = FindRowByID(rowID); + + UpdateDataRow(modifiedDict[rowIndex], row); + } + + BindGrid(); + + labResult.Text = String.Format("用户修改的数据:{0}", Grid1.GetModifiedData().ToString(Newtonsoft.Json.Formatting.Indented)); + + Alert.Show("数据保存成功!(表格数据已重新绑定)"); + } + + private void UpdateDataRow(Dictionary rowDict, DataRow rowData) + { + // 姓名 + UpdateDataRow("Name", rowDict, rowData); + + // 性别 + UpdateDataRow("Gender", rowDict, rowData); + + // 入学年份 + UpdateDataRow("EntranceYear", rowDict, rowData); + + // 入学日期 + UpdateDataRow("EntranceDate", rowDict, rowData); + + // 是否在校 + UpdateDataRow("AtSchool", rowDict, rowData); + + // 所学专业 + UpdateDataRow("Major", rowDict, rowData); + + // 个人简介 + UpdateDataRow("Desc", rowDict, rowData); + + } + + private void UpdateDataRow(string columnName, Dictionary rowDict, DataRow rowData) + { + if (rowDict.ContainsKey(columnName)) + { + rowData[columnName] = rowDict[columnName]; + } + } + + #endregion + + #region Data + + private static readonly string KEY_FOR_DATASOURCE_SESSION = "datatable_for_grid_editor_cell_textarea"; + + // 模拟在服务器端保存数据 + // 特别注意:在真实的开发环境中,不要在Session放置大量数据,否则会严重影响服务器性能 + private DataTable GetSourceData() + { + if (Session[KEY_FOR_DATASOURCE_SESSION] == null) + { + Session[KEY_FOR_DATASOURCE_SESSION] = DataSourceUtil.GetDataTable(); + } + return (DataTable)Session[KEY_FOR_DATASOURCE_SESSION]; + } + + // 根据行ID来获取行数据 + private DataRow FindRowByID(int rowID) + { + DataTable table = GetSourceData(); + foreach (DataRow row in table.Rows) + { + if (Convert.ToInt32(row["Id"]) == rowID) + { + return row; + } + } + return null; + } + + #endregion + + } +} diff --git a/FineUI.Examples/grid/grid_editor_cell_textarea.aspx.designer.cs b/FineUI.Examples/grid/grid_editor_cell_textarea.aspx.designer.cs new file mode 100644 index 0000000..468215d --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_textarea.aspx.designer.cs @@ -0,0 +1,123 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_editor_cell_textarea { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label1; + + /// + /// tbxEditorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxEditorName; + + /// + /// ddlGender 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DropDownList ddlGender; + + /// + /// tbxEditorEntranceYear 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox tbxEditorEntranceYear; + + /// + /// DatePicker1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DatePicker DatePicker1; + + /// + /// tbxEditorMajor 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxEditorMajor; + + /// + /// TextArea1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextArea TextArea1; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + + /// + /// labResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labResult; + } +} diff --git a/FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx new file mode 100644 index 0000000..ed0694b --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx @@ -0,0 +1,118 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_editor_cell_updatecellvalue.aspx.cs" + Inherits="FineUI.Examples.grid.grid_editor_cell_updatecellvalue" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 注:编辑[语文成绩]或者[数学成绩]时会同时更新[总成绩]。 + + + + diff --git a/FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx.cs b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx.cs new file mode 100644 index 0000000..13db9d1 --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx.cs @@ -0,0 +1,235 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +using Newtonsoft.Json.Linq; + +namespace FineUI.Examples.grid +{ + public partial class grid_editor_cell_updatecellvalue : PageBase + { + private bool AppendToEnd = false; + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + // 删除选中单元格的客户端脚本 + string deleteScript = GetDeleteScript(); + + // 新增数据初始值 + JObject defaultObj = new JObject(); + defaultObj.Add("Name", "新用户"); + defaultObj.Add("Gender", "1"); + defaultObj.Add("Major", "化学系"); + defaultObj.Add("ChineseScore", 0); + defaultObj.Add("MathScore", 0); + defaultObj.Add("TotalScore", 0); + defaultObj.Add("Delete", String.Format("", deleteScript, IconHelper.GetResolvedIconUrl(Icon.Delete))); + + // 在第一行新增一条数据 + btnNew.OnClientClick = Grid1.GetAddNewRecordReference(defaultObj, AppendToEnd); + + // 重置表格 + btnReset.OnClientClick = Confirm.GetShowReference("确定要重置表格数据?", String.Empty, Grid1.GetRejectChangesReference(), String.Empty); + + + // 删除选中行按钮 + btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("请至少选择一项!") + deleteScript; + + + // 绑定表格 + BindGrid(); + } + } + + // 删除选中行的脚本 + private string GetDeleteScript() + { + return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, Grid1.GetDeleteSelectedRowsReference(), String.Empty); + } + + + #region BindGrid + + private void BindGrid() + { + DataTable table = GetSourceData(); + + Grid1.DataSource = table; + Grid1.DataBind(); + } + + + + #endregion + + #region Events + + protected void Grid1_PreDataBound(object sender, EventArgs e) + { + // 设置LinkButtonField的点击客户端事件 + LinkButtonField deleteField = Grid1.FindColumn("Delete") as LinkButtonField; + deleteField.OnClientClick = GetDeleteScript(); + } + + private DataRow CreateNewData(DataTable table, Dictionary newAddedData) + { + DataRow rowData = table.NewRow(); + + // 设置行ID(模拟数据库的自增长列) + rowData["Id"] = GetNextRowID(); + UpdateDataRow(newAddedData, rowData); + + return rowData; + } + + protected void Button2_Click(object sender, EventArgs e) + { + // 修改的现有数据 + Dictionary> modifiedDict = Grid1.GetModifiedDict(); + foreach (int rowIndex in modifiedDict.Keys) + { + int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]); + DataRow row = FindRowByID(rowID); + + UpdateDataRow(modifiedDict[rowIndex], row); + } + + + // 删除现有数据 + List deletedRows = Grid1.GetDeletedList(); + foreach (int rowIndex in deletedRows) + { + int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]); + DeleteRowByID(rowID); + } + + + // 新增数据 + List> newAddedList = Grid1.GetNewAddedList(); + DataTable table = GetSourceData(); + if (AppendToEnd) + { + for (int i = 0; i < newAddedList.Count; i++) + { + DataRow rowData = CreateNewData(table, newAddedList[i]); + table.Rows.Add(rowData); + } + } + else + { + for (int i = newAddedList.Count - 1; i >= 0; i--) + { + DataRow rowData = CreateNewData(table, newAddedList[i]); + table.Rows.InsertAt(rowData, 0); + } + } + + + labResult.Text = String.Format("用户修改的数据:{0}", Grid1.GetModifiedData().ToString(Newtonsoft.Json.Formatting.Indented)); + + + BindGrid(); + + ShowNotify("数据保存成功!(表格数据已重新绑定)"); + } + + private void UpdateDataRow(Dictionary rowDict, DataRow rowData) + { + // 姓名 + UpdateDataRow("Name", rowDict, rowData); + + // 性别 + UpdateDataRow("Gender", rowDict, rowData); + + // 所学专业 + UpdateDataRow("Major", rowDict, rowData); + + // 语文成绩 + UpdateDataRow("ChineseScore", rowDict, rowData); + + // 数学成绩 + UpdateDataRow("MathScore", rowDict, rowData); + + // 总成绩 + UpdateDataRow("TotalScore", rowDict, rowData); + + } + + + private void UpdateDataRow(string columnName, Dictionary rowDict, DataRow rowData) + { + if (rowDict.ContainsKey(columnName)) + { + rowData[columnName] = rowDict[columnName]; + } + } + + #endregion + + #region Data + + private static readonly string KEY_FOR_DATASOURCE_SESSION = "datatable_for_grid_editor_cell_updatecellvalue"; + + // 模拟在服务器端保存数据 + // 特别注意:在真实的开发环境中,不要在Session放置大量数据,否则会严重影响服务器性能 + private DataTable GetSourceData() + { + if (Session[KEY_FOR_DATASOURCE_SESSION] == null) + { + Session[KEY_FOR_DATASOURCE_SESSION] = DataSourceUtil.GetDataTable(); + } + return (DataTable)Session[KEY_FOR_DATASOURCE_SESSION]; + } + + // 根据行ID来获取行数据 + private DataRow FindRowByID(int rowID) + { + DataTable table = GetSourceData(); + foreach (DataRow row in table.Rows) + { + if (Convert.ToInt32(row["Id"]) == rowID) + { + return row; + } + } + return null; + } + + // 根据行ID来删除行数据 + private void DeleteRowByID(int rowID) + { + DataTable table = GetSourceData(); + + DataRow found = FindRowByID(rowID); + if (found != null) + { + table.Rows.Remove(found); + } + } + + // 模拟数据库的自增长列 + private int GetNextRowID() + { + int maxID = 0; + DataTable table = GetSourceData(); + foreach (DataRow row in table.Rows) + { + int currentRowID = Convert.ToInt32(row["Id"]); + if (currentRowID > maxID) + { + maxID = currentRowID; + } + } + return maxID + 1; + } + + #endregion + } +} diff --git a/FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx.designer.cs b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx.designer.cs new file mode 100644 index 0000000..ea614cd --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx.designer.cs @@ -0,0 +1,150 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_editor_cell_updatecellvalue { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Toolbar Toolbar1; + + /// + /// btnNew 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnNew; + + /// + /// btnDelete 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnDelete; + + /// + /// btnReset 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnReset; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label1; + + /// + /// tbxEditorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxEditorName; + + /// + /// tbxEditorMajor 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxEditorMajor; + + /// + /// TextBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox TextBox1; + + /// + /// NumberBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox NumberBox1; + + /// + /// NumberBox2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox NumberBox2; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + + /// + /// labResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labResult; + } +} diff --git a/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx new file mode 100644 index 0000000..a0af8bb --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx @@ -0,0 +1,113 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_editor_cell_updatecellvalue_hiddencolumn.aspx.cs" + Inherits="FineUI.Examples.grid.grid_editor_cell_updatecellvalue_hiddencolumn" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 注: + + 页面加载时[入学年份]列处于隐藏状态 + 保持[入学年份]列的隐藏状态,点击第一个更新按钮,然后点击[保存数据]按钮 + + + + + diff --git a/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx.cs b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx.cs new file mode 100644 index 0000000..2684408 --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +namespace FineUI.Examples.grid +{ + public partial class grid_editor_cell_updatecellvalue_hiddencolumn : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + } + + #region BindGrid + + private void BindGrid() + { + DataTable table = GetSourceData(); + + Grid1.DataSource = table; + Grid1.DataBind(); + } + + + + #endregion + + #region Events + + protected void Button2_Click(object sender, EventArgs e) + { + Dictionary> modifiedDict = Grid1.GetModifiedDict(); + + foreach (int rowIndex in modifiedDict.Keys) + { + int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]); + DataRow row = FindRowByID(rowID); + + UpdateDataRow(modifiedDict[rowIndex], row); + } + + BindGrid(); + + labResult.Text = String.Format("用户修改的数据:{0}", Grid1.GetModifiedData().ToString(Newtonsoft.Json.Formatting.Indented)); + + ShowNotify("数据保存成功!(表格数据已重新绑定)"); + } + + private void UpdateDataRow(Dictionary rowDict, DataRow rowData) + { + // 姓名 + UpdateDataRow("Name", rowDict, rowData); + + // 性别 + UpdateDataRow("Gender", rowDict, rowData); + + // 入学年份 + UpdateDataRow("EntranceYear", rowDict, rowData); + + // 入学日期 + UpdateDataRow("EntranceDate", rowDict, rowData); + + // 是否在校 + UpdateDataRow("AtSchool", rowDict, rowData); + + // 所学专业 + UpdateDataRow("Major", rowDict, rowData); + + } + + private void UpdateDataRow(string columnName, Dictionary rowDict, DataRow rowData) + { + if (rowDict.ContainsKey(columnName)) + { + rowData[columnName] = rowDict[columnName]; + } + } + + #endregion + + #region Data + + private static readonly string KEY_FOR_DATASOURCE_SESSION = "datatable_for_grid_editor_cell_updatecellvalue_hiddencolumn"; + + // 模拟在服务器端保存数据 + // 特别注意:在真实的开发环境中,不要在Session放置大量数据,否则会严重影响服务器性能 + private DataTable GetSourceData() + { + if (Session[KEY_FOR_DATASOURCE_SESSION] == null) + { + Session[KEY_FOR_DATASOURCE_SESSION] = DataSourceUtil.GetDataTable(); + } + return (DataTable)Session[KEY_FOR_DATASOURCE_SESSION]; + } + + // 根据行ID来获取行数据 + private DataRow FindRowByID(int rowID) + { + DataTable table = GetSourceData(); + foreach (DataRow row in table.Rows) + { + if (Convert.ToInt32(row["Id"]) == rowID) + { + return row; + } + } + return null; + } + + #endregion + + } +} diff --git a/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx.designer.cs b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx.designer.cs new file mode 100644 index 0000000..e413df9 --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx.designer.cs @@ -0,0 +1,123 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_editor_cell_updatecellvalue_hiddencolumn { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label1; + + /// + /// tbxEditorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxEditorName; + + /// + /// ddlGender 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DropDownList ddlGender; + + /// + /// tbxEditorEntranceYear 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox tbxEditorEntranceYear; + + /// + /// DatePicker1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DatePicker DatePicker1; + + /// + /// tbxEditorMajor 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxEditorMajor; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button1; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + + /// + /// labResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labResult; + } +} diff --git a/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx new file mode 100644 index 0000000..c5d53a5 --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx @@ -0,0 +1,115 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_editor_cell_updatecellvalue_noedit.aspx.cs" + Inherits="FineUI.Examples.grid.grid_editor_cell_updatecellvalue_noedit" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 注:编辑[语文成绩]或者[数学成绩]时会同时更新[总成绩]。 + + + + diff --git a/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx.cs b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx.cs new file mode 100644 index 0000000..b688af0 --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx.cs @@ -0,0 +1,235 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +using Newtonsoft.Json.Linq; + +namespace FineUI.Examples.grid +{ + public partial class grid_editor_cell_updatecellvalue_noedit : PageBase + { + private bool AppendToEnd = false; + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + // 删除选中单元格的客户端脚本 + string deleteScript = GetDeleteScript(); + + // 新增数据初始值 + JObject defaultObj = new JObject(); + defaultObj.Add("Name", "新用户"); + defaultObj.Add("Gender", "1"); + defaultObj.Add("Major", "化学系"); + defaultObj.Add("ChineseScore", 0); + defaultObj.Add("MathScore", 0); + defaultObj.Add("TotalScore", 0); + defaultObj.Add("Delete", String.Format("", deleteScript, IconHelper.GetResolvedIconUrl(Icon.Delete))); + + // 在第一行新增一条数据 + btnNew.OnClientClick = Grid1.GetAddNewRecordReference(defaultObj, AppendToEnd); + + // 重置表格 + btnReset.OnClientClick = Confirm.GetShowReference("确定要重置表格数据?", String.Empty, Grid1.GetRejectChangesReference(), String.Empty); + + + // 删除选中行按钮 + btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("请至少选择一项!") + deleteScript; + + + // 绑定表格 + BindGrid(); + } + } + + // 删除选中行的脚本 + private string GetDeleteScript() + { + return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, Grid1.GetDeleteSelectedRowsReference(), String.Empty); + } + + + #region BindGrid + + private void BindGrid() + { + DataTable table = GetSourceData(); + + Grid1.DataSource = table; + Grid1.DataBind(); + } + + + + #endregion + + #region Events + + protected void Grid1_PreDataBound(object sender, EventArgs e) + { + // 设置LinkButtonField的点击客户端事件 + LinkButtonField deleteField = Grid1.FindColumn("Delete") as LinkButtonField; + deleteField.OnClientClick = GetDeleteScript(); + } + + private DataRow CreateNewData(DataTable table, Dictionary newAddedData) + { + DataRow rowData = table.NewRow(); + + // 设置行ID(模拟数据库的自增长列) + rowData["Id"] = GetNextRowID(); + UpdateDataRow(newAddedData, rowData); + + return rowData; + } + + protected void Button2_Click(object sender, EventArgs e) + { + // 修改的现有数据 + Dictionary> modifiedDict = Grid1.GetModifiedDict(); + foreach (int rowIndex in modifiedDict.Keys) + { + int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]); + DataRow row = FindRowByID(rowID); + + UpdateDataRow(modifiedDict[rowIndex], row); + } + + + // 删除现有数据 + List deletedRows = Grid1.GetDeletedList(); + foreach (int rowIndex in deletedRows) + { + int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]); + DeleteRowByID(rowID); + } + + + // 新增数据 + List> newAddedList = Grid1.GetNewAddedList(); + DataTable table = GetSourceData(); + if (AppendToEnd) + { + for (int i = 0; i < newAddedList.Count; i++) + { + DataRow rowData = CreateNewData(table, newAddedList[i]); + table.Rows.Add(rowData); + } + } + else + { + for (int i = newAddedList.Count - 1; i >= 0; i--) + { + DataRow rowData = CreateNewData(table, newAddedList[i]); + table.Rows.InsertAt(rowData, 0); + } + } + + + labResult.Text = String.Format("修改的数据:{0}", Grid1.GetModifiedData().ToString(Newtonsoft.Json.Formatting.Indented)); + + + BindGrid(); + + ShowNotify("数据保存成功!(表格数据已重新绑定)"); + } + + private void UpdateDataRow(Dictionary rowDict, DataRow rowData) + { + // 姓名 + UpdateDataRow("Name", rowDict, rowData); + + // 性别 + UpdateDataRow("Gender", rowDict, rowData); + + // 所学专业 + UpdateDataRow("Major", rowDict, rowData); + + // 语文成绩 + UpdateDataRow("ChineseScore", rowDict, rowData); + + // 数学成绩 + UpdateDataRow("MathScore", rowDict, rowData); + + // 总成绩 + UpdateDataRow("TotalScore", rowDict, rowData); + + } + + private void UpdateDataRow(string columnName, Dictionary rowDict, DataRow rowData) + { + if (rowDict.ContainsKey(columnName)) + { + rowData[columnName] = rowDict[columnName]; + } + } + + + #endregion + + #region Data + + private static readonly string KEY_FOR_DATASOURCE_SESSION = "datatable_for_grid_editor_cell_updatecellvalue_noedit"; + + // 模拟在服务器端保存数据 + // 特别注意:在真实的开发环境中,不要在Session放置大量数据,否则会严重影响服务器性能 + private DataTable GetSourceData() + { + if (Session[KEY_FOR_DATASOURCE_SESSION] == null) + { + Session[KEY_FOR_DATASOURCE_SESSION] = DataSourceUtil.GetDataTable(); + } + return (DataTable)Session[KEY_FOR_DATASOURCE_SESSION]; + } + + // 根据行ID来获取行数据 + private DataRow FindRowByID(int rowID) + { + DataTable table = GetSourceData(); + foreach (DataRow row in table.Rows) + { + if (Convert.ToInt32(row["Id"]) == rowID) + { + return row; + } + } + return null; + } + + // 根据行ID来删除行数据 + private void DeleteRowByID(int rowID) + { + DataTable table = GetSourceData(); + + DataRow found = FindRowByID(rowID); + if (found != null) + { + table.Rows.Remove(found); + } + } + + // 模拟数据库的自增长列 + private int GetNextRowID() + { + int maxID = 0; + DataTable table = GetSourceData(); + foreach (DataRow row in table.Rows) + { + int currentRowID = Convert.ToInt32(row["Id"]); + if (currentRowID > maxID) + { + maxID = currentRowID; + } + } + return maxID + 1; + } + + #endregion + } +} diff --git a/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx.designer.cs b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx.designer.cs new file mode 100644 index 0000000..6f04a54 --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx.designer.cs @@ -0,0 +1,141 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_editor_cell_updatecellvalue_noedit { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Toolbar Toolbar1; + + /// + /// btnNew 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnNew; + + /// + /// btnDelete 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnDelete; + + /// + /// btnReset 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnReset; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label1; + + /// + /// tbxEditorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxEditorName; + + /// + /// tbxEditorMajor 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxEditorMajor; + + /// + /// TextBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox TextBox1; + + /// + /// NumberBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox NumberBox1; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + + /// + /// labResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labResult; + } +} diff --git a/FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx b/FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx new file mode 100644 index 0000000..1aed1d9 --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx @@ -0,0 +1,204 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_editor_cell_updatesummary.aspx.cs" + Inherits="FineUI.Examples.grid.grid_editor_cell_updatesummary" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 注:编辑[语文成绩]或者[数学成绩]时会更新合计行数据。 + + + + diff --git a/FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx.cs b/FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx.cs new file mode 100644 index 0000000..1eba2d2 --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx.cs @@ -0,0 +1,225 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +using Newtonsoft.Json.Linq; + +namespace FineUI.Examples.grid +{ + public partial class grid_editor_cell_updatesummary : PageBase + { + private bool AppendToEnd = true; + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + // 绑定表格 + BindGrid(); + } + } + + #region OutputSummaryData + + private void OutputSummaryData() + { + DataTable source = GetSourceData(); + + int chineseTotal = 0; + int mathTotal = 0; + foreach (DataRow row in source.Rows) + { + chineseTotal += Convert.ToInt32(row["ChineseScore"]); + mathTotal += Convert.ToInt32(row["MathScore"]); + } + + + JObject summary = new JObject(); + summary.Add("ChineseScore", chineseTotal); + summary.Add("MathScore", mathTotal); + + + Grid1.SummaryData = summary; + + } + + #endregion + + #region BindGrid + + private void BindGrid() + { + DataTable table = GetSourceData(); + + Grid1.DataSource = table; + Grid1.DataBind(); + + OutputSummaryData(); + } + + + + #endregion + + #region Events + + private DataRow CreateNewData(DataTable table, Dictionary newAddedData) + { + DataRow rowData = table.NewRow(); + + // 设置行ID(模拟数据库的自增长列) + rowData["Id"] = GetNextRowID(); + UpdateDataRow(newAddedData, rowData); + + return rowData; + } + + protected void Button2_Click(object sender, EventArgs e) + { + // 修改的现有数据 + Dictionary> modifiedDict = Grid1.GetModifiedDict(); + foreach (int rowIndex in modifiedDict.Keys) + { + int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]); + DataRow row = FindRowByID(rowID); + + UpdateDataRow(modifiedDict[rowIndex], row); + } + + + // 删除现有数据 + List deletedRows = Grid1.GetDeletedList(); + foreach (int rowIndex in deletedRows) + { + int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]); + DeleteRowByID(rowID); + } + + + // 新增数据 + List> newAddedList = Grid1.GetNewAddedList(); + DataTable table = GetSourceData(); + if (AppendToEnd) + { + for (int i = 0; i < newAddedList.Count; i++) + { + DataRow rowData = CreateNewData(table, newAddedList[i]); + table.Rows.Add(rowData); + } + } + else + { + for (int i = newAddedList.Count - 1; i >= 0; i--) + { + DataRow rowData = CreateNewData(table, newAddedList[i]); + table.Rows.InsertAt(rowData, 0); + } + } + + + labResult.Text = String.Format("用户修改的数据:{0}", Grid1.GetModifiedData().ToString(Newtonsoft.Json.Formatting.Indented)); + + BindGrid(); + + ShowNotify("数据保存成功!(表格数据已重新绑定)"); + } + + private void UpdateDataRow(Dictionary rowDict, DataRow rowData) + { + // 姓名 + UpdateDataRow("Name", rowDict, rowData); + + // 性别 + UpdateDataRow("Gender", rowDict, rowData); + + // 所学专业 + UpdateDataRow("Major", rowDict, rowData); + + // 语文成绩 + UpdateDataRow("ChineseScore", rowDict, rowData); + + // 数学成绩 + UpdateDataRow("MathScore", rowDict, rowData); + + // 总成绩 + UpdateDataRow("TotalScore", rowDict, rowData); + + } + + private void UpdateDataRow(string columnName, Dictionary rowDict, DataRow rowData) + { + if (rowDict.ContainsKey(columnName)) + { + rowData[columnName] = rowDict[columnName]; + } + } + + + #endregion + + #region Data + + private static readonly string KEY_FOR_DATASOURCE_SESSION = "datatable_for_grid_editor_cell_updatesummary"; + + // 模拟在服务器端保存数据 + // 特别注意:在真实的开发环境中,不要在Session放置大量数据,否则会严重影响服务器性能 + private DataTable GetSourceData() + { + if (Session[KEY_FOR_DATASOURCE_SESSION] == null) + { + Session[KEY_FOR_DATASOURCE_SESSION] = DataSourceUtil.GetDataTable(); + } + return (DataTable)Session[KEY_FOR_DATASOURCE_SESSION]; + } + + // 根据行ID来获取行数据 + private DataRow FindRowByID(int rowID) + { + DataTable table = GetSourceData(); + foreach (DataRow row in table.Rows) + { + if (Convert.ToInt32(row["Id"]) == rowID) + { + return row; + } + } + return null; + } + + // 根据行ID来删除行数据 + private void DeleteRowByID(int rowID) + { + DataTable table = GetSourceData(); + + DataRow found = FindRowByID(rowID); + if (found != null) + { + table.Rows.Remove(found); + } + } + + // 模拟数据库的自增长列 + private int GetNextRowID() + { + int maxID = 0; + DataTable table = GetSourceData(); + foreach (DataRow row in table.Rows) + { + int currentRowID = Convert.ToInt32(row["Id"]); + if (currentRowID > maxID) + { + maxID = currentRowID; + } + } + return maxID + 1; + } + + #endregion + + } +} diff --git a/FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx.designer.cs b/FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx.designer.cs new file mode 100644 index 0000000..bbb54c9 --- /dev/null +++ b/FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx.designer.cs @@ -0,0 +1,141 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_editor_cell_updatesummary { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Toolbar Toolbar1; + + /// + /// btnNew 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnNew; + + /// + /// btnDelete 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnDelete; + + /// + /// btnReset 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnReset; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label1; + + /// + /// tbxEditorName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxEditorName; + + /// + /// tbxEditorMajor 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox tbxEditorMajor; + + /// + /// TextBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox TextBox1; + + /// + /// NumberBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.NumberBox NumberBox1; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + + /// + /// labResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labResult; + } +} diff --git a/FineUI.Examples/grid/grid_empty_text.aspx b/FineUI.Examples/grid/grid_empty_text.aspx index 64cff68..1755a52 100644 --- a/FineUI.Examples/grid/grid_empty_text.aspx +++ b/FineUI.Examples/grid/grid_empty_text.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_empty_text.aspx.cs b/FineUI.Examples/grid/grid_empty_text.aspx.cs index 0634be2..95bd877 100644 --- a/FineUI.Examples/grid/grid_empty_text.aspx.cs +++ b/FineUI.Examples/grid/grid_empty_text.aspx.cs @@ -31,7 +31,7 @@ namespace FineUI.Examples.grid if (Convert.ToBoolean(ViewState["EMPTY_DATA_SOURCE"])) { ViewState["EMPTY_DATA_SOURCE"] = false; - table = GetDataTable(); + table = DataSourceUtil.GetDataTable(); } else { diff --git a/FineUI.Examples/grid/grid_excel.aspx b/FineUI.Examples/grid/grid_excel.aspx index 31f4d8c..a9b9f8e 100644 --- a/FineUI.Examples/grid/grid_excel.aspx +++ b/FineUI.Examples/grid/grid_excel.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/grid/grid_excel.aspx.cs b/FineUI.Examples/grid/grid_excel.aspx.cs index cb4d7a6..925af39 100644 --- a/FineUI.Examples/grid/grid_excel.aspx.cs +++ b/FineUI.Examples/grid/grid_excel.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.data #region BindGrid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); diff --git a/FineUI.Examples/grid/grid_excel_aspnet.aspx b/FineUI.Examples/grid/grid_excel_aspnet.aspx index 9cbcb06..5f6abe8 100644 --- a/FineUI.Examples/grid/grid_excel_aspnet.aspx +++ b/FineUI.Examples/grid/grid_excel_aspnet.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_excel_aspnet.aspx.cs b/FineUI.Examples/grid/grid_excel_aspnet.aspx.cs index b6f0162..156a2d2 100644 --- a/FineUI.Examples/grid/grid_excel_aspnet.aspx.cs +++ b/FineUI.Examples/grid/grid_excel_aspnet.aspx.cs @@ -7,6 +7,7 @@ using System.Data; using System.Text; using System.IO; using AspNet = System.Web.UI.WebControls; +using System.Web.UI.HtmlControls; namespace FineUI.Examples.data { @@ -24,7 +25,7 @@ namespace FineUI.Examples.data private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); GridView1.DataSource = table; GridView1.DataBind(); @@ -36,11 +37,12 @@ namespace FineUI.Examples.data public override void VerifyRenderingInServerForm(Control control) { - } protected void Button2_Click(object sender, EventArgs e) { + BindGrid(); + ResolveGridView(GridView1); Response.ClearContent(); @@ -51,7 +53,7 @@ namespace FineUI.Examples.data StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); GridView1.RenderControl(htw); - + Response.Write(sw.ToString()); Response.End(); } diff --git a/FineUI.Examples/grid/grid_excel_dblclick_download.aspx b/FineUI.Examples/grid/grid_excel_dblclick_download.aspx new file mode 100644 index 0000000..156146a --- /dev/null +++ b/FineUI.Examples/grid/grid_excel_dblclick_download.aspx @@ -0,0 +1,55 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_excel_dblclick_download.aspx.cs" + Inherits="FineUI.Examples.grid.grid_excel_dblclick_download" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FineUI.Examples/grid/grid_excel_dblclick_download.aspx.cs b/FineUI.Examples/grid/grid_excel_dblclick_download.aspx.cs new file mode 100644 index 0000000..23aa7ab --- /dev/null +++ b/FineUI.Examples/grid/grid_excel_dblclick_download.aspx.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.grid +{ + public partial class grid_excel_dblclick_download : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + LoadData(); + } + else + { + var eventArgs = GetRequestEventArgument(); + if (eventArgs.StartsWith("GridRowDblclick$")) + { + string rowId = eventArgs.Substring("GridRowDblclick$".Length); + + GridRow row = Grid1.FindRow(rowId); + + object[] keys = Grid1.DataKeys[row.RowIndex]; + string result = String.Format("你点击了第 {0} 行", row.RowIndex + 1) + + "" + + String.Format("当前行数据 - 编号:{0},姓名:{1}", keys[0], keys[1]); + + + result = result.Replace("", "\r\n"); + + // 非AJAX回发 + Response.ClearContent(); + Response.AddHeader("content-disposition", "attachment; filename=row_" + row.RowIndex + ".txt"); + Response.ContentType = "text/plain"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.Write(result); + Response.End(); + } + } + } + + #region LoadData + + private void LoadData() + { + BindGrid(); + } + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable(); + + Grid1.DataSource = table; + Grid1.DataBind(); + + } + + #endregion + + #region Events + + protected void Button1_Click(object sender, EventArgs e) + { + labResult.Text = HowManyRowsAreSelected(Grid1); + } + + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) + { + object[] keys = Grid1.DataKeys[e.RowIndex]; + string result = String.Format("你点击了第 {0} 行,第 {1} 列,行命令是 {2}", e.RowIndex + 1, e.ColumnIndex + 1, e.CommandName) + + "" + + String.Format("当前行数据 - 编号:{0},姓名:{1}", keys[0], keys[1]); + + if (e.CommandName == "Action1") + { + // AJAX回发 + labResult.Text = result; + } + } + + #endregion + + } +} diff --git a/FineUI.Examples/grid/grid_excel_dblclick_download.aspx.designer.cs b/FineUI.Examples/grid/grid_excel_dblclick_download.aspx.designer.cs new file mode 100644 index 0000000..213888b --- /dev/null +++ b/FineUI.Examples/grid/grid_excel_dblclick_download.aspx.designer.cs @@ -0,0 +1,69 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_excel_dblclick_download { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label2; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button1; + + /// + /// labResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labResult; + } +} diff --git a/FineUI.Examples/grid/grid_excel_dynamic_columns.aspx b/FineUI.Examples/grid/grid_excel_dynamic_columns.aspx index 98456fe..75b9e83 100644 --- a/FineUI.Examples/grid/grid_excel_dynamic_columns.aspx +++ b/FineUI.Examples/grid/grid_excel_dynamic_columns.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_excel_dynamic_columns.aspx.cs b/FineUI.Examples/grid/grid_excel_dynamic_columns.aspx.cs index 1fdcf5c..7a1d148 100644 --- a/FineUI.Examples/grid/grid_excel_dynamic_columns.aspx.cs +++ b/FineUI.Examples/grid/grid_excel_dynamic_columns.aspx.cs @@ -80,7 +80,7 @@ namespace FineUI.Examples.data private void LoadData() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); diff --git a/FineUI.Examples/grid/grid_excel_findcontrol.aspx b/FineUI.Examples/grid/grid_excel_findcontrol.aspx index 4260323..0a6d5dd 100644 --- a/FineUI.Examples/grid/grid_excel_findcontrol.aspx +++ b/FineUI.Examples/grid/grid_excel_findcontrol.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_excel_findcontrol.aspx.cs b/FineUI.Examples/grid/grid_excel_findcontrol.aspx.cs index c02e997..7edafa4 100644 --- a/FineUI.Examples/grid/grid_excel_findcontrol.aspx.cs +++ b/FineUI.Examples/grid/grid_excel_findcontrol.aspx.cs @@ -25,7 +25,7 @@ namespace FineUI.Examples.data { ViewState["UseDataSource1"] = true; - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -41,12 +41,12 @@ namespace FineUI.Examples.data if (Convert.ToBoolean(ViewState["UseDataSource1"])) { ViewState["UseDataSource1"] = false; - table = GetDataTable2(); + table = DataSourceUtil.GetDataTable2(); } else { ViewState["UseDataSource1"] = true; - table = GetDataTable(); + table = DataSourceUtil.GetDataTable(); } Grid1.DataSource = table; diff --git a/FineUI.Examples/grid/grid_excel_groupfield.aspx b/FineUI.Examples/grid/grid_excel_groupfield.aspx index 5e75144..2897934 100644 --- a/FineUI.Examples/grid/grid_excel_groupfield.aspx +++ b/FineUI.Examples/grid/grid_excel_groupfield.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_excel_groupfield.aspx.cs b/FineUI.Examples/grid/grid_excel_groupfield.aspx.cs index 9660d98..5ac5654 100644 --- a/FineUI.Examples/grid/grid_excel_groupfield.aspx.cs +++ b/FineUI.Examples/grid/grid_excel_groupfield.aspx.cs @@ -25,7 +25,7 @@ namespace FineUI.Examples.data { ViewState["UseDataSource1"] = true; - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -41,12 +41,12 @@ namespace FineUI.Examples.data if (Convert.ToBoolean(ViewState["UseDataSource1"])) { ViewState["UseDataSource1"] = false; - table = GetDataTable2(); + table = DataSourceUtil.GetDataTable2(); } else { ViewState["UseDataSource1"] = true; - table = GetDataTable(); + table = DataSourceUtil.GetDataTable(); } Grid1.DataSource = table; diff --git a/FineUI.Examples/grid/grid_excel_selectcolumns.aspx b/FineUI.Examples/grid/grid_excel_selectcolumns.aspx index 3cbbe5e..6fefb8d 100644 --- a/FineUI.Examples/grid/grid_excel_selectcolumns.aspx +++ b/FineUI.Examples/grid/grid_excel_selectcolumns.aspx @@ -4,7 +4,7 @@ - + @@ -46,22 +46,6 @@ - - <%-- - - - --%> diff --git a/FineUI.Examples/grid/grid_excel_selectcolumns.aspx.cs b/FineUI.Examples/grid/grid_excel_selectcolumns.aspx.cs index e06589c..2bd63db 100644 --- a/FineUI.Examples/grid/grid_excel_selectcolumns.aspx.cs +++ b/FineUI.Examples/grid/grid_excel_selectcolumns.aspx.cs @@ -25,7 +25,7 @@ namespace FineUI.Examples.data #region BindGrid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -35,7 +35,7 @@ namespace FineUI.Examples.data #region Events - protected void Window1_Close(object sender, FineUI.WindowCloseEventArgs e) + protected void Window1_Close(object sender, WindowCloseEventArgs e) { Response.ClearContent(); Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls"); diff --git a/FineUI.Examples/grid/grid_excel_selectcolumns_iframe_window.aspx b/FineUI.Examples/grid/grid_excel_selectcolumns_iframe_window.aspx index f8bc5cb..a69bf26 100644 --- a/FineUI.Examples/grid/grid_excel_selectcolumns_iframe_window.aspx +++ b/FineUI.Examples/grid/grid_excel_selectcolumns_iframe_window.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/grid/grid_groupheader.aspx b/FineUI.Examples/grid/grid_groupheader.aspx index bb4dd28..4d87877 100644 --- a/FineUI.Examples/grid/grid_groupheader.aspx +++ b/FineUI.Examples/grid/grid_groupheader.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_groupheader.aspx.cs b/FineUI.Examples/grid/grid_groupheader.aspx.cs index 1b995e2..f38aed2 100644 --- a/FineUI.Examples/grid/grid_groupheader.aspx.cs +++ b/FineUI.Examples/grid/grid_groupheader.aspx.cs @@ -28,7 +28,7 @@ namespace FineUI.Examples.grid Grid1.DataBind(); } - protected new DataTable GetDataTable() + protected DataTable GetDataTable() { DataTable table = new DataTable(); table.Columns.Add(new DataColumn("Guid", typeof(Guid))); diff --git a/FineUI.Examples/grid/grid_groupheader_hidden.aspx b/FineUI.Examples/grid/grid_groupheader_hidden.aspx index 8438fb0..4dba6ac 100644 --- a/FineUI.Examples/grid/grid_groupheader_hidden.aspx +++ b/FineUI.Examples/grid/grid_groupheader_hidden.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_groupheader_hidden.aspx.cs b/FineUI.Examples/grid/grid_groupheader_hidden.aspx.cs index 1f7a0a0..0455afc 100644 --- a/FineUI.Examples/grid/grid_groupheader_hidden.aspx.cs +++ b/FineUI.Examples/grid/grid_groupheader_hidden.aspx.cs @@ -36,7 +36,7 @@ namespace FineUI.Examples.grid } - protected new DataTable GetDataTable() + protected DataTable GetDataTable() { DataTable table = new DataTable(); table.Columns.Add(new DataColumn("Guid", typeof(Guid))); @@ -79,7 +79,7 @@ namespace FineUI.Examples.grid #region Events - protected void Grid1_Sort(object sender, FineUI.GridSortEventArgs e) + protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; diff --git a/FineUI.Examples/grid/grid_groupheader_sort.aspx b/FineUI.Examples/grid/grid_groupheader_sort.aspx index 3febf87..ef52263 100644 --- a/FineUI.Examples/grid/grid_groupheader_sort.aspx +++ b/FineUI.Examples/grid/grid_groupheader_sort.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_groupheader_sort.aspx.cs b/FineUI.Examples/grid/grid_groupheader_sort.aspx.cs index 1d3fa22..9db8f8d 100644 --- a/FineUI.Examples/grid/grid_groupheader_sort.aspx.cs +++ b/FineUI.Examples/grid/grid_groupheader_sort.aspx.cs @@ -36,7 +36,7 @@ namespace FineUI.Examples.grid } - protected new DataTable GetDataTable() + protected DataTable GetDataTable() { DataTable table = new DataTable(); table.Columns.Add(new DataColumn("Guid", typeof(Guid))); @@ -79,7 +79,7 @@ namespace FineUI.Examples.grid #region Events - protected void Grid1_Sort(object sender, FineUI.GridSortEventArgs e) + protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; diff --git a/FineUI.Examples/grid/grid_groupheader_sort_hdmenu.aspx b/FineUI.Examples/grid/grid_groupheader_sort_hdmenu.aspx index 491d6cf..a29f9a3 100644 --- a/FineUI.Examples/grid/grid_groupheader_sort_hdmenu.aspx +++ b/FineUI.Examples/grid/grid_groupheader_sort_hdmenu.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_groupheader_sort_hdmenu.aspx.cs b/FineUI.Examples/grid/grid_groupheader_sort_hdmenu.aspx.cs index c7e3633..f81ae4c 100644 --- a/FineUI.Examples/grid/grid_groupheader_sort_hdmenu.aspx.cs +++ b/FineUI.Examples/grid/grid_groupheader_sort_hdmenu.aspx.cs @@ -36,7 +36,7 @@ namespace FineUI.Examples.grid } - protected new DataTable GetDataTable() + protected DataTable GetDataTable() { DataTable table = new DataTable(); table.Columns.Add(new DataColumn("Guid", typeof(Guid))); @@ -79,7 +79,7 @@ namespace FineUI.Examples.grid #region Events - protected void Grid1_Sort(object sender, FineUI.GridSortEventArgs e) + protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; diff --git a/FineUI.Examples/grid/grid_hdmenu_hidecolumn.aspx b/FineUI.Examples/grid/grid_hdmenu_hidecolumn.aspx index 8bc7b07..fe5f8b8 100644 --- a/FineUI.Examples/grid/grid_hdmenu_hidecolumn.aspx +++ b/FineUI.Examples/grid/grid_hdmenu_hidecolumn.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_hdmenu_hidecolumn.aspx.cs b/FineUI.Examples/grid/grid_hdmenu_hidecolumn.aspx.cs index edcb16b..bd98ea4 100644 --- a/FineUI.Examples/grid/grid_hdmenu_hidecolumn.aspx.cs +++ b/FineUI.Examples/grid/grid_hdmenu_hidecolumn.aspx.cs @@ -22,7 +22,7 @@ namespace FineUI.Examples.grid #region BindGrid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); diff --git a/FineUI.Examples/grid/grid_hdmenu_sorting.aspx b/FineUI.Examples/grid/grid_hdmenu_sorting.aspx index a2118ec..8d31743 100644 --- a/FineUI.Examples/grid/grid_hdmenu_sorting.aspx +++ b/FineUI.Examples/grid/grid_hdmenu_sorting.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_hdmenu_sorting.aspx.cs b/FineUI.Examples/grid/grid_hdmenu_sorting.aspx.cs index 31074ed..69dd00e 100644 --- a/FineUI.Examples/grid/grid_hdmenu_sorting.aspx.cs +++ b/FineUI.Examples/grid/grid_hdmenu_sorting.aspx.cs @@ -26,7 +26,7 @@ namespace FineUI.Examples.grid string sortField = Grid1.SortField; string sortDirection = Grid1.SortDirection; - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); DataView view1 = table.DefaultView; view1.Sort = String.Format("{0} {1}", sortField, sortDirection); @@ -46,7 +46,7 @@ namespace FineUI.Examples.grid - protected void Grid1_Sort(object sender, FineUI.GridSortEventArgs e) + protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; diff --git a/FineUI.Examples/grid/grid_header_disablemenu.aspx b/FineUI.Examples/grid/grid_header_disablemenu.aspx new file mode 100644 index 0000000..9c74fec --- /dev/null +++ b/FineUI.Examples/grid/grid_header_disablemenu.aspx @@ -0,0 +1,39 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_header_disablemenu.aspx.cs" + Inherits="FineUI.Examples.grid.grid_header_disablemenu" %> + + + + + + + + + + + + + + + + + + <%-- Container.DataItem 的类型是 System.Data.DataRowView 或者用户自定义类型 --%> + <%----%> + + + + + + + + + + + 注:这个表格禁用表头菜单,禁用列宽度调整,禁用列移动。 + + + diff --git a/FineUI.Examples/grid/grid_header_disablemenu.aspx.cs b/FineUI.Examples/grid/grid_header_disablemenu.aspx.cs new file mode 100644 index 0000000..2191189 --- /dev/null +++ b/FineUI.Examples/grid/grid_header_disablemenu.aspx.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +namespace FineUI.Examples.grid +{ + public partial class grid_header_disablemenu : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + } + + #region BindGrid + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable(); + + Grid1.DataSource = table; + Grid1.DataBind(); + + } + + + + #endregion + + + + } +} diff --git a/FineUI.Examples/grid/grid_header_disablemenu.aspx.designer.cs b/FineUI.Examples/grid/grid_header_disablemenu.aspx.designer.cs new file mode 100644 index 0000000..0566869 --- /dev/null +++ b/FineUI.Examples/grid/grid_header_disablemenu.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_header_disablemenu { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label3; + } +} diff --git a/FineUI.Examples/grid/grid_header_hide.aspx b/FineUI.Examples/grid/grid_header_hide.aspx new file mode 100644 index 0000000..e8849c2 --- /dev/null +++ b/FineUI.Examples/grid/grid_header_hide.aspx @@ -0,0 +1,31 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_header_hide.aspx.cs" + Inherits="FineUI.Examples.grid.grid_header_hide" %> + + + + + + + + + + + + + + + + + + 注:本表格隐藏了表头、行分隔线、间隔行背景色。 + + + + + + + + + + diff --git a/FineUI.Examples/grid/grid_header_hide.aspx.cs b/FineUI.Examples/grid/grid_header_hide.aspx.cs new file mode 100644 index 0000000..7ab5595 --- /dev/null +++ b/FineUI.Examples/grid/grid_header_hide.aspx.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +namespace FineUI.Examples.grid +{ + public partial class grid_header_hide : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + } + + #region BindGrid + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable(); + + Grid1.DataSource = table; + Grid1.DataBind(); + + } + + + + #endregion + + #region Events + + protected void Button1_Click(object sender, EventArgs e) + { + labResult.Text = HowManyRowsAreSelected(Grid1); + } + + #endregion + + + + } +} diff --git a/FineUI.Examples/grid/grid_header_hide.aspx.designer.cs b/FineUI.Examples/grid/grid_header_hide.aspx.designer.cs new file mode 100644 index 0000000..c9fcfaa --- /dev/null +++ b/FineUI.Examples/grid/grid_header_hide.aspx.designer.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_header_hide { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button1; + + /// + /// labResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labResult; + } +} diff --git a/FineUI.Examples/grid/grid_header_wrap.aspx b/FineUI.Examples/grid/grid_header_wrap.aspx new file mode 100644 index 0000000..8eab5ae --- /dev/null +++ b/FineUI.Examples/grid/grid_header_wrap.aspx @@ -0,0 +1,44 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_header_wrap.aspx.cs" + Inherits="FineUI.Examples.grid.grid_header_wrap" %> + + + + + + + + + + + + + + + + + + + <%-- Container.DataItem 的类型是 System.Data.DataRowView 或者用户自定义类型 --%> + <%----%> + + + + + + + + + + + + + diff --git a/FineUI.Examples/grid/grid_header_wrap.aspx.cs b/FineUI.Examples/grid/grid_header_wrap.aspx.cs new file mode 100644 index 0000000..fab0965 --- /dev/null +++ b/FineUI.Examples/grid/grid_header_wrap.aspx.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +namespace FineUI.Examples.grid +{ + public partial class grid_header_wrap : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + } + + #region BindGrid + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable(); + + Grid1.DataSource = table; + Grid1.DataBind(); + + } + + + + #endregion + + + + } +} diff --git a/FineUI.Examples/grid/grid_header_wrap.aspx.designer.cs b/FineUI.Examples/grid/grid_header_wrap.aspx.designer.cs new file mode 100644 index 0000000..896ee2b --- /dev/null +++ b/FineUI.Examples/grid/grid_header_wrap.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_header_wrap { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label3; + } +} diff --git a/FineUI.Examples/grid/grid_hide_gridheader.aspx b/FineUI.Examples/grid/grid_hide_gridheader.aspx index b00a314..412bc28 100644 --- a/FineUI.Examples/grid/grid_hide_gridheader.aspx +++ b/FineUI.Examples/grid/grid_hide_gridheader.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_hide_gridheader.aspx.cs b/FineUI.Examples/grid/grid_hide_gridheader.aspx.cs index 19724e6..2b08754 100644 --- a/FineUI.Examples/grid/grid_hide_gridheader.aspx.cs +++ b/FineUI.Examples/grid/grid_hide_gridheader.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); diff --git a/FineUI.Examples/grid/grid_hidecolumn.aspx b/FineUI.Examples/grid/grid_hidecolumn.aspx index 2be507c..6f17f86 100644 --- a/FineUI.Examples/grid/grid_hidecolumn.aspx +++ b/FineUI.Examples/grid/grid_hidecolumn.aspx @@ -4,39 +4,48 @@ + - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + 注:性别列设置了EnableColumnHide=false,所以不能通过标题栏菜单隐藏,但仍然可以通过后台代码隐藏。 + + + + + + + + diff --git a/FineUI.Examples/grid/grid_hidecolumn.aspx.cs b/FineUI.Examples/grid/grid_hidecolumn.aspx.cs index 420a6cc..22ae77e 100644 --- a/FineUI.Examples/grid/grid_hidecolumn.aspx.cs +++ b/FineUI.Examples/grid/grid_hidecolumn.aspx.cs @@ -22,7 +22,7 @@ namespace FineUI.Examples.grid #region BindGrid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -31,7 +31,6 @@ namespace FineUI.Examples.grid #endregion - #region Event @@ -39,12 +38,23 @@ namespace FineUI.Examples.grid { GridColumn genderColumn = Grid1.FindColumn("gender"); genderColumn.Hidden = !genderColumn.Hidden; - - //GridColumn lastColumn1 = Grid1.Columns[Grid1.Columns.Count - 1]; - //GridColumn lastColumn2 = Grid1.Columns[Grid1.Columns.Count - 2]; - } + protected void Button4_Click(object sender, EventArgs e) + { + StringBuilder sb = new StringBuilder(); + sb.Append(""); + foreach (GridColumn column in Grid1.Columns) + { + if (column.Hidden) + { + sb.AppendFormat("{0}. {1}", column.ColumnIndex, column.HeaderText); + } + } + sb.Append(""); + + labHiddenColumns.Text = "隐藏列列表:" + sb.ToString(); + } #endregion diff --git a/FineUI.Examples/grid/grid_hidecolumn.aspx.designer.cs b/FineUI.Examples/grid/grid_hidecolumn.aspx.designer.cs index d344c7a..5bf9f19 100644 --- a/FineUI.Examples/grid/grid_hidecolumn.aspx.designer.cs +++ b/FineUI.Examples/grid/grid_hidecolumn.aspx.designer.cs @@ -56,5 +56,23 @@ namespace FineUI.Examples.grid { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUI.Button Button3; + + /// + /// Button4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button4; + + /// + /// labHiddenColumns 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labHiddenColumns; } } diff --git a/FineUI.Examples/grid/grid_iframe.aspx b/FineUI.Examples/grid/grid_iframe.aspx index eefaaaf..52164ee 100644 --- a/FineUI.Examples/grid/grid_iframe.aspx +++ b/FineUI.Examples/grid/grid_iframe.aspx @@ -5,7 +5,7 @@ - + @@ -52,7 +52,7 @@ + IsModal="False" Width="850px" Height="450px"> diff --git a/FineUI.Examples/grid/grid_iframe.aspx.cs b/FineUI.Examples/grid/grid_iframe.aspx.cs index 45b2474..06e3c53 100644 --- a/FineUI.Examples/grid/grid_iframe.aspx.cs +++ b/FineUI.Examples/grid/grid_iframe.aspx.cs @@ -29,7 +29,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); diff --git a/FineUI.Examples/grid/grid_iframe_window.aspx b/FineUI.Examples/grid/grid_iframe_window.aspx index 57e0c51..a4da73c 100644 --- a/FineUI.Examples/grid/grid_iframe_window.aspx +++ b/FineUI.Examples/grid/grid_iframe_window.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/grid/grid_line_wrap.aspx b/FineUI.Examples/grid/grid_line_wrap.aspx index dbfeb0e..722a782 100644 --- a/FineUI.Examples/grid/grid_line_wrap.aspx +++ b/FineUI.Examples/grid/grid_line_wrap.aspx @@ -5,7 +5,7 @@ - + + + + + + + + + + + + + <%-- Container.DataItem 的类型是 System.Data.DataRowView 或者用户自定义类型 --%> + <%----%> + + + + + + + + + + + + + <%# GetHobby(Eval("Hobby")) %> + + + + + + + + + + + + + + + + + + + 注:缩小页面高度,观察显示隐藏列菜单的行为。 + + + diff --git a/FineUI.Examples/grid/grid_many_columns.aspx.cs b/FineUI.Examples/grid/grid_many_columns.aspx.cs new file mode 100644 index 0000000..f0df344 --- /dev/null +++ b/FineUI.Examples/grid/grid_many_columns.aspx.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +namespace FineUI.Examples.grid +{ + public partial class grid_many_columns : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + } + + #region BindGrid + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable(); + + + Grid1.DataSource = table; + Grid1.DataBind(); + + } + + protected string GetHobby(object hobbyObj) + { + List hobbyList = new List(); + // Hobby:reading,basketball,travel,movie,music + // 爱好:读书, 篮球, 旅游, 电影, 音乐 + string[] hobbies = hobbyObj.ToString().ToLower().Split(','); + + foreach (string hobby in hobbies) + { + if (hobby == "reading") + { + hobbyList.Add("读书"); + } + else if (hobby == "basketball") + { + hobbyList.Add("篮球"); + } + else if (hobby == "travel") + { + hobbyList.Add("旅游"); + } + else if (hobby == "movie") + { + hobbyList.Add("电影"); + } + else if (hobby == "music") + { + hobbyList.Add("音乐"); + } + } + + return String.Join(",", hobbyList.ToArray()); + } + + #endregion + + + + } +} diff --git a/FineUI.Examples/grid/grid_many_columns.aspx.designer.cs b/FineUI.Examples/grid/grid_many_columns.aspx.designer.cs new file mode 100644 index 0000000..07a0e0a --- /dev/null +++ b/FineUI.Examples/grid/grid_many_columns.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_many_columns { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label3; + } +} diff --git a/FineUI.Examples/grid/grid_pageitems.aspx b/FineUI.Examples/grid/grid_pageitems.aspx index 10c992f..8ec9915 100644 --- a/FineUI.Examples/grid/grid_pageitems.aspx +++ b/FineUI.Examples/grid/grid_pageitems.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_pageitems.aspx.cs b/FineUI.Examples/grid/grid_pageitems.aspx.cs index 08fb93c..e859d97 100644 --- a/FineUI.Examples/grid/grid_pageitems.aspx.cs +++ b/FineUI.Examples/grid/grid_pageitems.aspx.cs @@ -22,7 +22,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable2(); + DataTable table = DataSourceUtil.GetDataTable2(); Grid1.DataSource = table; Grid1.DataBind(); @@ -38,7 +38,7 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; } diff --git a/FineUI.Examples/grid/grid_pageitems_pagesize.aspx b/FineUI.Examples/grid/grid_pageitems_pagesize.aspx index a0b408b..1491e98 100644 --- a/FineUI.Examples/grid/grid_pageitems_pagesize.aspx +++ b/FineUI.Examples/grid/grid_pageitems_pagesize.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_pageitems_pagesize.aspx.cs b/FineUI.Examples/grid/grid_pageitems_pagesize.aspx.cs index 27a875b..90080a4 100644 --- a/FineUI.Examples/grid/grid_pageitems_pagesize.aspx.cs +++ b/FineUI.Examples/grid/grid_pageitems_pagesize.aspx.cs @@ -26,7 +26,7 @@ namespace FineUI.Examples.grid { ViewState["UseDataSource1"] = true; - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -42,12 +42,12 @@ namespace FineUI.Examples.grid if (Convert.ToBoolean(ViewState["UseDataSource1"])) { ViewState["UseDataSource1"] = false; - table = GetDataTable2(); + table = DataSourceUtil.GetDataTable2(); } else { ViewState["UseDataSource1"] = true; - table = GetDataTable(); + table = DataSourceUtil.GetDataTable(); } Grid1.DataSource = table; @@ -59,7 +59,7 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; } diff --git a/FineUI.Examples/grid/grid_pageitems_pagesize_database.aspx b/FineUI.Examples/grid/grid_pageitems_pagesize_database.aspx index be36feb..552e9f4 100644 --- a/FineUI.Examples/grid/grid_pageitems_pagesize_database.aspx +++ b/FineUI.Examples/grid/grid_pageitems_pagesize_database.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_pageitems_pagesize_database.aspx.cs b/FineUI.Examples/grid/grid_pageitems_pagesize_database.aspx.cs index 6f26fd7..82c8c62 100644 --- a/FineUI.Examples/grid/grid_pageitems_pagesize_database.aspx.cs +++ b/FineUI.Examples/grid/grid_pageitems_pagesize_database.aspx.cs @@ -41,7 +41,7 @@ namespace FineUI.Examples.grid /// private int GetTotalCount() { - return GetDataTable2().Rows.Count; + return DataSourceUtil.GetDataTable2().Rows.Count; } /// @@ -50,7 +50,7 @@ namespace FineUI.Examples.grid /// private DataTable GetPagedDataTable(int pageIndex, int pageSize) { - DataTable source = GetDataTable2(); + DataTable source = DataSourceUtil.GetDataTable2(); DataTable paged = source.Clone(); @@ -78,7 +78,7 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); diff --git a/FineUI.Examples/grid/grid_pageitems_rowexpander.aspx b/FineUI.Examples/grid/grid_pageitems_rowexpander.aspx index 03f100e..67a5ce7 100644 --- a/FineUI.Examples/grid/grid_pageitems_rowexpander.aspx +++ b/FineUI.Examples/grid/grid_pageitems_rowexpander.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_pageitems_rowexpander.aspx.cs b/FineUI.Examples/grid/grid_pageitems_rowexpander.aspx.cs index 9497fb7..1e9c0a2 100644 --- a/FineUI.Examples/grid/grid_pageitems_rowexpander.aspx.cs +++ b/FineUI.Examples/grid/grid_pageitems_rowexpander.aspx.cs @@ -22,7 +22,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable2(); + DataTable table = DataSourceUtil.GetDataTable2(); Grid1.DataSource = table; Grid1.DataBind(); @@ -38,7 +38,7 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; } diff --git a/FineUI.Examples/grid/grid_paging.aspx b/FineUI.Examples/grid/grid_paging.aspx index 152b252..c3da415 100644 --- a/FineUI.Examples/grid/grid_paging.aspx +++ b/FineUI.Examples/grid/grid_paging.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/grid/grid_paging.aspx.cs b/FineUI.Examples/grid/grid_paging.aspx.cs index 69f8840..753973a 100644 --- a/FineUI.Examples/grid/grid_paging.aspx.cs +++ b/FineUI.Examples/grid/grid_paging.aspx.cs @@ -22,7 +22,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable2(); + DataTable table = DataSourceUtil.GetDataTable2(); Grid1.DataSource = table; Grid1.DataBind(); @@ -37,11 +37,12 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; } #endregion + } } diff --git a/FineUI.Examples/grid/grid_paging_aspnet.aspx b/FineUI.Examples/grid/grid_paging_aspnet.aspx new file mode 100644 index 0000000..8e5589c --- /dev/null +++ b/FineUI.Examples/grid/grid_paging_aspnet.aspx @@ -0,0 +1,35 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_paging_aspnet.aspx.cs" Inherits="FineUI.Examples.grid.grid_paging_aspnet" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/grid/grid_paging_aspnet.aspx.cs b/FineUI.Examples/grid/grid_paging_aspnet.aspx.cs new file mode 100644 index 0000000..8135375 --- /dev/null +++ b/FineUI.Examples/grid/grid_paging_aspnet.aspx.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.grid +{ + public partial class grid_paging_aspnet : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + + Grid1.PageIndexChanging += Grid1_PageIndexChanging; + } + + #region LoadData + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable2(); + + Grid1.DataSource = table; + Grid1.DataBind(); + } + + #endregion + + #region Events + + protected void Grid1_PageIndexChanging(object sender, GridViewPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + + BindGrid(); + } + + #endregion + } +} diff --git a/FineUI.Examples/grid/grid_paging_aspnet.aspx.designer.cs b/FineUI.Examples/grid/grid_paging_aspnet.aspx.designer.cs new file mode 100644 index 0000000..9cca1f1 --- /dev/null +++ b/FineUI.Examples/grid/grid_paging_aspnet.aspx.designer.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_paging_aspnet { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.GridView Grid1; + } +} diff --git a/FineUI.Examples/grid/grid_paging_database.aspx b/FineUI.Examples/grid/grid_paging_database.aspx index 7734f21..721eb19 100644 --- a/FineUI.Examples/grid/grid_paging_database.aspx +++ b/FineUI.Examples/grid/grid_paging_database.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_paging_database.aspx.cs b/FineUI.Examples/grid/grid_paging_database.aspx.cs index de0a70e..9ccea51 100644 --- a/FineUI.Examples/grid/grid_paging_database.aspx.cs +++ b/FineUI.Examples/grid/grid_paging_database.aspx.cs @@ -39,7 +39,7 @@ namespace FineUI.Examples.grid /// private int GetTotalCount() { - return GetDataTable2().Rows.Count; + return DataSourceUtil.GetDataTable2().Rows.Count; } /// @@ -48,7 +48,7 @@ namespace FineUI.Examples.grid /// private DataTable GetPagedDataTable(int pageIndex, int pageSize) { - DataTable source = GetDataTable2(); + DataTable source = DataSourceUtil.GetDataTable2(); DataTable paged = source.Clone(); @@ -77,7 +77,7 @@ namespace FineUI.Examples.grid } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; diff --git a/FineUI.Examples/grid/grid_paging_database_bbar.aspx b/FineUI.Examples/grid/grid_paging_database_bbar.aspx index 8068455..19b543f 100644 --- a/FineUI.Examples/grid/grid_paging_database_bbar.aspx +++ b/FineUI.Examples/grid/grid_paging_database_bbar.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/grid/grid_paging_database_bbar.aspx.cs b/FineUI.Examples/grid/grid_paging_database_bbar.aspx.cs index 69bb987..d3891e3 100644 --- a/FineUI.Examples/grid/grid_paging_database_bbar.aspx.cs +++ b/FineUI.Examples/grid/grid_paging_database_bbar.aspx.cs @@ -39,7 +39,7 @@ namespace FineUI.Examples.grid /// private int GetTotalCount() { - return GetDataTable2().Rows.Count; + return DataSourceUtil.GetDataTable2().Rows.Count; } /// @@ -48,7 +48,7 @@ namespace FineUI.Examples.grid /// private DataTable GetPagedDataTable(int pageIndex, int pageSize) { - DataTable source = GetDataTable2(); + DataTable source = DataSourceUtil.GetDataTable2(); DataTable paged = source.Clone(); @@ -77,7 +77,7 @@ namespace FineUI.Examples.grid } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; diff --git a/FineUI.Examples/grid/grid_paging_database_selection.aspx b/FineUI.Examples/grid/grid_paging_database_selection.aspx index a1d6ba8..c53fbca 100644 --- a/FineUI.Examples/grid/grid_paging_database_selection.aspx +++ b/FineUI.Examples/grid/grid_paging_database_selection.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_paging_database_selection.aspx.cs b/FineUI.Examples/grid/grid_paging_database_selection.aspx.cs index be304e7..28cf9d8 100644 --- a/FineUI.Examples/grid/grid_paging_database_selection.aspx.cs +++ b/FineUI.Examples/grid/grid_paging_database_selection.aspx.cs @@ -41,7 +41,7 @@ namespace FineUI.Examples.grid /// private int GetTotalCount() { - return GetDataTable2().Rows.Count; + return DataSourceUtil.GetDataTable2().Rows.Count; } /// @@ -50,7 +50,7 @@ namespace FineUI.Examples.grid /// private DataTable GetPagedDataTable(int pageIndex, int pageSize) { - DataTable source = GetDataTable2(); + DataTable source = DataSourceUtil.GetDataTable2(); DataTable paged = source.Clone(); @@ -82,7 +82,7 @@ namespace FineUI.Examples.grid } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { SyncSelectedRowIndexArrayToHiddenField(); diff --git a/FineUI.Examples/grid/grid_paging_database_sorting.aspx b/FineUI.Examples/grid/grid_paging_database_sorting.aspx index 70b2a29..74e873f 100644 --- a/FineUI.Examples/grid/grid_paging_database_sorting.aspx +++ b/FineUI.Examples/grid/grid_paging_database_sorting.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_paging_database_sorting.aspx.cs b/FineUI.Examples/grid/grid_paging_database_sorting.aspx.cs index 66b1500..1397988 100644 --- a/FineUI.Examples/grid/grid_paging_database_sorting.aspx.cs +++ b/FineUI.Examples/grid/grid_paging_database_sorting.aspx.cs @@ -39,7 +39,7 @@ namespace FineUI.Examples.grid /// private int GetTotalCount() { - return GetDataTable2().Rows.Count; + return DataSourceUtil.GetDataTable2().Rows.Count; } /// @@ -54,7 +54,7 @@ namespace FineUI.Examples.grid string sortField = Grid1.SortField; string sortDirection = Grid1.SortDirection; - DataTable table2 = GetDataTable2(); + DataTable table2 = DataSourceUtil.GetDataTable2(); DataView view2 = table2.DefaultView; view2.Sort = String.Format("{0} {1}", sortField, sortDirection); @@ -88,14 +88,14 @@ namespace FineUI.Examples.grid } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } - protected void Grid1_Sort(object sender, FineUI.GridSortEventArgs e) + protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; diff --git a/FineUI.Examples/grid/grid_paging_fineui.aspx b/FineUI.Examples/grid/grid_paging_fineui.aspx new file mode 100644 index 0000000..61d3a68 --- /dev/null +++ b/FineUI.Examples/grid/grid_paging_fineui.aspx @@ -0,0 +1,38 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_paging_fineui.aspx.cs" Inherits="FineUI.Examples.grid.grid_paging_fineui" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 出于性能考虑,请在实际项目中使用数据库分页(不要使用内存分页)! + + + diff --git a/FineUI.Examples/grid/grid_paging_fineui.aspx.cs b/FineUI.Examples/grid/grid_paging_fineui.aspx.cs new file mode 100644 index 0000000..981d826 --- /dev/null +++ b/FineUI.Examples/grid/grid_paging_fineui.aspx.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.grid +{ + public partial class grid_paging_fineui : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + + Grid1.PageIndexChange += Grid1_PageIndexChange; + } + + #region LoadData + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable2(); + + Grid1.DataSource = table; + Grid1.DataBind(); + } + + #endregion + + #region Events + + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + } + + #endregion + } +} diff --git a/FineUI.Examples/grid/grid_paging_fineui.aspx.designer.cs b/FineUI.Examples/grid/grid_paging_fineui.aspx.designer.cs new file mode 100644 index 0000000..630b5a3 --- /dev/null +++ b/FineUI.Examples/grid/grid_paging_fineui.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_paging_fineui { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label2; + } +} diff --git a/FineUI.Examples/grid/grid_paging_selection.aspx b/FineUI.Examples/grid/grid_paging_selection.aspx index 4e8982b..e0e878d 100644 --- a/FineUI.Examples/grid/grid_paging_selection.aspx +++ b/FineUI.Examples/grid/grid_paging_selection.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_paging_selection.aspx.cs b/FineUI.Examples/grid/grid_paging_selection.aspx.cs index c9ea6fe..ca9b240 100644 --- a/FineUI.Examples/grid/grid_paging_selection.aspx.cs +++ b/FineUI.Examples/grid/grid_paging_selection.aspx.cs @@ -24,7 +24,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable2(); + DataTable table = DataSourceUtil.GetDataTable2(); Grid1.DataSource = table; Grid1.DataBind(); @@ -41,7 +41,7 @@ namespace FineUI.Examples.grid labResult.Text = "选中行的ID列表为:" + hfSelectedIDS.Text.Trim(); } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { SyncSelectedRowIndexArrayToHiddenField(); diff --git a/FineUI.Examples/grid/grid_paging_sorting.aspx b/FineUI.Examples/grid/grid_paging_sorting.aspx index dcf1e0c..8d594e1 100644 --- a/FineUI.Examples/grid/grid_paging_sorting.aspx +++ b/FineUI.Examples/grid/grid_paging_sorting.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_paging_sorting.aspx.cs b/FineUI.Examples/grid/grid_paging_sorting.aspx.cs index 5d30c95..81b99a3 100644 --- a/FineUI.Examples/grid/grid_paging_sorting.aspx.cs +++ b/FineUI.Examples/grid/grid_paging_sorting.aspx.cs @@ -25,7 +25,7 @@ namespace FineUI.Examples.grid string sortField = Grid1.SortField; string sortDirection = Grid1.SortDirection; - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); DataView view1 = table.DefaultView; view1.Sort = String.Format("{0} {1}", sortField, sortDirection); @@ -43,14 +43,14 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; } - protected void Grid1_Sort(object sender, FineUI.GridSortEventArgs e) + protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; diff --git a/FineUI.Examples/grid/grid_prerowdatabound.aspx b/FineUI.Examples/grid/grid_prerowdatabound.aspx index 2693d03..13cd37b 100644 --- a/FineUI.Examples/grid/grid_prerowdatabound.aspx +++ b/FineUI.Examples/grid/grid_prerowdatabound.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_prerowdatabound.aspx.cs b/FineUI.Examples/grid/grid_prerowdatabound.aspx.cs index c6d567a..6066ade 100644 --- a/FineUI.Examples/grid/grid_prerowdatabound.aspx.cs +++ b/FineUI.Examples/grid/grid_prerowdatabound.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -38,7 +38,7 @@ namespace FineUI.Examples.grid /// /// /// - protected void Grid1_PreRowDataBound(object sender, FineUI.GridPreRowEventArgs e) + protected void Grid1_PreRowDataBound(object sender, GridPreRowEventArgs e) { LinkButtonField lbfAction1 = Grid1.FindColumn("lbfAction1") as LinkButtonField; LinkButtonField lbfAction2 = Grid1.FindColumn("lbfAction2") as LinkButtonField; @@ -69,7 +69,7 @@ namespace FineUI.Examples.grid } - protected void Grid1_RowCommand(object sender, FineUI.GridCommandEventArgs e) + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "Action1" || e.CommandName == "Action2") { diff --git a/FineUI.Examples/grid/grid_prerowdatabound_cancelled.aspx b/FineUI.Examples/grid/grid_prerowdatabound_cancelled.aspx index 13398b2..8b90a8f 100644 --- a/FineUI.Examples/grid/grid_prerowdatabound_cancelled.aspx +++ b/FineUI.Examples/grid/grid_prerowdatabound_cancelled.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/grid/grid_prerowdatabound_cancelled.aspx.cs b/FineUI.Examples/grid/grid_prerowdatabound_cancelled.aspx.cs index 211b562..20b9350 100644 --- a/FineUI.Examples/grid/grid_prerowdatabound_cancelled.aspx.cs +++ b/FineUI.Examples/grid/grid_prerowdatabound_cancelled.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -38,7 +38,7 @@ namespace FineUI.Examples.grid /// /// /// - protected void Grid1_PreRowDataBound(object sender, FineUI.GridPreRowEventArgs e) + protected void Grid1_PreRowDataBound(object sender, GridPreRowEventArgs e) { // 如果绑定到 DataTable,那么这里的 DataItem 就是 DataRowView DataRowView row = e.DataItem as DataRowView; @@ -54,7 +54,7 @@ namespace FineUI.Examples.grid } - protected void Grid1_RowCommand(object sender, FineUI.GridCommandEventArgs e) + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "Action1" || e.CommandName == "Action2") { diff --git a/FineUI.Examples/grid/grid_rowcheckall.aspx b/FineUI.Examples/grid/grid_rowcheckall.aspx index 22e0742..06b05a0 100644 --- a/FineUI.Examples/grid/grid_rowcheckall.aspx +++ b/FineUI.Examples/grid/grid_rowcheckall.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowcheckall.aspx.cs b/FineUI.Examples/grid/grid_rowcheckall.aspx.cs index 57ea696..111d122 100644 --- a/FineUI.Examples/grid/grid_rowcheckall.aspx.cs +++ b/FineUI.Examples/grid/grid_rowcheckall.aspx.cs @@ -22,7 +22,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -34,7 +34,7 @@ namespace FineUI.Examples.grid #region Events - protected void Grid1_RowClick(object sender, FineUI.GridRowClickEventArgs e) + protected void Grid1_RowClick(object sender, GridRowClickEventArgs e) { //Alert.ShowInTop(String.Format("你点击了第 {0} 行(单击)", e.RowIndex + 1)); diff --git a/FineUI.Examples/grid/grid_rowclick.aspx b/FineUI.Examples/grid/grid_rowclick.aspx index 359597c..6d6094e 100644 --- a/FineUI.Examples/grid/grid_rowclick.aspx +++ b/FineUI.Examples/grid/grid_rowclick.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowclick.aspx.cs b/FineUI.Examples/grid/grid_rowclick.aspx.cs index ca7ff95..b036f1d 100644 --- a/FineUI.Examples/grid/grid_rowclick.aspx.cs +++ b/FineUI.Examples/grid/grid_rowclick.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void LoadData() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -34,7 +34,7 @@ namespace FineUI.Examples.grid #region Events - protected void Grid1_RowClick(object sender, FineUI.GridRowClickEventArgs e) + protected void Grid1_RowClick(object sender, GridRowClickEventArgs e) { Alert.ShowInTop(String.Format("你点击了第 {0} 行(单击)", e.RowIndex + 1)); } diff --git a/FineUI.Examples/grid/grid_rowcommand.aspx b/FineUI.Examples/grid/grid_rowcommand.aspx index db56dff..3010fba 100644 --- a/FineUI.Examples/grid/grid_rowcommand.aspx +++ b/FineUI.Examples/grid/grid_rowcommand.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowcommand.aspx.cs b/FineUI.Examples/grid/grid_rowcommand.aspx.cs index 897c317..212c143 100644 --- a/FineUI.Examples/grid/grid_rowcommand.aspx.cs +++ b/FineUI.Examples/grid/grid_rowcommand.aspx.cs @@ -27,7 +27,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -43,7 +43,7 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_RowCommand(object sender, FineUI.GridCommandEventArgs e) + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "Action1" || e.CommandName == "Action2") { diff --git a/FineUI.Examples/grid/grid_rowcommand_download.aspx b/FineUI.Examples/grid/grid_rowcommand_download.aspx index fcc78a6..9384b86 100644 --- a/FineUI.Examples/grid/grid_rowcommand_download.aspx +++ b/FineUI.Examples/grid/grid_rowcommand_download.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowcommand_download.aspx.cs b/FineUI.Examples/grid/grid_rowcommand_download.aspx.cs index 8dca3a4..61b2e4a 100644 --- a/FineUI.Examples/grid/grid_rowcommand_download.aspx.cs +++ b/FineUI.Examples/grid/grid_rowcommand_download.aspx.cs @@ -27,7 +27,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -43,7 +43,7 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_RowCommand(object sender, FineUI.GridCommandEventArgs e) + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { object[] keys = Grid1.DataKeys[e.RowIndex]; string result = String.Format("你点击了第 {0} 行,第 {1} 列,行命令是 {2}", e.RowIndex + 1, e.ColumnIndex + 1, e.CommandName) + diff --git a/FineUI.Examples/grid/grid_rowcommand_paging.aspx b/FineUI.Examples/grid/grid_rowcommand_paging.aspx index 6eba228..01fd2c2 100644 --- a/FineUI.Examples/grid/grid_rowcommand_paging.aspx +++ b/FineUI.Examples/grid/grid_rowcommand_paging.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowcommand_paging.aspx.cs b/FineUI.Examples/grid/grid_rowcommand_paging.aspx.cs index 5012d9b..14aea8c 100644 --- a/FineUI.Examples/grid/grid_rowcommand_paging.aspx.cs +++ b/FineUI.Examples/grid/grid_rowcommand_paging.aspx.cs @@ -27,7 +27,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable2(); + DataTable table = DataSourceUtil.GetDataTable2(); Grid1.DataSource = table; Grid1.DataBind(); @@ -43,7 +43,7 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_RowCommand(object sender, FineUI.GridCommandEventArgs e) + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "Action1" || e.CommandName == "Action2") { @@ -54,7 +54,7 @@ namespace FineUI.Examples.grid } } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; } diff --git a/FineUI.Examples/grid/grid_rowcommand_paging_database.aspx b/FineUI.Examples/grid/grid_rowcommand_paging_database.aspx index 7792a7f..2dfa993 100644 --- a/FineUI.Examples/grid/grid_rowcommand_paging_database.aspx +++ b/FineUI.Examples/grid/grid_rowcommand_paging_database.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowcommand_paging_database.aspx.cs b/FineUI.Examples/grid/grid_rowcommand_paging_database.aspx.cs index d4f30fb..3c10586 100644 --- a/FineUI.Examples/grid/grid_rowcommand_paging_database.aspx.cs +++ b/FineUI.Examples/grid/grid_rowcommand_paging_database.aspx.cs @@ -39,7 +39,7 @@ namespace FineUI.Examples.grid /// private int GetTotalCount() { - return GetDataTable2().Rows.Count; + return DataSourceUtil.GetDataTable2().Rows.Count; } /// @@ -48,7 +48,7 @@ namespace FineUI.Examples.grid /// private DataTable GetPagedDataTable(int pageIndex, int pageSize) { - DataTable source = GetDataTable2(); + DataTable source = DataSourceUtil.GetDataTable2(); DataTable paged = source.Clone(); @@ -76,7 +76,7 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_RowCommand(object sender, FineUI.GridCommandEventArgs e) + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "Action1" || e.CommandName == "Action2") { @@ -87,7 +87,7 @@ namespace FineUI.Examples.grid } } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; diff --git a/FineUI.Examples/grid/grid_rowdatabound.aspx b/FineUI.Examples/grid/grid_rowdatabound.aspx index 2446e36..0912ef7 100644 --- a/FineUI.Examples/grid/grid_rowdatabound.aspx +++ b/FineUI.Examples/grid/grid_rowdatabound.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowdatabound.aspx.cs b/FineUI.Examples/grid/grid_rowdatabound.aspx.cs index 6b1ace0..ad964a3 100644 --- a/FineUI.Examples/grid/grid_rowdatabound.aspx.cs +++ b/FineUI.Examples/grid/grid_rowdatabound.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -38,7 +38,7 @@ namespace FineUI.Examples.grid /// /// /// - protected void Grid1_RowDataBound(object sender, FineUI.GridRowEventArgs e) + protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) { // e.DataItem -> System.Data.DataRowView 或者自定义类 // e.RowIndex -> 当前行序号(从 0 开始) @@ -53,7 +53,7 @@ namespace FineUI.Examples.grid } } - protected void Grid1_RowCommand(object sender, FineUI.GridCommandEventArgs e) + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "Action1" || e.CommandName == "Action2") { diff --git a/FineUI.Examples/grid/grid_rowdoubleclick.aspx b/FineUI.Examples/grid/grid_rowdoubleclick.aspx index 194f8a0..3dcaaab 100644 --- a/FineUI.Examples/grid/grid_rowdoubleclick.aspx +++ b/FineUI.Examples/grid/grid_rowdoubleclick.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowdoubleclick.aspx.cs b/FineUI.Examples/grid/grid_rowdoubleclick.aspx.cs index 01d5abb..cfd04d5 100644 --- a/FineUI.Examples/grid/grid_rowdoubleclick.aspx.cs +++ b/FineUI.Examples/grid/grid_rowdoubleclick.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void LoadData() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -34,7 +34,7 @@ namespace FineUI.Examples.grid #region Events - protected void Grid1_RowClick(object sender, FineUI.GridRowClickEventArgs e) + protected void Grid1_RowClick(object sender, GridRowClickEventArgs e) { Alert.ShowInTop(String.Format("你点击了第 {0} 行(双击)", e.RowIndex + 1)); } diff --git a/FineUI.Examples/grid/grid_rowexpander.aspx b/FineUI.Examples/grid/grid_rowexpander.aspx index 865e3e5..ca33aa3 100644 --- a/FineUI.Examples/grid/grid_rowexpander.aspx +++ b/FineUI.Examples/grid/grid_rowexpander.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowexpander.aspx.cs b/FineUI.Examples/grid/grid_rowexpander.aspx.cs index ba5a6e3..c886a86 100644 --- a/FineUI.Examples/grid/grid_rowexpander.aspx.cs +++ b/FineUI.Examples/grid/grid_rowexpander.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); diff --git a/FineUI.Examples/grid/grid_rowexpander_expandall.aspx b/FineUI.Examples/grid/grid_rowexpander_expandall.aspx index 025e5cd..072181f 100644 --- a/FineUI.Examples/grid/grid_rowexpander_expandall.aspx +++ b/FineUI.Examples/grid/grid_rowexpander_expandall.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowexpander_expandall.aspx.cs b/FineUI.Examples/grid/grid_rowexpander_expandall.aspx.cs index 1db6812..22b13e8 100644 --- a/FineUI.Examples/grid/grid_rowexpander_expandall.aspx.cs +++ b/FineUI.Examples/grid/grid_rowexpander_expandall.aspx.cs @@ -25,7 +25,7 @@ namespace FineUI.Examples.grid { ViewState["UseDataSource1"] = true; - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -42,12 +42,12 @@ namespace FineUI.Examples.grid if (Convert.ToBoolean(ViewState["UseDataSource1"])) { ViewState["UseDataSource1"] = false; - table = GetDataTable2(); + table = DataSourceUtil.GetDataTable2(); } else { ViewState["UseDataSource1"] = true; - table = GetDataTable(); + table = DataSourceUtil.GetDataTable(); } Grid1.DataSource = table; diff --git a/FineUI.Examples/grid/grid_rowexpander_expandall_js.aspx b/FineUI.Examples/grid/grid_rowexpander_expandall_js.aspx index 913e224..ea6f8b0 100644 --- a/FineUI.Examples/grid/grid_rowexpander_expandall_js.aspx +++ b/FineUI.Examples/grid/grid_rowexpander_expandall_js.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rowexpander_expandall_js.aspx.cs b/FineUI.Examples/grid/grid_rowexpander_expandall_js.aspx.cs index eb938eb..5eeb3b8 100644 --- a/FineUI.Examples/grid/grid_rowexpander_expandall_js.aspx.cs +++ b/FineUI.Examples/grid/grid_rowexpander_expandall_js.aspx.cs @@ -25,7 +25,7 @@ namespace FineUI.Examples.grid { ViewState["UseDataSource1"] = true; - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -42,12 +42,12 @@ namespace FineUI.Examples.grid if (Convert.ToBoolean(ViewState["UseDataSource1"])) { ViewState["UseDataSource1"] = false; - table = GetDataTable2(); + table = DataSourceUtil.GetDataTable2(); } else { ViewState["UseDataSource1"] = true; - table = GetDataTable(); + table = DataSourceUtil.GetDataTable(); } Grid1.DataSource = table; diff --git a/FineUI.Examples/grid/grid_rowexpander_grid.aspx b/FineUI.Examples/grid/grid_rowexpander_grid.aspx new file mode 100644 index 0000000..759349c --- /dev/null +++ b/FineUI.Examples/grid/grid_rowexpander_grid.aspx @@ -0,0 +1,136 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_rowexpander_grid.aspx.cs" + Inherits="FineUI.Examples.grid.grid_rowexpander_grid" %> + + + + + + + + + + + + + + + + + + + <%-- Container.DataItem 的类型是 System.Data.DataRowView 或者用户自定义类型 --%> + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/grid/grid_rowexpander_grid.aspx.cs b/FineUI.Examples/grid/grid_rowexpander_grid.aspx.cs new file mode 100644 index 0000000..eabd181 --- /dev/null +++ b/FineUI.Examples/grid/grid_rowexpander_grid.aspx.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +namespace FineUI.Examples.grid +{ + public partial class grid_rowexpander_grid : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + } + + #region BindGrid + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable(); + + Grid1.DataSource = table; + Grid1.DataBind(); + + } + + #endregion + + + } +} diff --git a/FineUI.Examples/grid/grid_rowexpander_grid.aspx.designer.cs b/FineUI.Examples/grid/grid_rowexpander_grid.aspx.designer.cs new file mode 100644 index 0000000..8abe11f --- /dev/null +++ b/FineUI.Examples/grid/grid_rowexpander_grid.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_rowexpander_grid { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label2; + } +} diff --git a/FineUI.Examples/grid/grid_rowexpander_grid_data.ashx b/FineUI.Examples/grid/grid_rowexpander_grid_data.ashx new file mode 100644 index 0000000..efbd58f --- /dev/null +++ b/FineUI.Examples/grid/grid_rowexpander_grid_data.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="grid_rowexpander_grid_data.ashx.cs" Class="FineUI.Examples.grid.grid_rowexpander_grid_data" %> diff --git a/FineUI.Examples/grid/grid_rowexpander_grid_data.ashx.cs b/FineUI.Examples/grid/grid_rowexpander_grid_data.ashx.cs new file mode 100644 index 0000000..62186ae --- /dev/null +++ b/FineUI.Examples/grid/grid_rowexpander_grid_data.ashx.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Web; +using Newtonsoft.Json.Linq; + + +namespace FineUI.Examples.grid +{ + /// + /// grid_rowexpander_grid_data 的摘要说明 + /// + public class grid_rowexpander_grid_data : IHttpHandler + { + + public void ProcessRequest(HttpContext context) + { + string rowId = context.Request.QueryString["id"]; + int rowIdInt = Convert.ToInt32(rowId); + + JObject jo = new JObject(); + + JArray ja = new JArray(); + + Random rd = new Random(); + for (int i = 0; i < 3; i++) + { + JObject joItem = new JObject(); + + if (i == 0) + { + joItem.Add("type", "入学"); + } + else if (i == 1) + { + joItem.Add("type", "期中"); + } + else if (i == 2) + { + joItem.Add("type", "期末"); + } + + int randomMinValue = 80; + int randomMaxValue = 100; + if (rowIdInt % 2 == 0) + { + randomMinValue = 40; + randomMaxValue = 80; + } + joItem.Add("yuwen", rd.Next(randomMinValue, randomMaxValue)); + joItem.Add("shuxue", rd.Next(randomMinValue, randomMaxValue)); + joItem.Add("yingwen", rd.Next(randomMinValue, randomMaxValue)); + joItem.Add("wuli", rd.Next(randomMinValue, randomMaxValue)); + joItem.Add("huaxue", rd.Next(randomMinValue, randomMaxValue)); + + ja.Add(joItem); + } + + jo.Add("data", ja); + jo.Add("total", ja.Count); + + context.Response.ContentType = "text/plain"; + context.Response.Write(jo.ToString(Newtonsoft.Json.Formatting.None)); + + } + + public bool IsReusable + { + get + { + return false; + } + } + } +} \ No newline at end of file diff --git a/FineUI.Examples/grid/grid_rownumber_align.aspx b/FineUI.Examples/grid/grid_rownumber_align.aspx index 9657279..b752854 100644 --- a/FineUI.Examples/grid/grid_rownumber_align.aspx +++ b/FineUI.Examples/grid/grid_rownumber_align.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rownumber_align.aspx.cs b/FineUI.Examples/grid/grid_rownumber_align.aspx.cs index 22a596a..c9522fe 100644 --- a/FineUI.Examples/grid/grid_rownumber_align.aspx.cs +++ b/FineUI.Examples/grid/grid_rownumber_align.aspx.cs @@ -68,7 +68,7 @@ namespace FineUI.Examples.grid } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; diff --git a/FineUI.Examples/grid/grid_rownumber_paging.aspx b/FineUI.Examples/grid/grid_rownumber_paging.aspx index ca01931..55fa4bf 100644 --- a/FineUI.Examples/grid/grid_rownumber_paging.aspx +++ b/FineUI.Examples/grid/grid_rownumber_paging.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rownumber_paging.aspx.cs b/FineUI.Examples/grid/grid_rownumber_paging.aspx.cs index 674db68..6f62523 100644 --- a/FineUI.Examples/grid/grid_rownumber_paging.aspx.cs +++ b/FineUI.Examples/grid/grid_rownumber_paging.aspx.cs @@ -22,7 +22,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable2(); + DataTable table = DataSourceUtil.GetDataTable2(); Grid1.DataSource = table; Grid1.DataBind(); @@ -38,7 +38,7 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1, true); } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; } diff --git a/FineUI.Examples/grid/grid_rownumber_paging_database.aspx b/FineUI.Examples/grid/grid_rownumber_paging_database.aspx index 184f28f..c8130e0 100644 --- a/FineUI.Examples/grid/grid_rownumber_paging_database.aspx +++ b/FineUI.Examples/grid/grid_rownumber_paging_database.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rownumber_paging_database.aspx.cs b/FineUI.Examples/grid/grid_rownumber_paging_database.aspx.cs index b07e782..a65a9ac 100644 --- a/FineUI.Examples/grid/grid_rownumber_paging_database.aspx.cs +++ b/FineUI.Examples/grid/grid_rownumber_paging_database.aspx.cs @@ -39,7 +39,7 @@ namespace FineUI.Examples.grid /// private int GetTotalCount() { - return GetDataTable2().Rows.Count; + return DataSourceUtil.GetDataTable2().Rows.Count; } /// @@ -48,7 +48,7 @@ namespace FineUI.Examples.grid /// private DataTable GetPagedDataTable(int pageIndex, int pageSize) { - DataTable source = GetDataTable2(); + DataTable source = DataSourceUtil.GetDataTable2(); DataTable paged = source.Clone(); @@ -77,7 +77,7 @@ namespace FineUI.Examples.grid } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; diff --git a/FineUI.Examples/grid/grid_rownumber_width.aspx b/FineUI.Examples/grid/grid_rownumber_width.aspx index e983f20..fd32d17 100644 --- a/FineUI.Examples/grid/grid_rownumber_width.aspx +++ b/FineUI.Examples/grid/grid_rownumber_width.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_rownumber_width.aspx.cs b/FineUI.Examples/grid/grid_rownumber_width.aspx.cs index 4f2edd2..ff72965 100644 --- a/FineUI.Examples/grid/grid_rownumber_width.aspx.cs +++ b/FineUI.Examples/grid/grid_rownumber_width.aspx.cs @@ -68,7 +68,7 @@ namespace FineUI.Examples.grid } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; diff --git a/FineUI.Examples/grid/grid_rowselect.aspx b/FineUI.Examples/grid/grid_rowselect.aspx index 3d3f3c6..b7608f6 100644 --- a/FineUI.Examples/grid/grid_rowselect.aspx +++ b/FineUI.Examples/grid/grid_rowselect.aspx @@ -5,33 +5,39 @@ - + - - - - - - - - - - - - - - - - - - 注意:观察行选中事件与行单击事件的区别。 + + + + + + + + + + + + + + + + + + + 注: + + 观察行选中事件与行单击事件的区别; + 点击复选框取消选中行时,也会触发相应事件。 + diff --git a/FineUI.Examples/grid/grid_rowselect.aspx.cs b/FineUI.Examples/grid/grid_rowselect.aspx.cs index 691b2a7..eb2239b 100644 --- a/FineUI.Examples/grid/grid_rowselect.aspx.cs +++ b/FineUI.Examples/grid/grid_rowselect.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void LoadData() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); @@ -34,11 +34,19 @@ namespace FineUI.Examples.grid #region Events - protected void Grid1_RowSelect(object sender, FineUI.GridRowSelectEventArgs e) + protected void Grid1_RowSelect(object sender, GridRowSelectEventArgs e) { - Alert.ShowInTop(String.Format("你选中了第 {0} 行", e.RowIndex + 1)); + Alert.ShowInTop(String.Format("你选中了第 {0} 行,行ID:{1}", e.RowIndex + 1, e.RowID)); } + + protected void Grid1_RowDeselect(object sender, GridRowSelectEventArgs e) + { + ShowNotify(String.Format("你取消选中了第 {0} 行,行ID:{1}", e.RowIndex + 1, e.RowID)); + } + + + #endregion diff --git a/FineUI.Examples/grid/grid_simulate_tree.aspx b/FineUI.Examples/grid/grid_simulate_tree.aspx index b9be367..b1cfbdb 100644 --- a/FineUI.Examples/grid/grid_simulate_tree.aspx +++ b/FineUI.Examples/grid/grid_simulate_tree.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_simulate_tree_database_paging.aspx b/FineUI.Examples/grid/grid_simulate_tree_database_paging.aspx index 74038e3..06cfa1c 100644 --- a/FineUI.Examples/grid/grid_simulate_tree_database_paging.aspx +++ b/FineUI.Examples/grid/grid_simulate_tree_database_paging.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_simulate_tree_database_paging.aspx.cs b/FineUI.Examples/grid/grid_simulate_tree_database_paging.aspx.cs index 2f1ec5e..87029c2 100644 --- a/FineUI.Examples/grid/grid_simulate_tree_database_paging.aspx.cs +++ b/FineUI.Examples/grid/grid_simulate_tree_database_paging.aspx.cs @@ -132,7 +132,7 @@ namespace FineUI.Examples.grid #region Events - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; diff --git a/FineUI.Examples/grid/grid_simulate_tree_database_paging_dropdownlist.aspx b/FineUI.Examples/grid/grid_simulate_tree_database_paging_dropdownlist.aspx index 234e199..7cbc9bf 100644 --- a/FineUI.Examples/grid/grid_simulate_tree_database_paging_dropdownlist.aspx +++ b/FineUI.Examples/grid/grid_simulate_tree_database_paging_dropdownlist.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_simulate_tree_database_paging_dropdownlist.aspx.cs b/FineUI.Examples/grid/grid_simulate_tree_database_paging_dropdownlist.aspx.cs index 56649d9..0ff8d29 100644 --- a/FineUI.Examples/grid/grid_simulate_tree_database_paging_dropdownlist.aspx.cs +++ b/FineUI.Examples/grid/grid_simulate_tree_database_paging_dropdownlist.aspx.cs @@ -172,7 +172,7 @@ namespace FineUI.Examples.grid #region Events - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; diff --git a/FineUI.Examples/grid/grid_simulate_tree_paging.aspx b/FineUI.Examples/grid/grid_simulate_tree_paging.aspx index 1e818c4..18ad457 100644 --- a/FineUI.Examples/grid/grid_simulate_tree_paging.aspx +++ b/FineUI.Examples/grid/grid_simulate_tree_paging.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/grid/grid_simulate_tree_paging.aspx.cs b/FineUI.Examples/grid/grid_simulate_tree_paging.aspx.cs index 49e344a..4fcf3c5 100644 --- a/FineUI.Examples/grid/grid_simulate_tree_paging.aspx.cs +++ b/FineUI.Examples/grid/grid_simulate_tree_paging.aspx.cs @@ -106,7 +106,7 @@ namespace FineUI.Examples.grid #region Events - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; } diff --git a/FineUI.Examples/grid/grid_sorting.aspx b/FineUI.Examples/grid/grid_sorting.aspx index 3bb2ebc..870b3c4 100644 --- a/FineUI.Examples/grid/grid_sorting.aspx +++ b/FineUI.Examples/grid/grid_sorting.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/grid/grid_sorting.aspx.cs b/FineUI.Examples/grid/grid_sorting.aspx.cs index 584d17e..dd94834 100644 --- a/FineUI.Examples/grid/grid_sorting.aspx.cs +++ b/FineUI.Examples/grid/grid_sorting.aspx.cs @@ -25,7 +25,7 @@ namespace FineUI.Examples.grid string sortField = Grid1.SortField; string sortDirection = Grid1.SortDirection; - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); DataView view1 = table.DefaultView; view1.Sort = String.Format("{0} {1}", sortField, sortDirection); @@ -43,7 +43,7 @@ namespace FineUI.Examples.grid labResult.Text = HowManyRowsAreSelected(Grid1); } - protected void Grid1_Sort(object sender, FineUI.GridSortEventArgs e) + protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; diff --git a/FineUI.Examples/grid/grid_style_columnclass.aspx b/FineUI.Examples/grid/grid_style_columnclass.aspx index 7bbd378..8e3bf8b 100644 --- a/FineUI.Examples/grid/grid_style_columnclass.aspx +++ b/FineUI.Examples/grid/grid_style_columnclass.aspx @@ -5,7 +5,7 @@ - + - + - + UrlEncode="true" Target="_blank" ExpandUnusedSpace="true" /> - - - - 注:本示例是当前页合计,切换页面时合计数据会变化。 diff --git a/FineUI.Examples/grid/grid_summary_currentpage.aspx.cs b/FineUI.Examples/grid/grid_summary_currentpage.aspx.cs index 6d8bac3..1d09455 100644 --- a/FineUI.Examples/grid/grid_summary_currentpage.aspx.cs +++ b/FineUI.Examples/grid/grid_summary_currentpage.aspx.cs @@ -34,7 +34,7 @@ namespace FineUI.Examples.grid JObject summary = new JObject(); - //summary.Add("major", "当前页合计"); + //summary.Add("major", "全部合计"); summary.Add("fee", feeTotal.ToString("F2")); summary.Add("donate", donateTotal.ToString("F2")); @@ -55,7 +55,8 @@ namespace FineUI.Examples.grid Grid1.DataSource = table; Grid1.DataBind(); - // 输出分页合计结果 + + // 当前页的合计 OutputSummaryData(table); } @@ -66,7 +67,7 @@ namespace FineUI.Examples.grid /// private int GetTotalCount() { - return GetDataTable2().Rows.Count; + return DataSourceUtil.GetDataTable2().Rows.Count; } /// @@ -75,7 +76,7 @@ namespace FineUI.Examples.grid /// private DataTable GetPagedDataTable(int pageIndex, int pageSize) { - DataTable source = GetDataTable2(); + DataTable source = DataSourceUtil.GetDataTable2(); DataTable paged = source.Clone(); @@ -104,7 +105,7 @@ namespace FineUI.Examples.grid } - protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; diff --git a/FineUI.Examples/grid/grid_summary_currentpage.aspx.designer.cs b/FineUI.Examples/grid/grid_summary_currentpage.aspx.designer.cs index 9d5e05a..0161c7e 100644 --- a/FineUI.Examples/grid/grid_summary_currentpage.aspx.designer.cs +++ b/FineUI.Examples/grid/grid_summary_currentpage.aspx.designer.cs @@ -48,15 +48,6 @@ namespace FineUI.Examples.grid { /// protected global::System.Web.UI.WebControls.Label Label2; - /// - /// hfGrid1Summary 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUI.HiddenField hfGrid1Summary; - /// /// Button1 控件。 /// diff --git a/FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx b/FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx new file mode 100644 index 0000000..82aed09 --- /dev/null +++ b/FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx @@ -0,0 +1,55 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_summary_scrollbar_bottom.aspx.cs" + Inherits="FineUI.Examples.grid.grid_summary_scrollbar_bottom" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx.cs b/FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx.cs new file mode 100644 index 0000000..33d4991 --- /dev/null +++ b/FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +using Newtonsoft.Json.Linq; + +namespace FineUI.Examples.grid +{ + public partial class grid_summary_scrollbar_bottom : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + + OutputSummaryData(); + } + } + + #region BindGrid + + private void OutputSummaryData() + { + DataTable source = DataSourceUtil.GetDataTable2(); + + float donateTotal = 0.0f; + float feeTotal = 0.0f; + foreach (DataRow row in source.Rows) + { + donateTotal += Convert.ToInt32(row["Donate"]); + feeTotal += Convert.ToInt32(row["Fee"]); + } + + + JObject summary = new JObject(); + //summary.Add("major", "全部合计"); + summary.Add("fee", feeTotal.ToString("F2")); + summary.Add("donate", donateTotal.ToString("F2")); + + + Grid1.SummaryData = summary; + + } + + private void BindGrid() + { + // 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount) + Grid1.RecordCount = GetTotalCount(); + + // 2.获取当前分页数据 + DataTable table = GetPagedDataTable(Grid1.PageIndex, Grid1.PageSize); + + // 3.绑定到Grid + Grid1.DataSource = table; + Grid1.DataBind(); + } + + + /// + /// 模拟返回总项数 + /// + /// + private int GetTotalCount() + { + return DataSourceUtil.GetDataTable2().Rows.Count; + } + + /// + /// 模拟数据库分页 + /// + /// + private DataTable GetPagedDataTable(int pageIndex, int pageSize) + { + DataTable source = DataSourceUtil.GetDataTable2(); + + DataTable paged = source.Clone(); + + int rowbegin = pageIndex * pageSize; + int rowend = (pageIndex + 1) * pageSize; + if (rowend > source.Rows.Count) + { + rowend = source.Rows.Count; + } + + for (int i = rowbegin; i < rowend; i++) + { + paged.ImportRow(source.Rows[i]); + } + + return paged; + } + + #endregion + + #region Events + + protected void Button1_Click(object sender, EventArgs e) + { + labResult.Text = HowManyRowsAreSelected(Grid1); + } + + + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + + BindGrid(); + } + + #endregion + + } +} diff --git a/FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx.designer.cs b/FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx.designer.cs new file mode 100644 index 0000000..b352794 --- /dev/null +++ b/FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx.designer.cs @@ -0,0 +1,78 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_summary_scrollbar_bottom { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label2; + + /// + /// hfGrid1Summary 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.HiddenField hfGrid1Summary; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button1; + + /// + /// labResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labResult; + } +} diff --git a/FineUI.Examples/grid/grid_summary_scrollbar_flow.aspx b/FineUI.Examples/grid/grid_summary_scrollbar_flow.aspx index b0d7554..196eb5e 100644 --- a/FineUI.Examples/grid/grid_summary_scrollbar_flow.aspx +++ b/FineUI.Examples/grid/grid_summary_scrollbar_flow.aspx @@ -6,7 +6,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 注:本示例是当前页合计,切换页面时合计数据会变化。 + + + diff --git a/FineUI.Examples/grid/grid_summary_scrollbar_top.aspx.cs b/FineUI.Examples/grid/grid_summary_scrollbar_top.aspx.cs new file mode 100644 index 0000000..48e428c --- /dev/null +++ b/FineUI.Examples/grid/grid_summary_scrollbar_top.aspx.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +using Newtonsoft.Json.Linq; + +namespace FineUI.Examples.grid +{ + public partial class grid_summary_scrollbar_top : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + } + + #region BindGrid + + private void OutputSummaryData(DataTable source) + { + float donateTotal = 0.0f; + float feeTotal = 0.0f; + foreach (DataRow row in source.Rows) + { + donateTotal += Convert.ToInt32(row["Donate"]); + feeTotal += Convert.ToInt32(row["Fee"]); + } + + + JObject summary = new JObject(); + //summary.Add("major", "当前页合计"); + summary.Add("fee", feeTotal.ToString("F2")); + summary.Add("donate", donateTotal.ToString("F2")); + + + Grid1.SummaryData = summary; + + } + + private void BindGrid() + { + // 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount) + Grid1.RecordCount = GetTotalCount(); + + // 2.获取当前分页数据 + DataTable table = GetPagedDataTable(Grid1.PageIndex, Grid1.PageSize); + + // 3.绑定到Grid + Grid1.DataSource = table; + Grid1.DataBind(); + + + // 输出分页合计结果 + OutputSummaryData(table); + + } + + + /// + /// 模拟返回总项数 + /// + /// + private int GetTotalCount() + { + return DataSourceUtil.GetDataTable2().Rows.Count; + } + + /// + /// 模拟数据库分页 + /// + /// + private DataTable GetPagedDataTable(int pageIndex, int pageSize) + { + DataTable source = DataSourceUtil.GetDataTable2(); + + DataTable paged = source.Clone(); + + int rowbegin = pageIndex * pageSize; + int rowend = (pageIndex + 1) * pageSize; + if (rowend > source.Rows.Count) + { + rowend = source.Rows.Count; + } + + for (int i = rowbegin; i < rowend; i++) + { + paged.ImportRow(source.Rows[i]); + } + + return paged; + } + + #endregion + + #region Events + + protected void Button1_Click(object sender, EventArgs e) + { + labResult.Text = HowManyRowsAreSelected(Grid1); + } + + + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + + BindGrid(); + } + + #endregion + + } +} diff --git a/FineUI.Examples/grid/grid_summary_scrollbar_top.aspx.designer.cs b/FineUI.Examples/grid/grid_summary_scrollbar_top.aspx.designer.cs new file mode 100644 index 0000000..c2dd01e --- /dev/null +++ b/FineUI.Examples/grid/grid_summary_scrollbar_top.aspx.designer.cs @@ -0,0 +1,69 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_summary_scrollbar_top { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label2; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button1; + + /// + /// labResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label labResult; + } +} diff --git a/FineUI.Examples/grid/grid_text_middle.aspx b/FineUI.Examples/grid/grid_text_middle.aspx index f79e53d..d0f046d 100644 --- a/FineUI.Examples/grid/grid_text_middle.aspx +++ b/FineUI.Examples/grid/grid_text_middle.aspx @@ -5,7 +5,7 @@ - + + diff --git a/FineUI.Examples/grid/grid_twogrid.aspx.cs b/FineUI.Examples/grid/grid_twogrid.aspx.cs index cb9dc0e..76d8044 100644 --- a/FineUI.Examples/grid/grid_twogrid.aspx.cs +++ b/FineUI.Examples/grid/grid_twogrid.aspx.cs @@ -25,7 +25,7 @@ namespace FineUI.Examples.grid private void BindGrid2() { - Grid2.DataSource = GetClassDataTable(); + Grid2.DataSource = DataSourceUtil.GetClassDataTable(); Grid2.DataBind(); Grid2.SelectedRowIndex = 0; @@ -43,11 +43,11 @@ namespace FineUI.Examples.grid DataTable table = null; if (classId == 101) { - table = GetDataTable(); + table = DataSourceUtil.GetDataTable(); } else { - table = GetDataTable2(); + table = DataSourceUtil.GetDataTable2(); } Grid1.DataSource = table; @@ -58,7 +58,7 @@ namespace FineUI.Examples.grid private void UpdateClassDesc(int classId) { - foreach (DataRow row in GetClassDataTable().Rows) + foreach (DataRow row in DataSourceUtil.GetClassDataTable().Rows) { int currentClassId = (int)row["Id"]; if (classId == currentClassId) @@ -73,7 +73,7 @@ namespace FineUI.Examples.grid #region Events - protected void Grid2_RowSelect(object sender, FineUI.GridRowSelectEventArgs e) + protected void Grid2_RowSelect(object sender, GridRowSelectEventArgs e) { BindGrid1(); } diff --git a/FineUI.Examples/grid/grid_width.aspx b/FineUI.Examples/grid/grid_width.aspx index 5486114..c19a0e6 100644 --- a/FineUI.Examples/grid/grid_width.aspx +++ b/FineUI.Examples/grid/grid_width.aspx @@ -4,12 +4,7 @@ - - + diff --git a/FineUI.Examples/grid/grid_width.aspx.cs b/FineUI.Examples/grid/grid_width.aspx.cs index de5b56a..2223e5e 100644 --- a/FineUI.Examples/grid/grid_width.aspx.cs +++ b/FineUI.Examples/grid/grid_width.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); diff --git a/FineUI.Examples/grid/grid_width_boxflex.aspx b/FineUI.Examples/grid/grid_width_boxflex.aspx new file mode 100644 index 0000000..3935f12 --- /dev/null +++ b/FineUI.Examples/grid/grid_width_boxflex.aspx @@ -0,0 +1,38 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_width_boxflex.aspx.cs" + Inherits="FineUI.Examples.grid.grid_width_boxflex" %> + + + + + + + + + + + + + + + + + + <%-- Container.DataItem 的类型是 System.Data.DataRowView 或者用户自定义类型 --%> + <%----%> + + + + + + + + + + + + + + diff --git a/FineUI.Examples/grid/grid_width_boxflex.aspx.cs b/FineUI.Examples/grid/grid_width_boxflex.aspx.cs new file mode 100644 index 0000000..0cc403c --- /dev/null +++ b/FineUI.Examples/grid/grid_width_boxflex.aspx.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +namespace FineUI.Examples.grid +{ + public partial class grid_width_boxflex : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + } + + #region BindGrid + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable(); + + Grid1.DataSource = table; + Grid1.DataBind(); + + } + + + + #endregion + + + + } +} diff --git a/FineUI.Examples/grid/grid_width_boxflex.aspx.designer.cs b/FineUI.Examples/grid/grid_width_boxflex.aspx.designer.cs new file mode 100644 index 0000000..8e65295 --- /dev/null +++ b/FineUI.Examples/grid/grid_width_boxflex.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_width_boxflex { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label3; + } +} diff --git a/FineUI.Examples/grid/grid_width_expandunusedspace.aspx b/FineUI.Examples/grid/grid_width_expandunusedspace.aspx index defbfa9..549519a 100644 --- a/FineUI.Examples/grid/grid_width_expandunusedspace.aspx +++ b/FineUI.Examples/grid/grid_width_expandunusedspace.aspx @@ -4,19 +4,15 @@ + - - + - + @@ -33,7 +29,7 @@ DataTextFormatString="{0}" DataNavigateUrlFields="Major" DataNavigateUrlFormatString="http://gsa.ustc.edu.cn/search?q={0}" UrlEncode="true" Target="_blank" /> + ExpandUnusedSpace="true" MinWidth="200px" /> diff --git a/FineUI.Examples/grid/grid_width_expandunusedspace.aspx.cs b/FineUI.Examples/grid/grid_width_expandunusedspace.aspx.cs index ab9721d..306e005 100644 --- a/FineUI.Examples/grid/grid_width_expandunusedspace.aspx.cs +++ b/FineUI.Examples/grid/grid_width_expandunusedspace.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); diff --git a/FineUI.Examples/grid/grid_width_forcefit.aspx b/FineUI.Examples/grid/grid_width_forcefit.aspx index 68d2fe8..e253844 100644 --- a/FineUI.Examples/grid/grid_width_forcefit.aspx +++ b/FineUI.Examples/grid/grid_width_forcefit.aspx @@ -4,19 +4,15 @@ + - - + - + diff --git a/FineUI.Examples/grid/grid_width_forcefit.aspx.cs b/FineUI.Examples/grid/grid_width_forcefit.aspx.cs index 880b62f..a4bc610 100644 --- a/FineUI.Examples/grid/grid_width_forcefit.aspx.cs +++ b/FineUI.Examples/grid/grid_width_forcefit.aspx.cs @@ -23,7 +23,7 @@ namespace FineUI.Examples.grid private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid1.DataSource = table; Grid1.DataBind(); diff --git a/FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx b/FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx new file mode 100644 index 0000000..b73a14d --- /dev/null +++ b/FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx @@ -0,0 +1,39 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="grid_width_forcefit_minwidth.aspx.cs" + Inherits="FineUI.Examples.grid.grid_width_forcefit_minwidth" %> + + + + + + + + + + + + + + + + + + <%-- Container.DataItem 的类型是 System.Data.DataRowView 或者用户自定义类型 --%> + <%----%> + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx.cs b/FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx.cs new file mode 100644 index 0000000..2d04466 --- /dev/null +++ b/FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; + +namespace FineUI.Examples.grid +{ + public partial class grid_width_forcefit_minwidth : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + BindGrid(); + } + } + + #region BindGrid + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable(); + + Grid1.DataSource = table; + Grid1.DataBind(); + + } + + + + #endregion + + + + } +} diff --git a/FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx.designer.cs b/FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx.designer.cs new file mode 100644 index 0000000..a0f3a39 --- /dev/null +++ b/FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.grid { + + + public partial class grid_width_forcefit_minwidth { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid1; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label3; + } +} diff --git a/FineUI.Examples/iframe/button_iframe.aspx b/FineUI.Examples/iframe/button_iframe.aspx index 80fadc2..f2f5938 100644 --- a/FineUI.Examples/iframe/button_iframe.aspx +++ b/FineUI.Examples/iframe/button_iframe.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/grid_iframe.aspx b/FineUI.Examples/iframe/grid_iframe.aspx index f256d18..2087346 100644 --- a/FineUI.Examples/iframe/grid_iframe.aspx +++ b/FineUI.Examples/iframe/grid_iframe.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/iframe/grid_iframe.aspx.cs b/FineUI.Examples/iframe/grid_iframe.aspx.cs index 33cd980..fdaff8f 100644 --- a/FineUI.Examples/iframe/grid_iframe.aspx.cs +++ b/FineUI.Examples/iframe/grid_iframe.aspx.cs @@ -47,7 +47,7 @@ namespace FineUI.Examples.iframe private void BindGrid() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid2.DataSource = table; Grid2.DataBind(); @@ -55,7 +55,7 @@ namespace FineUI.Examples.iframe private void BindGrid2() { - DataTable table = GetDataTable(); + DataTable table = DataSourceUtil.GetDataTable(); Grid2.DataSource = table; Grid2.DataBind(); @@ -68,18 +68,18 @@ namespace FineUI.Examples.iframe BindGrid(); } - protected void Grid2_Sort(object sender, FineUI.GridSortEventArgs e) + protected void Grid2_Sort(object sender, GridSortEventArgs e) { Alert.ShowInTop(e.SortField); } - protected void Grid2_PageIndexChange(object sender, FineUI.GridPageEventArgs e) + protected void Grid2_PageIndexChange(object sender, GridPageEventArgs e) { Alert.ShowInTop(e.NewPageIndex.ToString()); } - protected void Window1_Close(object sender, FineUI.WindowCloseEventArgs e) + protected void Window1_Close(object sender, WindowCloseEventArgs e) { AutoBindGrid(); } diff --git a/FineUI.Examples/iframe/iframe_iframe.aspx b/FineUI.Examples/iframe/iframe_iframe.aspx index 8c4b506..b186ab5 100644 --- a/FineUI.Examples/iframe/iframe_iframe.aspx +++ b/FineUI.Examples/iframe/iframe_iframe.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/iframe_iframe_window1.aspx b/FineUI.Examples/iframe/iframe_iframe_window1.aspx index 8f75910..6604b4d 100644 --- a/FineUI.Examples/iframe/iframe_iframe_window1.aspx +++ b/FineUI.Examples/iframe/iframe_iframe_window1.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/iframe/iframe_iframe_window2.aspx b/FineUI.Examples/iframe/iframe_iframe_window2.aspx index 3974c46..e70ac4c 100644 --- a/FineUI.Examples/iframe/iframe_iframe_window2.aspx +++ b/FineUI.Examples/iframe/iframe_iframe_window2.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/iframe/parent_postback.aspx b/FineUI.Examples/iframe/parent_postback.aspx index 8feeaf3..215fb02 100644 --- a/FineUI.Examples/iframe/parent_postback.aspx +++ b/FineUI.Examples/iframe/parent_postback.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/parent_postback2.aspx b/FineUI.Examples/iframe/parent_postback2.aspx index 334475b..820fcaa 100644 --- a/FineUI.Examples/iframe/parent_postback2.aspx +++ b/FineUI.Examples/iframe/parent_postback2.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/iframe/parent_postback3.aspx b/FineUI.Examples/iframe/parent_postback3.aspx index b5af0db..0e00852 100644 --- a/FineUI.Examples/iframe/parent_postback3.aspx +++ b/FineUI.Examples/iframe/parent_postback3.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/iframe/parent_postback_top.aspx b/FineUI.Examples/iframe/parent_postback_top.aspx index 23b25d9..0b23ac9 100644 --- a/FineUI.Examples/iframe/parent_postback_top.aspx +++ b/FineUI.Examples/iframe/parent_postback_top.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/parent_postback_top2.aspx b/FineUI.Examples/iframe/parent_postback_top2.aspx index a6d93dc..904f798 100644 --- a/FineUI.Examples/iframe/parent_postback_top2.aspx +++ b/FineUI.Examples/iframe/parent_postback_top2.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/iframe/parent_postback_top3.aspx b/FineUI.Examples/iframe/parent_postback_top3.aspx index 5d9207a..174532a 100644 --- a/FineUI.Examples/iframe/parent_postback_top3.aspx +++ b/FineUI.Examples/iframe/parent_postback_top3.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/iframe/parent_simplepostback.aspx b/FineUI.Examples/iframe/parent_simplepostback.aspx index 159632e..d6335ca 100644 --- a/FineUI.Examples/iframe/parent_simplepostback.aspx +++ b/FineUI.Examples/iframe/parent_simplepostback.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/iframe/parent_simplepostback2.aspx b/FineUI.Examples/iframe/parent_simplepostback2.aspx index 7dee4b5..be5ec60 100644 --- a/FineUI.Examples/iframe/parent_simplepostback2.aspx +++ b/FineUI.Examples/iframe/parent_simplepostback2.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/iframe/passvalue_iframe.aspx b/FineUI.Examples/iframe/passvalue_iframe.aspx index 2f16b79..f66162b 100644 --- a/FineUI.Examples/iframe/passvalue_iframe.aspx +++ b/FineUI.Examples/iframe/passvalue_iframe.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/passvalue_iframe_iframe.aspx b/FineUI.Examples/iframe/passvalue_iframe_iframe.aspx index 596e37a..915705a 100644 --- a/FineUI.Examples/iframe/passvalue_iframe_iframe.aspx +++ b/FineUI.Examples/iframe/passvalue_iframe_iframe.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/iframe/selectprovince1.aspx b/FineUI.Examples/iframe/selectprovince1.aspx index 6f7e4c0..3a7072a 100644 --- a/FineUI.Examples/iframe/selectprovince1.aspx +++ b/FineUI.Examples/iframe/selectprovince1.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/selectprovince1_child.aspx b/FineUI.Examples/iframe/selectprovince1_child.aspx index 8f9c2d5..b4fedf4 100644 --- a/FineUI.Examples/iframe/selectprovince1_child.aspx +++ b/FineUI.Examples/iframe/selectprovince1_child.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/iframe/selectprovince2.aspx b/FineUI.Examples/iframe/selectprovince2.aspx index 24e160c..b05e6c2 100644 --- a/FineUI.Examples/iframe/selectprovince2.aspx +++ b/FineUI.Examples/iframe/selectprovince2.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/selectprovince2_child.aspx b/FineUI.Examples/iframe/selectprovince2_child.aspx index df1d9a1..3c49937 100644 --- a/FineUI.Examples/iframe/selectprovince2_child.aspx +++ b/FineUI.Examples/iframe/selectprovince2_child.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/iframe/selectprovince3.aspx b/FineUI.Examples/iframe/selectprovince3.aspx index 026bac2..7c02212 100644 --- a/FineUI.Examples/iframe/selectprovince3.aspx +++ b/FineUI.Examples/iframe/selectprovince3.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/selectprovince3_child.aspx b/FineUI.Examples/iframe/selectprovince3_child.aspx index 35f4ae8..e100011 100644 --- a/FineUI.Examples/iframe/selectprovince3_child.aspx +++ b/FineUI.Examples/iframe/selectprovince3_child.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/iframe/selectprovince_executescript.aspx b/FineUI.Examples/iframe/selectprovince_executescript.aspx index 1ad27c3..ea216b5 100644 --- a/FineUI.Examples/iframe/selectprovince_executescript.aspx +++ b/FineUI.Examples/iframe/selectprovince_executescript.aspx @@ -7,7 +7,7 @@ - + diff --git a/FineUI.Examples/iframe/selectprovince_executescript_child.aspx b/FineUI.Examples/iframe/selectprovince_executescript_child.aspx index 36eea78..7fcfdaa 100644 --- a/FineUI.Examples/iframe/selectprovince_executescript_child.aspx +++ b/FineUI.Examples/iframe/selectprovince_executescript_child.aspx @@ -6,12 +6,7 @@ - - + diff --git a/FineUI.Examples/iframe/topmenu4/default.aspx b/FineUI.Examples/iframe/topmenu4/default.aspx index 499dcbb..2616722 100644 --- a/FineUI.Examples/iframe/topmenu4/default.aspx +++ b/FineUI.Examples/iframe/topmenu4/default.aspx @@ -100,7 +100,7 @@ // refreshWhenExist: 添加选项卡时,如果选项卡已经存在,是否刷新内部IFrame // refreshWhenTabChange: 切换选项卡时,是否刷新内部IFrame // hashWindow:需要更新Hash值的窗口对象,默认为当前window - F.util.initTreeTabStrip(tree, mainTabStrip, null, true, false, false); + F.initTreeTabStrip(tree, mainTabStrip, null, true, false, false); }; }); diff --git a/FineUI.Examples/iframe/triggerbox_iframe.aspx b/FineUI.Examples/iframe/triggerbox_iframe.aspx index dec5475..53b69ed 100644 --- a/FineUI.Examples/iframe/triggerbox_iframe.aspx +++ b/FineUI.Examples/iframe/triggerbox_iframe.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/triggerbox_iframe_iframe.aspx b/FineUI.Examples/iframe/triggerbox_iframe_iframe.aspx index 162a956..8c31932 100644 --- a/FineUI.Examples/iframe/triggerbox_iframe_iframe.aspx +++ b/FineUI.Examples/iframe/triggerbox_iframe_iframe.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/iframe/window.aspx b/FineUI.Examples/iframe/window.aspx index 4b9278e..86f9b94 100644 --- a/FineUI.Examples/iframe/window.aspx +++ b/FineUI.Examples/iframe/window.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/window2.aspx b/FineUI.Examples/iframe/window2.aspx index 90c55ef..2057746 100644 --- a/FineUI.Examples/iframe/window2.aspx +++ b/FineUI.Examples/iframe/window2.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/iframe/window2_iframe.aspx b/FineUI.Examples/iframe/window2_iframe.aspx index 17f050a..b76cfe1 100644 --- a/FineUI.Examples/iframe/window2_iframe.aspx +++ b/FineUI.Examples/iframe/window2_iframe.aspx @@ -5,12 +5,8 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 下面使用 Column 布局实现相同的效果: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/layout/hbox_form.aspx.cs b/FineUI.Examples/layout/hbox_form.aspx.cs new file mode 100644 index 0000000..dee18dd --- /dev/null +++ b/FineUI.Examples/layout/hbox_form.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.layout +{ + public partial class hbox_form : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + + } + } + + + + } +} diff --git a/FineUI.Examples/layout/hbox_form.aspx.designer.cs b/FineUI.Examples/layout/hbox_form.aspx.designer.cs new file mode 100644 index 0000000..d0d02ac --- /dev/null +++ b/FineUI.Examples/layout/hbox_form.aspx.designer.cs @@ -0,0 +1,159 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.layout { + + + public partial class hbox_form { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.SimpleForm SimpleForm1; + + /// + /// dpStartDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DatePicker dpStartDate; + + /// + /// dpEndDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DatePicker dpEndDate; + + /// + /// btnClearDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnClearDate; + + /// + /// btnSearch 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnSearch; + + /// + /// Panel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel3; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel2; + + /// + /// SimpleForm2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.SimpleForm SimpleForm2; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// DatePicker1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DatePicker DatePicker1; + + /// + /// DatePicker2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DatePicker DatePicker2; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button1; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + } +} diff --git a/FineUI.Examples/layout/hbox_scrollbar.aspx b/FineUI.Examples/layout/hbox_scrollbar.aspx new file mode 100644 index 0000000..a2dd76c --- /dev/null +++ b/FineUI.Examples/layout/hbox_scrollbar.aspx @@ -0,0 +1,37 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="hbox_scrollbar.aspx.cs" Inherits="FineUI.Examples.layout.hbox_scrollbar" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/layout/hbox_scrollbar.aspx.cs b/FineUI.Examples/layout/hbox_scrollbar.aspx.cs new file mode 100644 index 0000000..f7b1eee --- /dev/null +++ b/FineUI.Examples/layout/hbox_scrollbar.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.layout +{ + public partial class hbox_scrollbar : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + + } + } + + + + } +} diff --git a/FineUI.Examples/layout/hbox_scrollbar.aspx.designer.cs b/FineUI.Examples/layout/hbox_scrollbar.aspx.designer.cs new file mode 100644 index 0000000..b5c95da --- /dev/null +++ b/FineUI.Examples/layout/hbox_scrollbar.aspx.designer.cs @@ -0,0 +1,78 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.layout { + + + public partial class hbox_scrollbar { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Panel5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel5; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel1; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel2; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label3; + } +} diff --git a/FineUI.Examples/layout/region.aspx b/FineUI.Examples/layout/region.aspx index 77b2b54..eb127ee 100644 --- a/FineUI.Examples/layout/region.aspx +++ b/FineUI.Examples/layout/region.aspx @@ -5,12 +5,7 @@ - - + diff --git a/FineUI.Examples/layout/table.aspx b/FineUI.Examples/layout/table.aspx index e2cd81a..1cfee50 100644 --- a/FineUI.Examples/layout/table.aspx +++ b/FineUI.Examples/layout/table.aspx @@ -4,7 +4,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/layout/table_form.aspx.cs b/FineUI.Examples/layout/table_form.aspx.cs new file mode 100644 index 0000000..ebd26e9 --- /dev/null +++ b/FineUI.Examples/layout/table_form.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.layout +{ + public partial class table_form : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + + } + } + + + + } +} diff --git a/FineUI.Examples/layout/table_form.aspx.designer.cs b/FineUI.Examples/layout/table_form.aspx.designer.cs new file mode 100644 index 0000000..2dd47d4 --- /dev/null +++ b/FineUI.Examples/layout/table_form.aspx.designer.cs @@ -0,0 +1,114 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.layout { + + + public partial class table_form { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Form Form2; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel1; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// Panel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel3; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label2; + + /// + /// Panel4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel4; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label3; + + /// + /// Panel5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel5; + + /// + /// Label4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label4; + } +} diff --git a/FineUI.Examples/layout/vbox.aspx b/FineUI.Examples/layout/vbox.aspx index ccf20b0..921025b 100644 --- a/FineUI.Examples/layout/vbox.aspx +++ b/FineUI.Examples/layout/vbox.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/layout/vbox_autoheight.aspx b/FineUI.Examples/layout/vbox_autoheight.aspx new file mode 100644 index 0000000..4544543 --- /dev/null +++ b/FineUI.Examples/layout/vbox_autoheight.aspx @@ -0,0 +1,36 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="vbox_autoheight.aspx.cs" Inherits="FineUI.Examples.layout.vbox_autoheight" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/layout/vbox_autoheight.aspx.cs b/FineUI.Examples/layout/vbox_autoheight.aspx.cs new file mode 100644 index 0000000..a337e76 --- /dev/null +++ b/FineUI.Examples/layout/vbox_autoheight.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.layout +{ + public partial class vbox_autoheight : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + + } + } + + + + } +} diff --git a/FineUI.Examples/layout/vbox_autoheight.aspx.designer.cs b/FineUI.Examples/layout/vbox_autoheight.aspx.designer.cs new file mode 100644 index 0000000..29a6ef5 --- /dev/null +++ b/FineUI.Examples/layout/vbox_autoheight.aspx.designer.cs @@ -0,0 +1,78 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.layout { + + + public partial class vbox_autoheight { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Panel5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel5; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel1; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel2; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label3; + } +} diff --git a/FineUI.Examples/layout/vbox_collapse.aspx b/FineUI.Examples/layout/vbox_collapse.aspx new file mode 100644 index 0000000..bf51cf6 --- /dev/null +++ b/FineUI.Examples/layout/vbox_collapse.aspx @@ -0,0 +1,42 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="vbox_collapse.aspx.cs" Inherits="FineUI.Examples.layout.vbox_collapse" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/layout/vbox_collapse.aspx.cs b/FineUI.Examples/layout/vbox_collapse.aspx.cs new file mode 100644 index 0000000..352de47 --- /dev/null +++ b/FineUI.Examples/layout/vbox_collapse.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.layout +{ + public partial class vbox_collapse : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + + } + } + + + + } +} diff --git a/FineUI.Examples/layout/vbox_collapse.aspx.designer.cs b/FineUI.Examples/layout/vbox_collapse.aspx.designer.cs new file mode 100644 index 0000000..2e9f1ea --- /dev/null +++ b/FineUI.Examples/layout/vbox_collapse.aspx.designer.cs @@ -0,0 +1,96 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.layout { + + + public partial class vbox_collapse { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel2; + + /// + /// Panel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel3; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label2; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel1; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// Panel4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel4; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label3; + } +} diff --git a/FineUI.Examples/layout/vbox_form.aspx b/FineUI.Examples/layout/vbox_form.aspx new file mode 100644 index 0000000..fe2f21a --- /dev/null +++ b/FineUI.Examples/layout/vbox_form.aspx @@ -0,0 +1,30 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="vbox_form.aspx.cs" Inherits="FineUI.Examples.layout.vbox_form" %> + + + + + + + + + + + + + + + + + + + + + + + + 注:设置[个人简介]的 CssStyle="margin-bottom:0;",来去除底部外边距。 + + + diff --git a/FineUI.Examples/layout/vbox_form.aspx.cs b/FineUI.Examples/layout/vbox_form.aspx.cs new file mode 100644 index 0000000..d4437a5 --- /dev/null +++ b/FineUI.Examples/layout/vbox_form.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.layout +{ + public partial class vbox_form : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + + } + } + + + + } +} diff --git a/FineUI.Examples/layout/vbox_form.aspx.designer.cs b/FineUI.Examples/layout/vbox_form.aspx.designer.cs new file mode 100644 index 0000000..c2f16a2 --- /dev/null +++ b/FineUI.Examples/layout/vbox_form.aspx.designer.cs @@ -0,0 +1,69 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.layout { + + + public partial class vbox_form { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Form Panel1; + + /// + /// TextBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox1; + + /// + /// DropDownList1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.DropDownList DropDownList1; + + /// + /// TextArea1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextArea TextArea1; + } +} diff --git a/FineUI.Examples/layout/vbox_formgrid.aspx b/FineUI.Examples/layout/vbox_formgrid.aspx new file mode 100644 index 0000000..6b358b1 --- /dev/null +++ b/FineUI.Examples/layout/vbox_formgrid.aspx @@ -0,0 +1,136 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="vbox_formgrid.aspx.cs" Inherits="FineUI.Examples.iframe.vbox_formgrid" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/layout/vbox_formgrid.aspx.cs b/FineUI.Examples/layout/vbox_formgrid.aspx.cs new file mode 100644 index 0000000..0e11717 --- /dev/null +++ b/FineUI.Examples/layout/vbox_formgrid.aspx.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.iframe +{ + public partial class vbox_formgrid : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + AutoBindGrid(); + } + } + + #region BindGrid + + private void AutoBindGrid() + { + if (ViewState["BindGrid1"] != null && Convert.ToBoolean(ViewState["BindGrid1"])) + { + BindGrid(); + ViewState["BindGrid1"] = false; + } + else + { + BindGrid2(); + ViewState["BindGrid1"] = true; + } + } + + private void BindGrid() + { + DataTable table = DataSourceUtil.GetDataTable(); + + Grid2.DataSource = table; + Grid2.DataBind(); + } + + private void BindGrid2() + { + DataTable table = DataSourceUtil.GetDataTable2(); + + Grid2.DataSource = table; + Grid2.DataBind(); + } + + #endregion + + + protected void Grid2_PageIndexChange(object sender, GridPageEventArgs e) + { + Alert.Show(e.NewPageIndex.ToString()); + } + + + } +} diff --git a/FineUI.Examples/layout/vbox_formgrid.aspx.designer.cs b/FineUI.Examples/layout/vbox_formgrid.aspx.designer.cs new file mode 100644 index 0000000..0b81cd4 --- /dev/null +++ b/FineUI.Examples/layout/vbox_formgrid.aspx.designer.cs @@ -0,0 +1,339 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.iframe { + + + public partial class vbox_formgrid { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Panel7 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel7; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Toolbar Toolbar1; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button1; + + /// + /// ToolbarSeparator2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.ToolbarSeparator ToolbarSeparator2; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + + /// + /// Form5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Form Form5; + + /// + /// TextBox1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox1; + + /// + /// TextBox2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox2; + + /// + /// TextBox3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox3; + + /// + /// TextBox4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox4; + + /// + /// TextBox5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox5; + + /// + /// TextBox6 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox6; + + /// + /// TextBox7 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox7; + + /// + /// TextBox8 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox8; + + /// + /// TextBox9 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox9; + + /// + /// TextBox10 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox10; + + /// + /// TextBox11 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox11; + + /// + /// TextBox12 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox12; + + /// + /// TextBox13 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox13; + + /// + /// TextBox14 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox14; + + /// + /// TextBox15 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox15; + + /// + /// TextBox16 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox16; + + /// + /// TextBox17 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox17; + + /// + /// TextBox18 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox18; + + /// + /// TextBox19 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox19; + + /// + /// TextBox20 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox20; + + /// + /// TextBox21 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox21; + + /// + /// TextBox22 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.TextBox TextBox22; + + /// + /// Grid2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Grid Grid2; + + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Toolbar Toolbar2; + + /// + /// btnPopupWindow 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnPopupWindow; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.ToolbarSeparator ToolbarSeparator1; + + /// + /// btnCheckSelection 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnCheckSelection; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label2; + } +} diff --git a/FineUI.Examples/layout/vbox_hbox.aspx b/FineUI.Examples/layout/vbox_hbox.aspx new file mode 100644 index 0000000..99ebf4f --- /dev/null +++ b/FineUI.Examples/layout/vbox_hbox.aspx @@ -0,0 +1,68 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="vbox_hbox.aspx.cs" Inherits="FineUI.Examples.layout.vbox_hbox" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/layout/vbox_hbox.aspx.cs b/FineUI.Examples/layout/vbox_hbox.aspx.cs new file mode 100644 index 0000000..9dcc0ce --- /dev/null +++ b/FineUI.Examples/layout/vbox_hbox.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.layout +{ + public partial class vbox_hbox : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + + } + } + + + + } +} diff --git a/FineUI.Examples/layout/vbox_hbox.aspx.designer.cs b/FineUI.Examples/layout/vbox_hbox.aspx.designer.cs new file mode 100644 index 0000000..b8488b5 --- /dev/null +++ b/FineUI.Examples/layout/vbox_hbox.aspx.designer.cs @@ -0,0 +1,168 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.layout { + + + public partial class vbox_hbox { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel2; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel1; + + /// + /// Panel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel3; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// Panel4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel4; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label2; + + /// + /// Panel6 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel6; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label3; + + /// + /// Panel5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel5; + + /// + /// Panel7 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel7; + + /// + /// Label4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label4; + + /// + /// Panel8 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel8; + + /// + /// Label5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label5; + + /// + /// Panel9 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel9; + + /// + /// Label6 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label6; + } +} diff --git a/FineUI.Examples/layout/vbox_scrollbar.aspx b/FineUI.Examples/layout/vbox_scrollbar.aspx new file mode 100644 index 0000000..8f65c96 --- /dev/null +++ b/FineUI.Examples/layout/vbox_scrollbar.aspx @@ -0,0 +1,37 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="vbox_scrollbar.aspx.cs" Inherits="FineUI.Examples.layout.vbox_scrollbar" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/layout/vbox_scrollbar.aspx.cs b/FineUI.Examples/layout/vbox_scrollbar.aspx.cs new file mode 100644 index 0000000..6b9a9bc --- /dev/null +++ b/FineUI.Examples/layout/vbox_scrollbar.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; + +namespace FineUI.Examples.layout +{ + public partial class vbox_scrollbar : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + + } + } + + + + } +} diff --git a/FineUI.Examples/layout/vbox_scrollbar.aspx.designer.cs b/FineUI.Examples/layout/vbox_scrollbar.aspx.designer.cs new file mode 100644 index 0000000..b648428 --- /dev/null +++ b/FineUI.Examples/layout/vbox_scrollbar.aspx.designer.cs @@ -0,0 +1,78 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.layout { + + + public partial class vbox_scrollbar { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Panel5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel5; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel1; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label1; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Panel Panel2; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Label Label3; + } +} diff --git a/FineUI.Examples/master/Simple.Master.cs b/FineUI.Examples/master/Simple.Master.cs index 69dfd0e..3e1d044 100644 --- a/FineUI.Examples/master/Simple.Master.cs +++ b/FineUI.Examples/master/Simple.Master.cs @@ -20,7 +20,7 @@ namespace FineUI.Examples.master } - protected void Tree1_NodeCommand(object sender, FineUI.TreeCommandEventArgs e) + protected void Tree1_NodeCommand(object sender, TreeCommandEventArgs e) { if (ProcessLeftTreeNodeClick != null) { diff --git a/FineUI.Examples/master/SingleGrid.Master b/FineUI.Examples/master/SingleGrid.Master index 9b613e2..777c065 100644 --- a/FineUI.Examples/master/SingleGrid.Master +++ b/FineUI.Examples/master/SingleGrid.Master @@ -8,13 +8,7 @@ - - - + diff --git a/FineUI.Examples/master/formlist.aspx.cs b/FineUI.Examples/master/formlist.aspx.cs index 6ecfc60..7e4111c 100644 --- a/FineUI.Examples/master/formlist.aspx.cs +++ b/FineUI.Examples/master/formlist.aspx.cs @@ -44,7 +44,7 @@ namespace FineUI.Examples.master /// private int GetTotalCount() { - return GetDataTable2().Rows.Count; + return DataSourceUtil.GetDataTable2().Rows.Count; } /// @@ -59,7 +59,7 @@ namespace FineUI.Examples.master string sortField = Grid1.SortField; string sortDirection = Grid1.SortDirection; - DataTable table2 = GetDataTable2(); + DataTable table2 = DataSourceUtil.GetDataTable2(); DataView view2 = table2.DefaultView; view2.Sort = String.Format("{0} {1}", sortField, sortDirection); diff --git a/FineUI.Examples/master/list.aspx.cs b/FineUI.Examples/master/list.aspx.cs index 3873185..c8d4b4f 100644 --- a/FineUI.Examples/master/list.aspx.cs +++ b/FineUI.Examples/master/list.aspx.cs @@ -41,7 +41,7 @@ namespace FineUI.Examples.master /// private int GetTotalCount() { - return GetDataTable2().Rows.Count; + return DataSourceUtil.GetDataTable2().Rows.Count; } /// @@ -56,7 +56,7 @@ namespace FineUI.Examples.master string sortField = Grid1.SortField; string sortDirection = Grid1.SortDirection; - DataTable table2 = GetDataTable2(); + DataTable table2 = DataSourceUtil.GetDataTable2(); DataView view2 = table2.DefaultView; view2.Sort = String.Format("{0} {1}", sortField, sortDirection); diff --git a/FineUI.Examples/message/alert.aspx b/FineUI.Examples/message/alert.aspx new file mode 100644 index 0000000..78d9f91 --- /dev/null +++ b/FineUI.Examples/message/alert.aspx @@ -0,0 +1,25 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="alert.aspx.cs" Inherits="FineUI.Examples.message.alert" %> + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/message/alert.aspx.cs b/FineUI.Examples/message/alert.aspx.cs new file mode 100644 index 0000000..6417869 --- /dev/null +++ b/FineUI.Examples/message/alert.aspx.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.message +{ + public partial class alert : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void btnHello_Click(object sender, EventArgs e) + { + + Alert alert = new Alert(); + alert.CssClass = "myalert"; + alert.Message = "你好 FineUI!"; + alert.Icon = Icon.Book; + alert.Show(); + + } + + protected void btnHello2_Click(object sender, EventArgs e) + { + + Alert alert = new Alert(); + alert.Message = "你好 FineUI!"; + alert.IconUrl = "~/res/images/success.png"; + alert.Target = Target.Top; + alert.Show(); + + } + + } +} diff --git a/FineUI.Examples/message/alert.aspx.designer.cs b/FineUI.Examples/message/alert.aspx.designer.cs new file mode 100644 index 0000000..dd86b98 --- /dev/null +++ b/FineUI.Examples/message/alert.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.message { + + + public partial class alert { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// btnHello 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnHello; + + /// + /// btnHello2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnHello2; + } +} diff --git a/FineUI.Examples/message/alert_download.aspx b/FineUI.Examples/message/alert_download.aspx new file mode 100644 index 0000000..1ea7fcb --- /dev/null +++ b/FineUI.Examples/message/alert_download.aspx @@ -0,0 +1,18 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="alert_download.aspx.cs" + Inherits="FineUI.Examples.message.alert_download" %> + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/message/alert_download.aspx.cs b/FineUI.Examples/message/alert_download.aspx.cs new file mode 100644 index 0000000..35e2fb6 --- /dev/null +++ b/FineUI.Examples/message/alert_download.aspx.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.message +{ + public partial class alert_download : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + } + } + + protected void PageManager1_CustomEvent(object sender, CustomEventArgs e) + { + if (e.EventArgument == "Confirm_OK") + { + // 非AJAX回发 + Response.ClearContent(); + Response.AddHeader("content-disposition", "attachment; filename=alert_download.txt"); + Response.ContentType = "text/plain"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.Write("这是下载文件的内容!"); + Response.End(); + } + else if (e.EventArgument == "Confirm_Cancel") + { + // AJAX回发 + ShowNotify("点击了取消按钮!"); + } + } + + protected void btnOperation_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Confirm.GetShowReference("操作成功!点击确定按钮开始下载文件,点取消按钮弹出对话框", + String.Empty, + MessageBoxIcon.Question, + PageManager1.GetCustomEventReference(false, "Confirm_OK"), // 第一个参数 false 用来指定当前不是AJAX请求 + PageManager1.GetCustomEventReference("Confirm_Cancel"))); + } + + } +} diff --git a/FineUI.Examples/message/alert_download.aspx.designer.cs b/FineUI.Examples/message/alert_download.aspx.designer.cs new file mode 100644 index 0000000..692a729 --- /dev/null +++ b/FineUI.Examples/message/alert_download.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.message { + + + public partial class alert_download { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// btnOperation 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnOperation; + } +} diff --git a/FineUI.Examples/message/alert_download_hide.aspx b/FineUI.Examples/message/alert_download_hide.aspx new file mode 100644 index 0000000..4cccfb4 --- /dev/null +++ b/FineUI.Examples/message/alert_download_hide.aspx @@ -0,0 +1,24 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="alert_download_hide.aspx.cs" + Inherits="FineUI.Examples.message.alert_download_hide" %> + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/message/alert_download_hide.aspx.cs b/FineUI.Examples/message/alert_download_hide.aspx.cs new file mode 100644 index 0000000..65507c3 --- /dev/null +++ b/FineUI.Examples/message/alert_download_hide.aspx.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.message +{ + public partial class alert_download_hide : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + } + } + + protected void PageManager1_CustomEvent(object sender, CustomEventArgs e) + { + if (e.EventArgument == "Confirm_OK") + { + // 非AJAX回发 + Response.ClearContent(); + Response.AddHeader("content-disposition", "attachment; filename=alert_download.txt"); + Response.ContentType = "text/plain"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.Write("这是下载文件的内容!"); + Response.End(); + } + else if (e.EventArgument == "Confirm_Cancel") + { + // AJAX回发 + ShowNotify("点击了取消按钮!"); + } + } + + protected void btnOperation_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Window1.GetHideReference() + + Confirm.GetShowReference("操作成功!点击确定按钮开始下载文件,点取消按钮弹出对话框", + String.Empty, + MessageBoxIcon.Question, + PageManager1.GetCustomEventReference(false, "Confirm_OK"), // 第一个参数 false 用来指定当前不是AJAX请求 + PageManager1.GetCustomEventReference("Confirm_Cancel"))); + } + + } +} diff --git a/FineUI.Examples/message/alert_download_hide.aspx.designer.cs b/FineUI.Examples/message/alert_download_hide.aspx.designer.cs new file mode 100644 index 0000000..55e91a0 --- /dev/null +++ b/FineUI.Examples/message/alert_download_hide.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.message { + + + public partial class alert_download_hide { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Window Window1; + + /// + /// btnOperation 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnOperation; + } +} diff --git a/FineUI.Examples/message/alert_download_hideiframe.aspx b/FineUI.Examples/message/alert_download_hideiframe.aspx new file mode 100644 index 0000000..e549eef --- /dev/null +++ b/FineUI.Examples/message/alert_download_hideiframe.aspx @@ -0,0 +1,42 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="alert_download_hideiframe.aspx.cs" + Inherits="FineUI.Examples.message.alert_download_hideiframe" %> + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/message/alert_download_hideiframe.aspx.cs b/FineUI.Examples/message/alert_download_hideiframe.aspx.cs new file mode 100644 index 0000000..09cc587 --- /dev/null +++ b/FineUI.Examples/message/alert_download_hideiframe.aspx.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.message +{ + public partial class alert_download_hideiframe : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + } + else + { + string requestArgument = GetRequestEventArgument(); + + if (requestArgument == "Confirm_OK") + { + // 非AJAX回发 + Response.ClearContent(); + Response.AddHeader("content-disposition", "attachment; filename=alert_download.txt"); + Response.ContentType = "text/plain"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.Write("这是下载文件的内容!"); + Response.End(); + } + if (requestArgument == "Confirm_Cancel") + { + // AJAX回发 + ShowNotify("点击了取消按钮!"); + } + } + } + + + } +} diff --git a/FineUI.Examples/message/alert_download_hideiframe.aspx.designer.cs b/FineUI.Examples/message/alert_download_hideiframe.aspx.designer.cs new file mode 100644 index 0000000..f34592a --- /dev/null +++ b/FineUI.Examples/message/alert_download_hideiframe.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.message { + + + public partial class alert_download_hideiframe { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Window2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Window Window2; + } +} diff --git a/FineUI.Examples/message/alert_download_hideiframe_window.aspx b/FineUI.Examples/message/alert_download_hideiframe_window.aspx new file mode 100644 index 0000000..cd285c0 --- /dev/null +++ b/FineUI.Examples/message/alert_download_hideiframe_window.aspx @@ -0,0 +1,18 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="alert_download_hideiframe_window.aspx.cs" + Inherits="FineUI.Examples.message.alert_download_hideiframe_window" %> + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/message/alert_download_hideiframe_window.aspx.cs b/FineUI.Examples/message/alert_download_hideiframe_window.aspx.cs new file mode 100644 index 0000000..f262d51 --- /dev/null +++ b/FineUI.Examples/message/alert_download_hideiframe_window.aspx.cs @@ -0,0 +1,27 @@ +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.message +{ + public partial class alert_download_hideiframe_window : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + } + } + + protected void btnOperation_Click(object sender, EventArgs e) + { + // 不要在这里调用F.confirm,因为当前页面要被关闭,因此F.confirm的回调函数可能不能正确执行 + PageContext.RegisterStartupScript(ActiveWindow.GetHideReference() + "parent.showConfirm();"); + } + + } +} diff --git a/FineUI.Examples/message/alert_download_hideiframe_window.aspx.designer.cs b/FineUI.Examples/message/alert_download_hideiframe_window.aspx.designer.cs new file mode 100644 index 0000000..53b3ecc --- /dev/null +++ b/FineUI.Examples/message/alert_download_hideiframe_window.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.message { + + + public partial class alert_download_hideiframe_window { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// btnOperation 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnOperation; + } +} diff --git a/FineUI.Examples/message/confirm_buttons.aspx b/FineUI.Examples/message/confirm_buttons.aspx new file mode 100644 index 0000000..d9874d4 --- /dev/null +++ b/FineUI.Examples/message/confirm_buttons.aspx @@ -0,0 +1,46 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="confirm_buttons.aspx.cs" + Inherits="FineUI.Examples.message.confirm_buttons" %> + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/message/confirm_buttons.aspx.cs b/FineUI.Examples/message/confirm_buttons.aspx.cs new file mode 100644 index 0000000..d61d71d --- /dev/null +++ b/FineUI.Examples/message/confirm_buttons.aspx.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.message +{ + public partial class confirm_buttons : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + // 页面第一次加载 + } + else + { + string eventArg = GetRequestEventArgument(); + if (eventArg == "ConfirmOK") + { + ShowNotify("你点击了[直接退出]按钮!"); + } + else + { + ShowNotify("你点击了[不退出]按钮!"); + } + } + } + + + } +} diff --git a/FineUI.Examples/message/confirm_buttons.aspx.designer.cs b/FineUI.Examples/message/confirm_buttons.aspx.designer.cs new file mode 100644 index 0000000..e0025df --- /dev/null +++ b/FineUI.Examples/message/confirm_buttons.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.message { + + + public partial class confirm_buttons { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// btnOperation1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnOperation1; + } +} diff --git a/FineUI.Examples/message/confirm_cancel.aspx b/FineUI.Examples/message/confirm_cancel.aspx new file mode 100644 index 0000000..b58b9dc --- /dev/null +++ b/FineUI.Examples/message/confirm_cancel.aspx @@ -0,0 +1,28 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="confirm_cancel.aspx.cs" + Inherits="FineUI.Examples.message.confirm_cancel" %> + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/message/confirm_cancel.aspx.cs b/FineUI.Examples/message/confirm_cancel.aspx.cs new file mode 100644 index 0000000..95d0109 --- /dev/null +++ b/FineUI.Examples/message/confirm_cancel.aspx.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.message +{ + public partial class confirm_cancel : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + btnOperation2.OnClientClick = Confirm.GetShowReference("确认执行操作二?", String.Empty, MessageBoxIcon.Question, btnOperation2.GetPostBackEventReference(), String.Empty); + + btnOperation3.OnClientClick = Confirm.GetShowReference("确认执行操作三?", String.Empty, MessageBoxIcon.Question, btnOperation3.GetPostBackEventReference(), btnOperation3.GetPostBackEventReference("Cancel")); + } + } + + protected void btnOperation1_Click(object sender, EventArgs e) + { + Alert.Show("执行了操作一!"); + } + + protected void btnOperation2_Click(object sender, EventArgs e) + { + Alert.Show("执行了操作二!"); + } + + + protected void btnOperation3_Click(object sender, EventArgs e) + { + if (GetRequestEventArgument() == "Cancel") + { + Alert.Show("取消执行操作三!"); + } + else + { + Alert.Show("执行了操作三!"); + } + + } + + } +} diff --git a/FineUI.Examples/message/confirm_cancel.aspx.designer.cs b/FineUI.Examples/message/confirm_cancel.aspx.designer.cs new file mode 100644 index 0000000..d3eb543 --- /dev/null +++ b/FineUI.Examples/message/confirm_cancel.aspx.designer.cs @@ -0,0 +1,60 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.message { + + + public partial class confirm_cancel { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// btnOperation1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnOperation1; + + /// + /// btnOperation2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnOperation2; + + /// + /// btnOperation3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnOperation3; + } +} diff --git a/FineUI.Examples/message/confirm_cancel_customevent.aspx b/FineUI.Examples/message/confirm_cancel_customevent.aspx new file mode 100644 index 0000000..4d9aa59 --- /dev/null +++ b/FineUI.Examples/message/confirm_cancel_customevent.aspx @@ -0,0 +1,17 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="confirm_cancel_customevent.aspx.cs" + Inherits="FineUI.Examples.message.confirm_cancel_customevent" %> + + + + + + + + + + + + + + + diff --git a/FineUI.Examples/message/confirm_cancel_customevent.aspx.cs b/FineUI.Examples/message/confirm_cancel_customevent.aspx.cs new file mode 100644 index 0000000..8a6ffe5 --- /dev/null +++ b/FineUI.Examples/message/confirm_cancel_customevent.aspx.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.message +{ + public partial class confirm_cancel_customevent : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + btnOperation.OnClientClick = Confirm.GetShowReference("确认执行操作?", + String.Empty, + MessageBoxIcon.Question, + PageManager1.GetCustomEventReference("Confirm_OK"), + PageManager1.GetCustomEventReference("Confirm_Cancel")); + } + } + + + protected void PageManager1_CustomEvent(object sender, CustomEventArgs e) + { + if (e.EventArgument == "Confirm_OK") + { + Alert.Show("执行了确定操作!"); + } + else if (e.EventArgument == "Confirm_Cancel") + { + Alert.Show("执行了取消操作!"); + } + } + + } +} diff --git a/FineUI.Examples/message/confirm_cancel_customevent.aspx.designer.cs b/FineUI.Examples/message/confirm_cancel_customevent.aspx.designer.cs new file mode 100644 index 0000000..bcec9e3 --- /dev/null +++ b/FineUI.Examples/message/confirm_cancel_customevent.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.message { + + + public partial class confirm_cancel_customevent { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// btnOperation 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnOperation; + } +} diff --git a/FineUI.Examples/other/addtab.aspx b/FineUI.Examples/other/addtab.aspx index 9f2b0a1..ddebbfe 100644 --- a/FineUI.Examples/other/addtab.aspx +++ b/FineUI.Examples/other/addtab.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/other/ajax_loading.aspx b/FineUI.Examples/other/ajax_loading.aspx index 3bba03d..30d503a 100644 --- a/FineUI.Examples/other/ajax_loading.aspx +++ b/FineUI.Examples/other/ajax_loading.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/other/authentication_timeout.aspx b/FineUI.Examples/other/authentication_timeout.aspx new file mode 100644 index 0000000..1ce620a --- /dev/null +++ b/FineUI.Examples/other/authentication_timeout.aspx @@ -0,0 +1,63 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="authentication_timeout.aspx.cs" Inherits="FineUI.Examples.other.authentication_timeout" %> + + + + + + + + + + + + + + + + + + + + + + + + 请尝试如下两种不同操作步骤: + + + 操作一: + + 刷新页面 + 点击按钮2 -> 直接跳转到首页 + + + 操作二: + + 刷新页面 + 点击按钮1 + 点击按钮2 -> 首先弹出确认框,点击确认后才跳转到首页;如果点击取消,则留在本页 + + + + + diff --git a/FineUI.Examples/other/authentication_timeout.aspx.cs b/FineUI.Examples/other/authentication_timeout.aspx.cs new file mode 100644 index 0000000..21bce64 --- /dev/null +++ b/FineUI.Examples/other/authentication_timeout.aspx.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; + +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.other +{ + public partial class authentication_timeout : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void Button2_Click(object sender, EventArgs e) + { + Response.Redirect(ResolveUrl("~/default.aspx?ReturnUrl=%2fother%2fauthentication_timeout.aspx")); + } + + + } +} \ No newline at end of file diff --git a/FineUI.Examples/other/authentication_timeout.aspx.designer.cs b/FineUI.Examples/other/authentication_timeout.aspx.designer.cs new file mode 100644 index 0000000..c7c5297 --- /dev/null +++ b/FineUI.Examples/other/authentication_timeout.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.other { + + + public partial class authentication_timeout { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// btnRegisterHook 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnRegisterHook; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + } +} diff --git a/FineUI.Examples/other/authentication_timeout_async.aspx b/FineUI.Examples/other/authentication_timeout_async.aspx new file mode 100644 index 0000000..1c4cbd4 --- /dev/null +++ b/FineUI.Examples/other/authentication_timeout_async.aspx @@ -0,0 +1,74 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="authentication_timeout_async.aspx.cs" Inherits="FineUI.Examples.other.authentication_timeout_async" %> + + + + + + + + + + + + + + + + + + + + + + + + 请尝试如下两种不同操作步骤: + + + 操作一: + + 刷新页面 + 点击按钮2 -> 直接跳转到首页 + + + 操作二: + + 刷新页面 + 点击按钮1 + 点击按钮2 -> 首先弹出确认框,点击确认后才跳转到首页;如果点击取消,则留在本页 + + + + + diff --git a/FineUI.Examples/other/authentication_timeout_async.aspx.cs b/FineUI.Examples/other/authentication_timeout_async.aspx.cs new file mode 100644 index 0000000..8077a0c --- /dev/null +++ b/FineUI.Examples/other/authentication_timeout_async.aspx.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; + +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUI.Examples.other +{ + public partial class authentication_timeout_async : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void Button2_Click(object sender, EventArgs e) + { + Response.Redirect(ResolveUrl("~/default.aspx?ReturnUrl=%2fother%2fauthentication_timeout_async.aspx")); + } + + + } +} \ No newline at end of file diff --git a/FineUI.Examples/other/authentication_timeout_async.aspx.designer.cs b/FineUI.Examples/other/authentication_timeout_async.aspx.designer.cs new file mode 100644 index 0000000..cc8ff30 --- /dev/null +++ b/FineUI.Examples/other/authentication_timeout_async.aspx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.other { + + + public partial class authentication_timeout_async { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// btnRegisterHook 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button btnRegisterHook; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + } +} diff --git a/FineUI.Examples/other/cssclass.aspx b/FineUI.Examples/other/cssclass.aspx index be6ab6b..faf972a 100644 --- a/FineUI.Examples/other/cssclass.aspx +++ b/FineUI.Examples/other/cssclass.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/toolbar/menu_dynamic.aspx b/FineUI.Examples/toolbar/menu_dynamic.aspx index 3012867..fccdb2f 100644 --- a/FineUI.Examples/toolbar/menu_dynamic.aspx +++ b/FineUI.Examples/toolbar/menu_dynamic.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/toolbar/menu_dynamic2.aspx b/FineUI.Examples/toolbar/menu_dynamic2.aspx index 098f8d8..bec6a24 100644 --- a/FineUI.Examples/toolbar/menu_dynamic2.aspx +++ b/FineUI.Examples/toolbar/menu_dynamic2.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/toolbar/menu_hideonclick.aspx b/FineUI.Examples/toolbar/menu_hideonclick.aspx index c9ec235..5979437 100644 --- a/FineUI.Examples/toolbar/menu_hideonclick.aspx +++ b/FineUI.Examples/toolbar/menu_hideonclick.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/toolbar/toolbar_fill.aspx b/FineUI.Examples/toolbar/toolbar_fill.aspx new file mode 100644 index 0000000..6c01db3 --- /dev/null +++ b/FineUI.Examples/toolbar/toolbar_fill.aspx @@ -0,0 +1,53 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="toolbar_fill.aspx.cs" Inherits="FineUI.Examples.toolbar.toolbar_fill" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 乔布斯 + + + 乔布斯于1955年2月24日出生,苹果创始人之一,近年来多次被评为全美最佳CEO,业界评论“苹果就是乔布斯,乔布斯就是苹果”。在乔布斯的带领下,苹果股价去年一路飙升,超越微软成为世界第一大科技公司,今年8月苹果超越埃克森美孚成为全球最大市值企业,截止上季度持有现金达到762亿美金,甚至超过了美国政府国库存款。 + + + 遗憾的是,苹果的取得巨大成功还是无法给乔布斯一个健康的身体,乔布斯2003年被发现患有胰脏癌,随后又查出肝癌,危在旦夕的乔布斯在经历了8年的抗癌斗争、3次病休、若干次手术后,于2011年8月25日正式宣布从CEO位置辞职转做公司董事长,原COO库克正式接任乔布斯任CEO。2011年10月6日,乔布斯在苹果发布iPhone 4S后的第二天与世长辞。 + + + + + + + diff --git a/FineUI.Examples/toolbar/toolbar_fill.aspx.cs b/FineUI.Examples/toolbar/toolbar_fill.aspx.cs new file mode 100644 index 0000000..0fe9957 --- /dev/null +++ b/FineUI.Examples/toolbar/toolbar_fill.aspx.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.Xml; +using System.IO; +using System.Reflection; + +namespace FineUI.Examples.toolbar +{ + public partial class toolbar_fill : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + } + + + } +} diff --git a/FineUI.Examples/toolbar/toolbar_fill.aspx.designer.cs b/FineUI.Examples/toolbar/toolbar_fill.aspx.designer.cs new file mode 100644 index 0000000..75f7f5a --- /dev/null +++ b/FineUI.Examples/toolbar/toolbar_fill.aspx.designer.cs @@ -0,0 +1,150 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.toolbar { + + + public partial class toolbar_fill { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Button1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button1; + + /// + /// Button2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button2; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.ToolbarFill ToolbarFill1; + + /// + /// Button3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button3; + + /// + /// Button4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button4; + + /// + /// Button5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button5; + + /// + /// Button6 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button6; + + /// + /// ToolbarFill2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.ToolbarFill ToolbarFill2; + + /// + /// Button7 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button7; + + /// + /// Button8 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button8; + + /// + /// ToolbarFill3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.ToolbarFill ToolbarFill3; + + /// + /// Button9 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button9; + + /// + /// Button10 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Button Button10; + } +} diff --git a/FineUI.Examples/toolbar/toolbar_iframe.aspx b/FineUI.Examples/toolbar/toolbar_iframe.aspx index 5e67a26..3186c29 100644 --- a/FineUI.Examples/toolbar/toolbar_iframe.aspx +++ b/FineUI.Examples/toolbar/toolbar_iframe.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/toolbar/toolbar_images.aspx b/FineUI.Examples/toolbar/toolbar_images.aspx index beea0fb..2b0fb61 100644 --- a/FineUI.Examples/toolbar/toolbar_images.aspx +++ b/FineUI.Examples/toolbar/toolbar_images.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/toolbar/toolbar_images_fixedwidth.aspx b/FineUI.Examples/toolbar/toolbar_images_fixedwidth.aspx index 8a7d21f..74d84fa 100644 --- a/FineUI.Examples/toolbar/toolbar_images_fixedwidth.aspx +++ b/FineUI.Examples/toolbar/toolbar_images_fixedwidth.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/tree/checkbox/tree_checkall.aspx b/FineUI.Examples/tree/checkbox/tree_checkall.aspx index c61e453..7801adf 100644 --- a/FineUI.Examples/tree/checkbox/tree_checkall.aspx +++ b/FineUI.Examples/tree/checkbox/tree_checkall.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/tree/checkbox/tree_checkall.aspx.cs b/FineUI.Examples/tree/checkbox/tree_checkall.aspx.cs index 3716df3..6f27795 100644 --- a/FineUI.Examples/tree/checkbox/tree_checkall.aspx.cs +++ b/FineUI.Examples/tree/checkbox/tree_checkall.aspx.cs @@ -18,7 +18,7 @@ namespace FineUI.Examples.tree.checkbox } - protected void Tree1_NodeCheck(object sender, FineUI.TreeCheckEventArgs e) + protected void Tree1_NodeCheck(object sender, TreeCheckEventArgs e) { if (e.Checked) { @@ -33,7 +33,7 @@ namespace FineUI.Examples.tree.checkbox #region 另外一种方法 - //protected void Tree1_NodeCheck(object sender, FineUI.TreeCheckEventArgs e) + //protected void Tree1_NodeCheck(object sender, TreeCheckEventArgs e) //{ // if (!e.Node.Leaf) // { diff --git a/FineUI.Examples/tree/checkbox/tree_checked.aspx b/FineUI.Examples/tree/checkbox/tree_checked.aspx index 7b0ef34..57e8998 100644 --- a/FineUI.Examples/tree/checkbox/tree_checked.aspx +++ b/FineUI.Examples/tree/checkbox/tree_checked.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/tree/databind/tree_datasource.aspx b/FineUI.Examples/tree/databind/tree_datasource.aspx index 73fd0ab..6f974ad 100644 --- a/FineUI.Examples/tree/databind/tree_datasource.aspx +++ b/FineUI.Examples/tree/databind/tree_datasource.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/tree/databind/tree_datatable.aspx b/FineUI.Examples/tree/databind/tree_datatable.aspx index fe2dd47..c632a13 100644 --- a/FineUI.Examples/tree/databind/tree_datatable.aspx +++ b/FineUI.Examples/tree/databind/tree_datatable.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/tree/databind/tree_document.aspx b/FineUI.Examples/tree/databind/tree_document.aspx index 1be7a13..bd1eb44 100644 --- a/FineUI.Examples/tree/databind/tree_document.aspx +++ b/FineUI.Examples/tree/databind/tree_document.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/tree/databind/tree_sitemap.aspx b/FineUI.Examples/tree/databind/tree_sitemap.aspx index acf788a..037ef2a 100644 --- a/FineUI.Examples/tree/databind/tree_sitemap.aspx +++ b/FineUI.Examples/tree/databind/tree_sitemap.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/tree/select/tree_multi_select.aspx b/FineUI.Examples/tree/select/tree_multi_select.aspx index 40d2999..70cf61e 100644 --- a/FineUI.Examples/tree/select/tree_multi_select.aspx +++ b/FineUI.Examples/tree/select/tree_multi_select.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/tree/select/tree_multi_select_selectable.aspx b/FineUI.Examples/tree/select/tree_multi_select_selectable.aspx index bbf6ee5..df49c82 100644 --- a/FineUI.Examples/tree/select/tree_multi_select_selectable.aspx +++ b/FineUI.Examples/tree/select/tree_multi_select_selectable.aspx @@ -6,7 +6,7 @@ - + diff --git a/FineUI.Examples/tree/select/tree_nodecommand.aspx b/FineUI.Examples/tree/select/tree_nodecommand.aspx index 5ed2842..8696db2 100644 --- a/FineUI.Examples/tree/select/tree_nodecommand.aspx +++ b/FineUI.Examples/tree/select/tree_nodecommand.aspx @@ -5,7 +5,7 @@ - + diff --git a/FineUI.Examples/tree/select/tree_nodecommand.aspx.cs b/FineUI.Examples/tree/select/tree_nodecommand.aspx.cs index b90db67..f416dbf 100644 --- a/FineUI.Examples/tree/select/tree_nodecommand.aspx.cs +++ b/FineUI.Examples/tree/select/tree_nodecommand.aspx.cs @@ -18,7 +18,7 @@ namespace FineUI.Examples.tree.select } - protected void Tree1_NodeCommand(object sender, FineUI.TreeCommandEventArgs e) + protected void Tree1_NodeCommand(object sender, TreeCommandEventArgs e) { labResult.Text = "你点击了树节点:" + e.Node.Text; } diff --git a/FineUI.Examples/tree/select/tree_select.aspx b/FineUI.Examples/tree/select/tree_select.aspx index dbc44cd..eee06d7 100644 --- a/FineUI.Examples/tree/select/tree_select.aspx +++ b/FineUI.Examples/tree/select/tree_select.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/tree/tree.aspx b/FineUI.Examples/tree/tree.aspx index d2665ae..aab31f0 100644 --- a/FineUI.Examples/tree/tree.aspx +++ b/FineUI.Examples/tree/tree.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/tree/tree_ajax.aspx b/FineUI.Examples/tree/tree_ajax.aspx index 588bede..70bee79 100644 --- a/FineUI.Examples/tree/tree_ajax.aspx +++ b/FineUI.Examples/tree/tree_ajax.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/tree/tree_contextmenu.aspx b/FineUI.Examples/tree/tree_contextmenu.aspx new file mode 100644 index 0000000..0a0659c --- /dev/null +++ b/FineUI.Examples/tree/tree_contextmenu.aspx @@ -0,0 +1,130 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="tree_contextmenu.aspx.cs" Inherits="FineUI.Examples.tree.tree_contextmenu" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 注:在叶子节点上点击右键,则弹出菜单的菜单项都是禁用状态。 + + + + diff --git a/FineUI.Examples/tree/tree_contextmenu.aspx.cs b/FineUI.Examples/tree/tree_contextmenu.aspx.cs new file mode 100644 index 0000000..c2b7535 --- /dev/null +++ b/FineUI.Examples/tree/tree_contextmenu.aspx.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; +using System.Xml; + +namespace FineUI.Examples.tree +{ + public partial class tree_contextmenu : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + + } + } + + } +} diff --git a/FineUI.Examples/tree/tree_contextmenu.aspx.designer.cs b/FineUI.Examples/tree/tree_contextmenu.aspx.designer.cs new file mode 100644 index 0000000..26cce7f --- /dev/null +++ b/FineUI.Examples/tree/tree_contextmenu.aspx.designer.cs @@ -0,0 +1,69 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.tree { + + + public partial class tree_contextmenu { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Tree1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Tree Tree1; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Menu Menu1; + + /// + /// btnExpandNode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.MenuButton btnExpandNode; + + /// + /// btnCollapseNode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.MenuButton btnCollapseNode; + } +} diff --git a/FineUI.Examples/tree/tree_expand.aspx b/FineUI.Examples/tree/tree_expand.aspx index 8d86204..5954347 100644 --- a/FineUI.Examples/tree/tree_expand.aspx +++ b/FineUI.Examples/tree/tree_expand.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/tree/tree_icon.aspx b/FineUI.Examples/tree/tree_icon.aspx index 098fd8f..d37f78d 100644 --- a/FineUI.Examples/tree/tree_icon.aspx +++ b/FineUI.Examples/tree/tree_icon.aspx @@ -4,7 +4,7 @@ - + diff --git a/FineUI.Examples/tree/tree_node_cssclass.aspx b/FineUI.Examples/tree/tree_node_cssclass.aspx new file mode 100644 index 0000000..5a5de80 --- /dev/null +++ b/FineUI.Examples/tree/tree_node_cssclass.aspx @@ -0,0 +1,51 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="tree_node_cssclass.aspx.cs" Inherits="FineUI.Examples.tree.tree_node_cssclass" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 注:本示例高亮显示[河南省]和[安徽省]两个节点。 + + + diff --git a/FineUI.Examples/tree/tree_node_cssclass.aspx.cs b/FineUI.Examples/tree/tree_node_cssclass.aspx.cs new file mode 100644 index 0000000..ca87da5 --- /dev/null +++ b/FineUI.Examples/tree/tree_node_cssclass.aspx.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Text; +using System.IO; +using System.Xml; + +namespace FineUI.Examples.tree +{ + public partial class tree_node_cssclass : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + Tree1.SelectedNodeID = "zhumadian"; + } + } + + } +} diff --git a/FineUI.Examples/tree/tree_node_cssclass.aspx.designer.cs b/FineUI.Examples/tree/tree_node_cssclass.aspx.designer.cs new file mode 100644 index 0000000..7e97a53 --- /dev/null +++ b/FineUI.Examples/tree/tree_node_cssclass.aspx.designer.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// 自动生成> +//------------------------------------------------------------------------------ + +namespace FineUI.Examples.tree { + + + public partial class tree_node_cssclass { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.PageManager PageManager1; + + /// + /// Tree1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUI.Tree Tree1; + } +} diff --git a/FineUI.Examples/tree/tree_nodedatabound.aspx b/FineUI.Examples/tree/tree_nodedatabound.aspx index da0c067..8609dad 100644 --- a/FineUI.Examples/tree/tree_nodedatabound.aspx +++ b/FineUI.Examples/tree/tree_nodedatabound.aspx @@ -7,7 +7,7 @@ - +
{0}
+ 乔布斯 +
+ 乔布斯于1955年2月24日出生,苹果创始人之一,近年来多次被评为全美最佳CEO,业界评论“苹果就是乔布斯,乔布斯就是苹果”。在乔布斯的带领下,苹果股价去年一路飙升,超越微软成为世界第一大科技公司,今年8月苹果超越埃克森美孚成为全球最大市值企业,截止上季度持有现金达到762亿美金,甚至超过了美国政府国库存款。 +
+ 遗憾的是,苹果的取得巨大成功还是无法给乔布斯一个健康的身体,乔布斯2003年被发现患有胰脏癌,随后又查出肝癌,危在旦夕的乔布斯在经历了8年的抗癌斗争、3次病休、若干次手术后,于2011年8月25日正式宣布从CEO位置辞职转做公司董事长,原COO库克正式接任乔布斯任CEO。2011年10月6日,乔布斯在苹果发布iPhone 4S后的第二天与世长辞。 +