From 79ad9e6bc208bf0932c8dcfaff996a1a776cd874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E7=94=9F=E7=9F=B3=E4=B8=8A?= Date: Sun, 10 Jan 2016 01:19:30 -0500 Subject: [PATCH] v4.2.3 --- FineUI.Examples/FineUI.Examples.csproj | 736 +- FineUI.Examples/Web.config | 21 +- FineUI.Examples/Web.config_for_VS2013 | 84 + FineUI.Examples/bin/CKEditor.NET.dll | Bin 113152 -> 0 bytes FineUI.Examples/bin/FineUI.Examples.dll | Bin 287744 -> 0 bytes FineUI.Examples/bin/FineUI.dll | Bin 641024 -> 0 bytes FineUI.Examples/bin/FineUI.xml | 21256 ---------------- FineUI.Examples/bin/FredCK.FCKeditorV2.dll | Bin 45056 -> 0 bytes FineUI.Examples/bin/Newtonsoft.Json.dll | Bin 440320 -> 0 bytes .../bin/Wilco.SyntaxHighlighter.dll | Bin 303104 -> 0 bytes FineUI.Examples/default.aspx | 145 +- FineUI.Examples/default.aspx.cs | 9 + FineUI.Examples/default.aspx.designer.cs | 90 +- FineUI.Examples/extjs_builder/js/F/F.ajax.js | 235 +- FineUI.Examples/extjs_builder/js/F/F.util.js | 365 +- FineUI.Examples/extjs_builder/js/F/F.wnd.js | 142 +- .../extjs_builder/js/F/extender.js | 607 +- .../extjs_builder/js/lang/f-lang-zh_CN.js | 1 - .../js/修改ext-all.js(为了支持 IE11).txt | 10 + FineUI.Examples/extjs_builder/res/FineUI.css | 6 + FineUI.Examples/extjs_builder/version.txt | 2 +- FineUI.Examples/form/calendar.aspx | 2 +- FineUI.Examples/form/checkbox.aspx | 2 +- FineUI.Examples/form/checkboxlist.aspx | 6 +- FineUI.Examples/form/checkboxlist_update.aspx | 2 +- FineUI.Examples/form/datepicker.aspx | 2 +- .../form/datepicker_autopostback.aspx | 2 +- FineUI.Examples/form/datepicker_range.aspx | 2 +- FineUI.Examples/form/fileupload.aspx | 2 +- .../form/fileupload_autopostback.aspx | 2 +- FineUI.Examples/form/fileupload_toolbar.aspx | 2 +- FineUI.Examples/form/form.aspx | 6 +- FineUI.Examples/form/form_center_button.aspx | 2 +- FineUI.Examples/form/form_columnwidths.aspx | 86 + .../form/form_columnwidths.aspx.cs | 27 + .../form/form_columnwidths.aspx.designer.cs | 159 + FineUI.Examples/form/form_compare.aspx | 2 +- FineUI.Examples/form/form_disabled.aspx | 35 +- FineUI.Examples/form/form_disabled.aspx.cs | 10 +- .../form/form_disabled.aspx.designer.cs | 18 + FineUI.Examples/form/form_dynamic.aspx | 2 +- FineUI.Examples/form/form_hide_field.aspx | 51 +- FineUI.Examples/form/form_hide_field.aspx.cs | 18 +- .../form/form_hide_field.aspx.designer.cs | 44 +- FineUI.Examples/form/form_labelwidth.aspx | 53 + FineUI.Examples/form/form_labelwidth.aspx.cs | 27 + .../form/form_labelwidth.aspx.designer.cs | 96 + FineUI.Examples/form/form_longlabel.aspx | 30 + FineUI.Examples/form/form_longlabel.aspx.cs | 26 + .../form/form_longlabel.aspx.designer.cs | 87 + FineUI.Examples/form/form_reset.aspx | 2 +- FineUI.Examples/form/form_validate.aspx | 2 +- FineUI.Examples/form/htmleditor.aspx | 2 +- FineUI.Examples/form/hyperlink.aspx | 2 +- FineUI.Examples/form/image.aspx | 2 +- FineUI.Examples/form/label.aspx | 2 +- FineUI.Examples/form/layout_center_label.aspx | 68 + .../form/layout_center_label.aspx.cs | 28 + .../form/layout_center_label.aspx.designer.cs | 105 + FineUI.Examples/form/layout_checkout.aspx | 2 +- FineUI.Examples/form/layout_contactus.aspx | 2 +- .../form/layout_multiline_buttons.aspx | 54 + .../form/layout_multiline_buttons.aspx.cs | 28 + .../layout_multiline_buttons.aspx.designer.cs | 123 + FineUI.Examples/form/layout_panel.aspx | 2 +- FineUI.Examples/form/layout_panel_column.aspx | 79 + .../form/layout_panel_column.aspx.cs | 23 + .../form/layout_panel_column.aspx.designer.cs | 204 + FineUI.Examples/form/numberbox.aspx | 2 +- FineUI.Examples/form/radiobutton.aspx | 2 +- FineUI.Examples/form/radiobuttonlist.aspx | 6 +- .../form/radiobuttonlist_update.aspx | 2 +- FineUI.Examples/form/textarea_autogrow.aspx | 2 +- FineUI.Examples/form/textbox.aspx | 2 +- .../form/textbox_autopostback.aspx | 2 +- FineUI.Examples/form/timepicker.aspx | 2 +- FineUI.Examples/form/tooltip.aspx | 2 +- FineUI.Examples/form/triggerbox.aspx | 2 +- FineUI.Examples/form/twintriggerbox.aspx | 2 +- FineUI.Examples/grid/grid.aspx | 2 +- FineUI.Examples/grid/grid.aspx.cs | 2 +- FineUI.Examples/grid/grid_aspnet.aspx | 2 +- FineUI.Examples/grid/grid_aspnet.aspx.cs | 2 +- .../grid/grid_aspnet_rowdatabound.aspx | 2 +- .../grid/grid_aspnet_rowdatabound.aspx.cs | 2 +- FineUI.Examples/grid/grid_centercolumn.aspx | 2 +- .../grid/grid_centercolumn.aspx.cs | 2 +- FineUI.Examples/grid/grid_checkall.aspx | 2 +- FineUI.Examples/grid/grid_checkall.aspx.cs | 2 +- .../grid_checkall_keepcurrentselection.aspx | 49 + ...grid_checkall_keepcurrentselection.aspx.cs | 70 + ...kall_keepcurrentselection.aspx.designer.cs | 87 + FineUI.Examples/grid/grid_checkall_only.aspx | 2 +- .../grid/grid_checkall_only.aspx.cs | 2 +- .../grid/grid_checkall_singleselect.aspx | 2 +- .../grid/grid_checkall_singleselect.aspx.cs | 2 +- FineUI.Examples/grid/grid_checkboxfield.aspx | 2 +- .../grid/grid_checkboxfield.aspx.cs | 4 +- .../grid/grid_checkboxfield_autopostback.aspx | 2 +- .../grid_checkboxfield_autopostback.aspx.cs | 4 +- .../grid/grid_checkboxfield_checkall.aspx | 2 +- .../grid/grid_checkboxfield_checkall.aspx.cs | 4 +- .../grid/grid_checkboxfield_rowcheckall.aspx | 2 +- .../grid_checkboxfield_rowcheckall.aspx.cs | 2 +- ..._checkboxfield_rowcheckall_clientside.aspx | 2 +- ...eckboxfield_rowcheckall_clientside.aspx.cs | 2 +- ...checkboxfield_rowcheckall_contextmenu.aspx | 2 +- ...ckboxfield_rowcheckall_contextmenu.aspx.cs | 2 +- FineUI.Examples/grid/grid_column_lines.aspx | 2 +- .../grid/grid_column_lines.aspx.cs | 2 +- .../grid/grid_complex_property.aspx | 2 +- .../grid/grid_dynamic_columns.aspx | 2 +- .../grid/grid_dynamic_columns.aspx.cs | 2 +- .../grid/grid_dynamic_columns2.aspx | 2 +- .../grid/grid_dynamic_columns2.aspx.cs | 2 +- FineUI.Examples/grid/grid_edit.aspx | 2 +- FineUI.Examples/grid/grid_edit.aspx.cs | 6 +- FineUI.Examples/grid/grid_edit_cart.aspx | 32 +- .../grid/grid_edit_checkboxlist.aspx | 2 +- .../grid/grid_edit_checkboxlist.aspx.cs | 4 +- FineUI.Examples/grid/grid_edit_compare.aspx | 2 +- .../grid/grid_edit_compare.aspx.cs | 6 +- .../grid/grid_edit_dropdownlist.aspx | 2 +- .../grid/grid_edit_dropdownlist.aspx.cs | 4 +- .../grid/grid_edit_dropdownlist2.aspx | 2 +- .../grid/grid_edit_dropdownlist2.aspx.cs | 4 +- .../grid/grid_edit_dropdownlist_textbox.aspx | 2 +- .../grid_edit_dropdownlist_textbox.aspx.cs | 4 +- .../grid/grid_edit_dropdownlist_update.aspx | 2 +- .../grid_edit_dropdownlist_update.aspx.cs | 8 +- .../grid/grid_edit_enterkey_h.aspx | 2 +- .../grid/grid_edit_enterkey_h.aspx.cs | 6 +- .../grid/grid_edit_enterkey_v.aspx | 2 +- .../grid/grid_edit_enterkey_v.aspx.cs | 6 +- .../grid/grid_edit_radiobuttonlist.aspx | 2 +- .../grid/grid_edit_radiobuttonlist.aspx.cs | 4 +- FineUI.Examples/grid/grid_edit_save_auto.aspx | 6 +- .../grid/grid_edit_save_auto.aspx.cs | 4 +- FineUI.Examples/grid/grid_editor_cell.aspx | 4 +- FineUI.Examples/grid/grid_editor_cell.aspx.cs | 49 +- .../grid/grid_editor_cell_afteredit.aspx | 4 +- .../grid/grid_editor_cell_afteredit.aspx.cs | 49 +- ...rid_editor_cell_afteredit_rowexpander.aspx | 4 +- ..._editor_cell_afteredit_rowexpander.aspx.cs | 49 +- ...grid_editor_cell_afteredit_selectcell.aspx | 86 + ...d_editor_cell_afteredit_selectcell.aspx.cs | 129 + ...cell_afteredit_selectcell.aspx.designer.cs | 105 + .../grid_editor_cell_client_validate.aspx | 137 + .../grid_editor_cell_client_validate.aspx.cs | 235 + ...itor_cell_client_validate.aspx.designer.cs | 141 + .../grid/grid_editor_cell_databind.aspx | 4 +- .../grid/grid_editor_cell_databind.aspx.cs | 91 +- .../grid/grid_editor_cell_delete.aspx | 8 +- .../grid/grid_editor_cell_delete.aspx.cs | 58 +- .../grid/grid_editor_cell_new.aspx | 10 +- .../grid/grid_editor_cell_new.aspx.cs | 46 +- .../grid_editor_cell_new.aspx.designer.cs | 9 + .../grid_editor_cell_new_editcolumnid.aspx | 97 + .../grid_editor_cell_new_editcolumnid.aspx.cs | 184 + ...tor_cell_new_editcolumnid.aspx.designer.cs | 132 + .../grid/grid_editor_cell_newdelete.aspx | 98 + .../grid/grid_editor_cell_newdelete.aspx.cs | 232 + ...rid_editor_cell_newdelete.aspx.designer.cs | 141 + ...d_editor_cell_newdelete_getmergeddata.aspx | 99 + ...ditor_cell_newdelete_getmergeddata.aspx.cs | 138 + ...l_newdelete_getmergeddata.aspx.designer.cs | 141 + ...rid_editor_cell_newdelete_rowexpander.aspx | 112 + ..._editor_cell_newdelete_rowexpander.aspx.cs | 233 + ...ell_newdelete_rowexpander.aspx.designer.cs | 141 + .../grid/grid_editor_cell_paging.aspx | 4 +- .../grid/grid_editor_cell_paging.aspx.cs | 46 +- .../grid/grid_editor_cell_renderfunction.aspx | 4 +- .../grid_editor_cell_renderfunction.aspx.cs | 92 +- ...id_editor_cell_renderfunction_complex.aspx | 93 + ...editor_cell_renderfunction_complex.aspx.cs | 121 + ...ll_renderfunction_complex.aspx.designer.cs | 114 + .../grid/grid_editor_cell_textarea.aspx | 94 + .../grid/grid_editor_cell_textarea.aspx.cs | 124 + ...grid_editor_cell_textarea.aspx.designer.cs | 123 + .../grid_editor_cell_updatecellvalue.aspx | 118 + .../grid_editor_cell_updatecellvalue.aspx.cs | 235 + ...itor_cell_updatecellvalue.aspx.designer.cs | 150 + ...tor_cell_updatecellvalue_hiddencolumn.aspx | 113 + ..._cell_updatecellvalue_hiddencolumn.aspx.cs | 121 + ...atecellvalue_hiddencolumn.aspx.designer.cs | 123 + ...id_editor_cell_updatecellvalue_noedit.aspx | 115 + ...editor_cell_updatecellvalue_noedit.aspx.cs | 235 + ...ll_updatecellvalue_noedit.aspx.designer.cs | 141 + .../grid/grid_editor_cell_updatesummary.aspx | 204 + .../grid_editor_cell_updatesummary.aspx.cs | 225 + ...editor_cell_updatesummary.aspx.designer.cs | 141 + FineUI.Examples/grid/grid_empty_text.aspx | 2 +- FineUI.Examples/grid/grid_empty_text.aspx.cs | 2 +- FineUI.Examples/grid/grid_excel.aspx | 2 +- FineUI.Examples/grid/grid_excel.aspx.cs | 2 +- FineUI.Examples/grid/grid_excel_aspnet.aspx | 2 +- .../grid/grid_excel_aspnet.aspx.cs | 8 +- .../grid/grid_excel_dblclick_download.aspx | 55 + .../grid/grid_excel_dblclick_download.aspx.cs | 89 + ...d_excel_dblclick_download.aspx.designer.cs | 69 + .../grid/grid_excel_dynamic_columns.aspx | 2 +- .../grid/grid_excel_dynamic_columns.aspx.cs | 2 +- .../grid/grid_excel_findcontrol.aspx | 2 +- .../grid/grid_excel_findcontrol.aspx.cs | 6 +- .../grid/grid_excel_groupfield.aspx | 2 +- .../grid/grid_excel_groupfield.aspx.cs | 6 +- .../grid/grid_excel_selectcolumns.aspx | 18 +- .../grid/grid_excel_selectcolumns.aspx.cs | 4 +- ...rid_excel_selectcolumns_iframe_window.aspx | 7 +- FineUI.Examples/grid/grid_groupheader.aspx | 2 +- FineUI.Examples/grid/grid_groupheader.aspx.cs | 2 +- .../grid/grid_groupheader_hidden.aspx | 2 +- .../grid/grid_groupheader_hidden.aspx.cs | 4 +- .../grid/grid_groupheader_sort.aspx | 2 +- .../grid/grid_groupheader_sort.aspx.cs | 4 +- .../grid/grid_groupheader_sort_hdmenu.aspx | 2 +- .../grid/grid_groupheader_sort_hdmenu.aspx.cs | 4 +- .../grid/grid_hdmenu_hidecolumn.aspx | 2 +- .../grid/grid_hdmenu_hidecolumn.aspx.cs | 2 +- FineUI.Examples/grid/grid_hdmenu_sorting.aspx | 2 +- .../grid/grid_hdmenu_sorting.aspx.cs | 4 +- .../grid/grid_header_disablemenu.aspx | 39 + .../grid/grid_header_disablemenu.aspx.cs | 40 + .../grid_header_disablemenu.aspx.designer.cs | 51 + FineUI.Examples/grid/grid_header_hide.aspx | 31 + FineUI.Examples/grid/grid_header_hide.aspx.cs | 49 + .../grid/grid_header_hide.aspx.designer.cs | 60 + FineUI.Examples/grid/grid_header_wrap.aspx | 44 + FineUI.Examples/grid/grid_header_wrap.aspx.cs | 40 + .../grid/grid_header_wrap.aspx.designer.cs | 51 + .../grid/grid_hide_gridheader.aspx | 2 +- .../grid/grid_hide_gridheader.aspx.cs | 2 +- FineUI.Examples/grid/grid_hidecolumn.aspx | 67 +- FineUI.Examples/grid/grid_hidecolumn.aspx.cs | 22 +- .../grid/grid_hidecolumn.aspx.designer.cs | 18 + FineUI.Examples/grid/grid_iframe.aspx | 4 +- FineUI.Examples/grid/grid_iframe.aspx.cs | 2 +- FineUI.Examples/grid/grid_iframe_window.aspx | 7 +- FineUI.Examples/grid/grid_line_wrap.aspx | 2 +- FineUI.Examples/grid/grid_line_wrap.aspx.cs | 2 +- FineUI.Examples/grid/grid_lockcolumn.aspx | 2 +- FineUI.Examples/grid/grid_lockcolumn.aspx.cs | 2 +- .../grid/grid_lockcolumn_editor_cell_new.aspx | 2 +- .../grid_lockcolumn_editor_cell_new.aspx.cs | 51 +- .../grid_lockcolumn_groupheader_sort.aspx | 4 +- .../grid_lockcolumn_groupheader_sort.aspx.cs | 4 +- .../grid/grid_lockcolumn_line_wrap.aspx | 2 +- .../grid/grid_lockcolumn_line_wrap.aspx.cs | 2 +- .../grid/grid_lockcolumn_many_columns.aspx | 2 +- .../grid/grid_lockcolumn_many_columns.aspx.cs | 4 +- .../grid/grid_lockcolumn_rowexpander.aspx | 2 +- .../grid/grid_lockcolumn_rowexpander.aspx.cs | 2 +- .../grid_lockcolumn_summary_scrollbar.aspx | 2 +- .../grid_lockcolumn_summary_scrollbar.aspx.cs | 8 +- FineUI.Examples/grid/grid_many_columns.aspx | 66 + .../grid/grid_many_columns.aspx.cs | 73 + .../grid/grid_many_columns.aspx.designer.cs | 51 + FineUI.Examples/grid/grid_pageitems.aspx | 2 +- FineUI.Examples/grid/grid_pageitems.aspx.cs | 4 +- .../grid/grid_pageitems_pagesize.aspx | 2 +- .../grid/grid_pageitems_pagesize.aspx.cs | 8 +- .../grid_pageitems_pagesize_database.aspx | 2 +- .../grid_pageitems_pagesize_database.aspx.cs | 6 +- .../grid/grid_pageitems_rowexpander.aspx | 2 +- .../grid/grid_pageitems_rowexpander.aspx.cs | 4 +- FineUI.Examples/grid/grid_paging.aspx | 2 +- FineUI.Examples/grid/grid_paging.aspx.cs | 5 +- FineUI.Examples/grid/grid_paging_aspnet.aspx | 35 + .../grid/grid_paging_aspnet.aspx.cs | 46 + .../grid/grid_paging_aspnet.aspx.designer.cs | 33 + .../grid/grid_paging_database.aspx | 2 +- .../grid/grid_paging_database.aspx.cs | 6 +- .../grid/grid_paging_database_bbar.aspx | 2 +- .../grid/grid_paging_database_bbar.aspx.cs | 6 +- .../grid/grid_paging_database_selection.aspx | 2 +- .../grid_paging_database_selection.aspx.cs | 6 +- .../grid/grid_paging_database_sorting.aspx | 2 +- .../grid/grid_paging_database_sorting.aspx.cs | 8 +- FineUI.Examples/grid/grid_paging_fineui.aspx | 38 + .../grid/grid_paging_fineui.aspx.cs | 44 + .../grid/grid_paging_fineui.aspx.designer.cs | 51 + .../grid/grid_paging_selection.aspx | 2 +- .../grid/grid_paging_selection.aspx.cs | 4 +- FineUI.Examples/grid/grid_paging_sorting.aspx | 2 +- .../grid/grid_paging_sorting.aspx.cs | 6 +- .../grid/grid_prerowdatabound.aspx | 2 +- .../grid/grid_prerowdatabound.aspx.cs | 6 +- .../grid/grid_prerowdatabound_cancelled.aspx | 2 +- .../grid_prerowdatabound_cancelled.aspx.cs | 6 +- FineUI.Examples/grid/grid_rowcheckall.aspx | 2 +- FineUI.Examples/grid/grid_rowcheckall.aspx.cs | 4 +- FineUI.Examples/grid/grid_rowclick.aspx | 2 +- FineUI.Examples/grid/grid_rowclick.aspx.cs | 4 +- FineUI.Examples/grid/grid_rowcommand.aspx | 2 +- FineUI.Examples/grid/grid_rowcommand.aspx.cs | 4 +- .../grid/grid_rowcommand_download.aspx | 2 +- .../grid/grid_rowcommand_download.aspx.cs | 4 +- .../grid/grid_rowcommand_paging.aspx | 2 +- .../grid/grid_rowcommand_paging.aspx.cs | 6 +- .../grid/grid_rowcommand_paging_database.aspx | 2 +- .../grid_rowcommand_paging_database.aspx.cs | 8 +- FineUI.Examples/grid/grid_rowdatabound.aspx | 2 +- .../grid/grid_rowdatabound.aspx.cs | 6 +- FineUI.Examples/grid/grid_rowdoubleclick.aspx | 2 +- .../grid/grid_rowdoubleclick.aspx.cs | 4 +- FineUI.Examples/grid/grid_rowexpander.aspx | 2 +- FineUI.Examples/grid/grid_rowexpander.aspx.cs | 2 +- .../grid/grid_rowexpander_expandall.aspx | 2 +- .../grid/grid_rowexpander_expandall.aspx.cs | 6 +- .../grid/grid_rowexpander_expandall_js.aspx | 2 +- .../grid_rowexpander_expandall_js.aspx.cs | 6 +- .../grid/grid_rowexpander_grid.aspx | 136 + .../grid/grid_rowexpander_grid.aspx.cs | 37 + .../grid_rowexpander_grid.aspx.designer.cs | 51 + .../grid/grid_rowexpander_grid_data.ashx | 1 + .../grid/grid_rowexpander_grid_data.ashx.cs | 74 + .../grid/grid_rownumber_align.aspx | 2 +- .../grid/grid_rownumber_align.aspx.cs | 2 +- .../grid/grid_rownumber_paging.aspx | 2 +- .../grid/grid_rownumber_paging.aspx.cs | 4 +- .../grid/grid_rownumber_paging_database.aspx | 2 +- .../grid_rownumber_paging_database.aspx.cs | 6 +- .../grid/grid_rownumber_width.aspx | 2 +- .../grid/grid_rownumber_width.aspx.cs | 2 +- FineUI.Examples/grid/grid_rowselect.aspx | 54 +- FineUI.Examples/grid/grid_rowselect.aspx.cs | 14 +- FineUI.Examples/grid/grid_simulate_tree.aspx | 2 +- .../grid_simulate_tree_database_paging.aspx | 2 +- ...grid_simulate_tree_database_paging.aspx.cs | 2 +- ...ate_tree_database_paging_dropdownlist.aspx | 2 +- ..._tree_database_paging_dropdownlist.aspx.cs | 2 +- .../grid/grid_simulate_tree_paging.aspx | 2 +- .../grid/grid_simulate_tree_paging.aspx.cs | 2 +- FineUI.Examples/grid/grid_sorting.aspx | 2 +- FineUI.Examples/grid/grid_sorting.aspx.cs | 4 +- .../grid/grid_style_columnclass.aspx | 2 +- .../grid/grid_style_columnclass.aspx.cs | 6 +- FineUI.Examples/grid/grid_style_rowcolor.aspx | 2 +- .../grid/grid_style_rowcolor.aspx.cs | 8 +- .../grid/grid_style_rowcolor_paging.aspx | 2 +- .../grid/grid_style_rowcolor_paging.aspx.cs | 6 +- .../grid_style_rowcolor_paging_database.aspx | 2 +- ...rid_style_rowcolor_paging_database.aspx.cs | 8 +- FineUI.Examples/grid/grid_summary.aspx | 2 +- FineUI.Examples/grid/grid_summary.aspx.cs | 8 +- .../grid/grid_summary_currentpage.aspx | 21 +- .../grid/grid_summary_currentpage.aspx.cs | 11 +- .../grid_summary_currentpage.aspx.designer.cs | 9 - .../grid/grid_summary_scrollbar_bottom.aspx | 55 + .../grid_summary_scrollbar_bottom.aspx.cs | 118 + ..._summary_scrollbar_bottom.aspx.designer.cs | 78 + .../grid/grid_summary_scrollbar_flow.aspx | 2 +- .../grid/grid_summary_scrollbar_flow.aspx.cs | 8 +- .../grid/grid_summary_scrollbar_top.aspx | 58 + .../grid/grid_summary_scrollbar_top.aspx.cs | 119 + ...rid_summary_scrollbar_top.aspx.designer.cs | 69 + FineUI.Examples/grid/grid_text_middle.aspx | 2 +- FineUI.Examples/grid/grid_text_middle.aspx.cs | 2 +- FineUI.Examples/grid/grid_text_top.aspx | 2 +- FineUI.Examples/grid/grid_text_top.aspx.cs | 2 +- FineUI.Examples/grid/grid_textselection.aspx | 2 +- .../grid/grid_textselection.aspx.cs | 6 +- FineUI.Examples/grid/grid_twogrid.aspx | 7 +- FineUI.Examples/grid/grid_twogrid.aspx.cs | 10 +- FineUI.Examples/grid/grid_width.aspx | 7 +- FineUI.Examples/grid/grid_width.aspx.cs | 2 +- FineUI.Examples/grid/grid_width_boxflex.aspx | 38 + .../grid/grid_width_boxflex.aspx.cs | 40 + .../grid/grid_width_boxflex.aspx.designer.cs | 51 + .../grid/grid_width_expandunusedspace.aspx | 14 +- .../grid/grid_width_expandunusedspace.aspx.cs | 2 +- FineUI.Examples/grid/grid_width_forcefit.aspx | 12 +- .../grid/grid_width_forcefit.aspx.cs | 2 +- .../grid/grid_width_forcefit_minwidth.aspx | 39 + .../grid/grid_width_forcefit_minwidth.aspx.cs | 40 + ...d_width_forcefit_minwidth.aspx.designer.cs | 51 + FineUI.Examples/iframe/button_iframe.aspx | 2 +- FineUI.Examples/iframe/grid_iframe.aspx | 7 +- FineUI.Examples/iframe/grid_iframe.aspx.cs | 10 +- FineUI.Examples/iframe/iframe_iframe.aspx | 2 +- .../iframe/iframe_iframe_window1.aspx | 7 +- .../iframe/iframe_iframe_window2.aspx | 7 +- FineUI.Examples/iframe/parent_postback.aspx | 2 +- FineUI.Examples/iframe/parent_postback2.aspx | 2 +- FineUI.Examples/iframe/parent_postback3.aspx | 2 +- .../iframe/parent_postback_top.aspx | 2 +- .../iframe/parent_postback_top2.aspx | 2 +- .../iframe/parent_postback_top3.aspx | 2 +- .../iframe/parent_simplepostback.aspx | 2 +- .../iframe/parent_simplepostback2.aspx | 2 +- FineUI.Examples/iframe/passvalue_iframe.aspx | 2 +- .../iframe/passvalue_iframe_iframe.aspx | 7 +- FineUI.Examples/iframe/selectprovince1.aspx | 2 +- .../iframe/selectprovince1_child.aspx | 7 +- FineUI.Examples/iframe/selectprovince2.aspx | 2 +- .../iframe/selectprovince2_child.aspx | 7 +- FineUI.Examples/iframe/selectprovince3.aspx | 2 +- .../iframe/selectprovince3_child.aspx | 7 +- .../iframe/selectprovince_executescript.aspx | 2 +- .../selectprovince_executescript_child.aspx | 7 +- FineUI.Examples/iframe/topmenu4/default.aspx | 2 +- FineUI.Examples/iframe/triggerbox_iframe.aspx | 2 +- .../iframe/triggerbox_iframe_iframe.aspx | 7 +- FineUI.Examples/iframe/window.aspx | 2 +- FineUI.Examples/iframe/window2.aspx | 2 +- FineUI.Examples/iframe/window2_iframe.aspx | 6 +- FineUI.Examples/iframe/window_iframe.aspx | 6 +- FineUI.Examples/layout/absolute.aspx | 2 +- FineUI.Examples/layout/anchor.aspx | 2 +- FineUI.Examples/layout/anchor.aspx.cs | 2 +- FineUI.Examples/layout/card.aspx | 2 +- FineUI.Examples/layout/column.aspx | 2 +- FineUI.Examples/layout/column_autoheight.aspx | 152 + .../layout/column_autoheight.aspx.cs | 25 + .../layout/column_autoheight.aspx.designer.cs | 150 + FineUI.Examples/layout/column_scrollbar.aspx | 150 + .../layout/column_scrollbar.aspx.cs | 25 + .../layout/column_scrollbar.aspx.designer.cs | 150 + FineUI.Examples/layout/fit.aspx | 2 +- FineUI.Examples/layout/fit.aspx.cs | 2 +- FineUI.Examples/layout/hbox.aspx | 2 +- FineUI.Examples/layout/hbox_autoheight.aspx | 38 + .../layout/hbox_autoheight.aspx.cs | 25 + .../layout/hbox_autoheight.aspx.designer.cs | 78 + .../layout/hbox_autoheight_multilevels.aspx | 41 + .../hbox_autoheight_multilevels.aspx.cs | 25 + ...ox_autoheight_multilevels.aspx.designer.cs | 69 + FineUI.Examples/layout/hbox_form.aspx | 98 + FineUI.Examples/layout/hbox_form.aspx.cs | 25 + .../layout/hbox_form.aspx.designer.cs | 159 + FineUI.Examples/layout/hbox_scrollbar.aspx | 37 + FineUI.Examples/layout/hbox_scrollbar.aspx.cs | 25 + .../layout/hbox_scrollbar.aspx.designer.cs | 78 + FineUI.Examples/layout/region.aspx | 7 +- FineUI.Examples/layout/table.aspx | 2 +- FineUI.Examples/layout/table_form.aspx | 54 + FineUI.Examples/layout/table_form.aspx.cs | 25 + .../layout/table_form.aspx.designer.cs | 114 + FineUI.Examples/layout/vbox.aspx | 2 +- FineUI.Examples/layout/vbox_autoheight.aspx | 36 + .../layout/vbox_autoheight.aspx.cs | 25 + .../layout/vbox_autoheight.aspx.designer.cs | 78 + FineUI.Examples/layout/vbox_collapse.aspx | 42 + FineUI.Examples/layout/vbox_collapse.aspx.cs | 25 + .../layout/vbox_collapse.aspx.designer.cs | 96 + FineUI.Examples/layout/vbox_form.aspx | 30 + FineUI.Examples/layout/vbox_form.aspx.cs | 25 + .../layout/vbox_form.aspx.designer.cs | 69 + FineUI.Examples/layout/vbox_formgrid.aspx | 136 + FineUI.Examples/layout/vbox_formgrid.aspx.cs | 63 + .../layout/vbox_formgrid.aspx.designer.cs | 339 + FineUI.Examples/layout/vbox_hbox.aspx | 68 + FineUI.Examples/layout/vbox_hbox.aspx.cs | 25 + .../layout/vbox_hbox.aspx.designer.cs | 168 + FineUI.Examples/layout/vbox_scrollbar.aspx | 37 + FineUI.Examples/layout/vbox_scrollbar.aspx.cs | 25 + .../layout/vbox_scrollbar.aspx.designer.cs | 78 + FineUI.Examples/master/Simple.Master.cs | 2 +- FineUI.Examples/master/SingleGrid.Master | 8 +- FineUI.Examples/master/formlist.aspx.cs | 4 +- FineUI.Examples/master/list.aspx.cs | 4 +- FineUI.Examples/message/alert.aspx | 25 + FineUI.Examples/message/alert.aspx.cs | 39 + .../message/alert.aspx.designer.cs | 51 + FineUI.Examples/message/alert_download.aspx | 18 + .../message/alert_download.aspx.cs | 48 + .../message/alert_download.aspx.designer.cs | 42 + .../message/alert_download_hide.aspx | 24 + .../message/alert_download_hide.aspx.cs | 49 + .../alert_download_hide.aspx.designer.cs | 51 + .../message/alert_download_hideiframe.aspx | 42 + .../message/alert_download_hideiframe.aspx.cs | 41 + ...alert_download_hideiframe.aspx.designer.cs | 42 + .../alert_download_hideiframe_window.aspx | 18 + .../alert_download_hideiframe_window.aspx.cs | 27 + ...ownload_hideiframe_window.aspx.designer.cs | 42 + FineUI.Examples/message/confirm_buttons.aspx | 46 + .../message/confirm_buttons.aspx.cs | 33 + .../message/confirm_buttons.aspx.designer.cs | 42 + FineUI.Examples/message/confirm_cancel.aspx | 28 + .../message/confirm_cancel.aspx.cs | 46 + .../message/confirm_cancel.aspx.designer.cs | 60 + .../message/confirm_cancel_customevent.aspx | 17 + .../confirm_cancel_customevent.aspx.cs | 37 + ...onfirm_cancel_customevent.aspx.designer.cs | 42 + FineUI.Examples/other/addtab.aspx | 2 +- FineUI.Examples/other/ajax_loading.aspx | 2 +- .../other/authentication_timeout.aspx | 63 + .../other/authentication_timeout.aspx.cs | 24 + .../authentication_timeout.aspx.designer.cs | 51 + .../other/authentication_timeout_async.aspx | 74 + .../authentication_timeout_async.aspx.cs | 24 + ...hentication_timeout_async.aspx.designer.cs | 51 + FineUI.Examples/other/cssclass.aspx | 2 +- FineUI.Examples/other/cssstyle.aspx | 2 +- FineUI.Examples/other/custom_postback.aspx | 2 +- FineUI.Examples/other/custom_postback2.aspx | 2 +- FineUI.Examples/other/global_error.aspx | 2 +- FineUI.Examples/other/keydown.aspx | 2 +- FineUI.Examples/other/pageloading.aspx | 2 +- FineUI.Examples/other/timer.aspx | 2 +- FineUI.Examples/other/toolbar.aspx | 2 +- FineUI.Examples/tabstrip/tabstrip.aspx | 2 +- FineUI.Examples/tabstrip/tabstrip_addtab.aspx | 2 +- .../tabstrip/tabstrip_autopostback.aspx | 2 +- .../tabstrip/tabstrip_enableclose.aspx | 2 +- FineUI.Examples/tabstrip/tabstrip_iframe.aspx | 2 +- .../tabstrip/tabstrip_iframe_disabled.aspx | 2 +- .../tabstrip_iframe_disabled_tab1.aspx | 2 +- .../tabstrip/tabstrip_position.aspx | 2 +- FineUI.Examples/test/test.aspx | 178 +- FineUI.Examples/test/test.aspx.designer.cs | 443 +- FineUI.Examples/toolbar/form.aspx | 2 +- FineUI.Examples/toolbar/form.aspx.cs | 2 +- FineUI.Examples/toolbar/formfields.aspx | 58 + FineUI.Examples/toolbar/formfields.aspx.cs | 56 + .../toolbar/formfields.aspx.designer.cs | 96 + FineUI.Examples/toolbar/menu.aspx | 2 +- FineUI.Examples/toolbar/menu_dynamic.aspx | 2 +- FineUI.Examples/toolbar/menu_dynamic2.aspx | 2 +- FineUI.Examples/toolbar/menu_hideonclick.aspx | 2 +- FineUI.Examples/toolbar/menucheckbox.aspx | 2 +- FineUI.Examples/toolbar/multi_toolbars.aspx | 2 +- FineUI.Examples/toolbar/toolbar_fill.aspx | 53 + FineUI.Examples/toolbar/toolbar_fill.aspx.cs | 22 + .../toolbar/toolbar_fill.aspx.designer.cs | 150 + FineUI.Examples/toolbar/toolbar_iframe.aspx | 2 +- FineUI.Examples/toolbar/toolbar_images.aspx | 2 +- .../toolbar/toolbar_images_fixedwidth.aspx | 2 +- .../tree/checkbox/tree_checkall.aspx | 2 +- .../tree/checkbox/tree_checkall.aspx.cs | 4 +- .../tree/checkbox/tree_checked.aspx | 2 +- .../tree/databind/tree_datasource.aspx | 2 +- .../tree/databind/tree_datatable.aspx | 2 +- .../tree/databind/tree_document.aspx | 2 +- .../tree/databind/tree_sitemap.aspx | 2 +- .../tree/select/tree_multi_select.aspx | 2 +- .../select/tree_multi_select_selectable.aspx | 2 +- .../tree/select/tree_nodecommand.aspx | 2 +- .../tree/select/tree_nodecommand.aspx.cs | 2 +- FineUI.Examples/tree/select/tree_select.aspx | 2 +- FineUI.Examples/tree/tree.aspx | 2 +- FineUI.Examples/tree/tree_ajax.aspx | 2 +- FineUI.Examples/tree/tree_contextmenu.aspx | 130 + FineUI.Examples/tree/tree_contextmenu.aspx.cs | 24 + .../tree/tree_contextmenu.aspx.designer.cs | 69 + FineUI.Examples/tree/tree_expand.aspx | 2 +- FineUI.Examples/tree/tree_icon.aspx | 2 +- FineUI.Examples/tree/tree_node_cssclass.aspx | 51 + .../tree/tree_node_cssclass.aspx.cs | 24 + .../tree/tree_node_cssclass.aspx.designer.cs | 42 + FineUI.Examples/tree/tree_nodedatabound.aspx | 2 +- FineUI.Examples/tree/tree_singleexpand.aspx | 52 + .../tree/tree_singleexpand.aspx.cs | 24 + .../tree/tree_singleexpand.aspx.designer.cs | 42 + FineUI.Examples/tree/tree_textselection.aspx | 41 + .../tree/tree_textselection.aspx.cs | 24 + .../tree/tree_textselection.aspx.designer.cs | 42 + FineUI.Examples/usercontrol/userinfo.aspx | 2 +- FineUI.Examples/usercontrol/userinfo2.aspx | 2 +- .../usercontrol/userinfo_dynamic.aspx | 2 +- FineUI.Examples/window/group_panel.aspx | 2 +- FineUI.Examples/window/panel.aspx | 2 +- FineUI.Examples/window/panel_collapse.aspx | 2 +- FineUI.Examples/window/panel_disabled.aspx | 49 + FineUI.Examples/window/panel_disabled.aspx.cs | 27 + .../window/panel_disabled.aspx.designer.cs | 132 + FineUI.Examples/window/window.aspx | 6 +- FineUI.Examples/window/window.aspx.cs | 5 - FineUI.Examples/window/window_form.aspx | 2 +- FineUI.Examples/window/window_maximized.aspx | 48 + .../window/window_maximized.aspx.cs | 47 + .../window/window_maximized.aspx.designer.cs | 87 + .../window/window_maximized_fixed.aspx | 48 + .../window/window_maximized_fixed.aspx.cs | 47 + .../window_maximized_fixed.aspx.designer.cs | 87 + FineUI.Examples/window/window_minwidth.aspx | 42 + .../window/window_minwidth.aspx.cs | 24 + .../window/window_minwidth.aspx.designer.cs | 60 + FineUI.Examples/window/window_multi.aspx | 2 +- FineUI.Examples/window/window_toolbar.aspx | 2 +- 581 files changed, 18000 insertions(+), 22961 deletions(-) create mode 100644 FineUI.Examples/Web.config_for_VS2013 delete mode 100644 FineUI.Examples/bin/CKEditor.NET.dll delete mode 100644 FineUI.Examples/bin/FineUI.Examples.dll delete mode 100644 FineUI.Examples/bin/FineUI.dll delete mode 100644 FineUI.Examples/bin/FineUI.xml delete mode 100644 FineUI.Examples/bin/FredCK.FCKeditorV2.dll delete mode 100644 FineUI.Examples/bin/Newtonsoft.Json.dll delete mode 100644 FineUI.Examples/bin/Wilco.SyntaxHighlighter.dll create mode 100644 FineUI.Examples/extjs_builder/js/修改ext-all.js(为了支持 IE11).txt create mode 100644 FineUI.Examples/form/form_columnwidths.aspx create mode 100644 FineUI.Examples/form/form_columnwidths.aspx.cs create mode 100644 FineUI.Examples/form/form_columnwidths.aspx.designer.cs create mode 100644 FineUI.Examples/form/form_labelwidth.aspx create mode 100644 FineUI.Examples/form/form_labelwidth.aspx.cs create mode 100644 FineUI.Examples/form/form_labelwidth.aspx.designer.cs create mode 100644 FineUI.Examples/form/form_longlabel.aspx create mode 100644 FineUI.Examples/form/form_longlabel.aspx.cs create mode 100644 FineUI.Examples/form/form_longlabel.aspx.designer.cs create mode 100644 FineUI.Examples/form/layout_center_label.aspx create mode 100644 FineUI.Examples/form/layout_center_label.aspx.cs create mode 100644 FineUI.Examples/form/layout_center_label.aspx.designer.cs create mode 100644 FineUI.Examples/form/layout_multiline_buttons.aspx create mode 100644 FineUI.Examples/form/layout_multiline_buttons.aspx.cs create mode 100644 FineUI.Examples/form/layout_multiline_buttons.aspx.designer.cs create mode 100644 FineUI.Examples/form/layout_panel_column.aspx create mode 100644 FineUI.Examples/form/layout_panel_column.aspx.cs create mode 100644 FineUI.Examples/form/layout_panel_column.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_checkall_keepcurrentselection.aspx create mode 100644 FineUI.Examples/grid/grid_checkall_keepcurrentselection.aspx.cs create mode 100644 FineUI.Examples/grid/grid_checkall_keepcurrentselection.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_afteredit_selectcell.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_afteredit_selectcell.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_afteredit_selectcell.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_client_validate.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_client_validate.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_client_validate.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_new_editcolumnid.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_new_editcolumnid.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_new_editcolumnid.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_newdelete.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_newdelete.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_newdelete.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_newdelete_getmergeddata.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_newdelete_getmergeddata.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_newdelete_getmergeddata.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_newdelete_rowexpander.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_newdelete_rowexpander.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_newdelete_rowexpander.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_renderfunction_complex.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_renderfunction_complex.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_renderfunction_complex.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_textarea.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_textarea.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_textarea.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatecellvalue.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatecellvalue_hiddencolumn.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatecellvalue_noedit.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx.cs create mode 100644 FineUI.Examples/grid/grid_editor_cell_updatesummary.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_excel_dblclick_download.aspx create mode 100644 FineUI.Examples/grid/grid_excel_dblclick_download.aspx.cs create mode 100644 FineUI.Examples/grid/grid_excel_dblclick_download.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_header_disablemenu.aspx create mode 100644 FineUI.Examples/grid/grid_header_disablemenu.aspx.cs create mode 100644 FineUI.Examples/grid/grid_header_disablemenu.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_header_hide.aspx create mode 100644 FineUI.Examples/grid/grid_header_hide.aspx.cs create mode 100644 FineUI.Examples/grid/grid_header_hide.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_header_wrap.aspx create mode 100644 FineUI.Examples/grid/grid_header_wrap.aspx.cs create mode 100644 FineUI.Examples/grid/grid_header_wrap.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_many_columns.aspx create mode 100644 FineUI.Examples/grid/grid_many_columns.aspx.cs create mode 100644 FineUI.Examples/grid/grid_many_columns.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_paging_aspnet.aspx create mode 100644 FineUI.Examples/grid/grid_paging_aspnet.aspx.cs create mode 100644 FineUI.Examples/grid/grid_paging_aspnet.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_paging_fineui.aspx create mode 100644 FineUI.Examples/grid/grid_paging_fineui.aspx.cs create mode 100644 FineUI.Examples/grid/grid_paging_fineui.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_rowexpander_grid.aspx create mode 100644 FineUI.Examples/grid/grid_rowexpander_grid.aspx.cs create mode 100644 FineUI.Examples/grid/grid_rowexpander_grid.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_rowexpander_grid_data.ashx create mode 100644 FineUI.Examples/grid/grid_rowexpander_grid_data.ashx.cs create mode 100644 FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx create mode 100644 FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx.cs create mode 100644 FineUI.Examples/grid/grid_summary_scrollbar_bottom.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_summary_scrollbar_top.aspx create mode 100644 FineUI.Examples/grid/grid_summary_scrollbar_top.aspx.cs create mode 100644 FineUI.Examples/grid/grid_summary_scrollbar_top.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_width_boxflex.aspx create mode 100644 FineUI.Examples/grid/grid_width_boxflex.aspx.cs create mode 100644 FineUI.Examples/grid/grid_width_boxflex.aspx.designer.cs create mode 100644 FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx create mode 100644 FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx.cs create mode 100644 FineUI.Examples/grid/grid_width_forcefit_minwidth.aspx.designer.cs create mode 100644 FineUI.Examples/layout/column_autoheight.aspx create mode 100644 FineUI.Examples/layout/column_autoheight.aspx.cs create mode 100644 FineUI.Examples/layout/column_autoheight.aspx.designer.cs create mode 100644 FineUI.Examples/layout/column_scrollbar.aspx create mode 100644 FineUI.Examples/layout/column_scrollbar.aspx.cs create mode 100644 FineUI.Examples/layout/column_scrollbar.aspx.designer.cs create mode 100644 FineUI.Examples/layout/hbox_autoheight.aspx create mode 100644 FineUI.Examples/layout/hbox_autoheight.aspx.cs create mode 100644 FineUI.Examples/layout/hbox_autoheight.aspx.designer.cs create mode 100644 FineUI.Examples/layout/hbox_autoheight_multilevels.aspx create mode 100644 FineUI.Examples/layout/hbox_autoheight_multilevels.aspx.cs create mode 100644 FineUI.Examples/layout/hbox_autoheight_multilevels.aspx.designer.cs create mode 100644 FineUI.Examples/layout/hbox_form.aspx create mode 100644 FineUI.Examples/layout/hbox_form.aspx.cs create mode 100644 FineUI.Examples/layout/hbox_form.aspx.designer.cs create mode 100644 FineUI.Examples/layout/hbox_scrollbar.aspx create mode 100644 FineUI.Examples/layout/hbox_scrollbar.aspx.cs create mode 100644 FineUI.Examples/layout/hbox_scrollbar.aspx.designer.cs create mode 100644 FineUI.Examples/layout/table_form.aspx create mode 100644 FineUI.Examples/layout/table_form.aspx.cs create mode 100644 FineUI.Examples/layout/table_form.aspx.designer.cs create mode 100644 FineUI.Examples/layout/vbox_autoheight.aspx create mode 100644 FineUI.Examples/layout/vbox_autoheight.aspx.cs create mode 100644 FineUI.Examples/layout/vbox_autoheight.aspx.designer.cs create mode 100644 FineUI.Examples/layout/vbox_collapse.aspx create mode 100644 FineUI.Examples/layout/vbox_collapse.aspx.cs create mode 100644 FineUI.Examples/layout/vbox_collapse.aspx.designer.cs create mode 100644 FineUI.Examples/layout/vbox_form.aspx create mode 100644 FineUI.Examples/layout/vbox_form.aspx.cs create mode 100644 FineUI.Examples/layout/vbox_form.aspx.designer.cs create mode 100644 FineUI.Examples/layout/vbox_formgrid.aspx create mode 100644 FineUI.Examples/layout/vbox_formgrid.aspx.cs create mode 100644 FineUI.Examples/layout/vbox_formgrid.aspx.designer.cs create mode 100644 FineUI.Examples/layout/vbox_hbox.aspx create mode 100644 FineUI.Examples/layout/vbox_hbox.aspx.cs create mode 100644 FineUI.Examples/layout/vbox_hbox.aspx.designer.cs create mode 100644 FineUI.Examples/layout/vbox_scrollbar.aspx create mode 100644 FineUI.Examples/layout/vbox_scrollbar.aspx.cs create mode 100644 FineUI.Examples/layout/vbox_scrollbar.aspx.designer.cs create mode 100644 FineUI.Examples/message/alert.aspx create mode 100644 FineUI.Examples/message/alert.aspx.cs create mode 100644 FineUI.Examples/message/alert.aspx.designer.cs create mode 100644 FineUI.Examples/message/alert_download.aspx create mode 100644 FineUI.Examples/message/alert_download.aspx.cs create mode 100644 FineUI.Examples/message/alert_download.aspx.designer.cs create mode 100644 FineUI.Examples/message/alert_download_hide.aspx create mode 100644 FineUI.Examples/message/alert_download_hide.aspx.cs create mode 100644 FineUI.Examples/message/alert_download_hide.aspx.designer.cs create mode 100644 FineUI.Examples/message/alert_download_hideiframe.aspx create mode 100644 FineUI.Examples/message/alert_download_hideiframe.aspx.cs create mode 100644 FineUI.Examples/message/alert_download_hideiframe.aspx.designer.cs create mode 100644 FineUI.Examples/message/alert_download_hideiframe_window.aspx create mode 100644 FineUI.Examples/message/alert_download_hideiframe_window.aspx.cs create mode 100644 FineUI.Examples/message/alert_download_hideiframe_window.aspx.designer.cs create mode 100644 FineUI.Examples/message/confirm_buttons.aspx create mode 100644 FineUI.Examples/message/confirm_buttons.aspx.cs create mode 100644 FineUI.Examples/message/confirm_buttons.aspx.designer.cs create mode 100644 FineUI.Examples/message/confirm_cancel.aspx create mode 100644 FineUI.Examples/message/confirm_cancel.aspx.cs create mode 100644 FineUI.Examples/message/confirm_cancel.aspx.designer.cs create mode 100644 FineUI.Examples/message/confirm_cancel_customevent.aspx create mode 100644 FineUI.Examples/message/confirm_cancel_customevent.aspx.cs create mode 100644 FineUI.Examples/message/confirm_cancel_customevent.aspx.designer.cs create mode 100644 FineUI.Examples/other/authentication_timeout.aspx create mode 100644 FineUI.Examples/other/authentication_timeout.aspx.cs create mode 100644 FineUI.Examples/other/authentication_timeout.aspx.designer.cs create mode 100644 FineUI.Examples/other/authentication_timeout_async.aspx create mode 100644 FineUI.Examples/other/authentication_timeout_async.aspx.cs create mode 100644 FineUI.Examples/other/authentication_timeout_async.aspx.designer.cs create mode 100644 FineUI.Examples/toolbar/formfields.aspx create mode 100644 FineUI.Examples/toolbar/formfields.aspx.cs create mode 100644 FineUI.Examples/toolbar/formfields.aspx.designer.cs create mode 100644 FineUI.Examples/toolbar/toolbar_fill.aspx create mode 100644 FineUI.Examples/toolbar/toolbar_fill.aspx.cs create mode 100644 FineUI.Examples/toolbar/toolbar_fill.aspx.designer.cs create mode 100644 FineUI.Examples/tree/tree_contextmenu.aspx create mode 100644 FineUI.Examples/tree/tree_contextmenu.aspx.cs create mode 100644 FineUI.Examples/tree/tree_contextmenu.aspx.designer.cs create mode 100644 FineUI.Examples/tree/tree_node_cssclass.aspx create mode 100644 FineUI.Examples/tree/tree_node_cssclass.aspx.cs create mode 100644 FineUI.Examples/tree/tree_node_cssclass.aspx.designer.cs create mode 100644 FineUI.Examples/tree/tree_singleexpand.aspx create mode 100644 FineUI.Examples/tree/tree_singleexpand.aspx.cs create mode 100644 FineUI.Examples/tree/tree_singleexpand.aspx.designer.cs create mode 100644 FineUI.Examples/tree/tree_textselection.aspx create mode 100644 FineUI.Examples/tree/tree_textselection.aspx.cs create mode 100644 FineUI.Examples/tree/tree_textselection.aspx.designer.cs create mode 100644 FineUI.Examples/window/panel_disabled.aspx create mode 100644 FineUI.Examples/window/panel_disabled.aspx.cs create mode 100644 FineUI.Examples/window/panel_disabled.aspx.designer.cs create mode 100644 FineUI.Examples/window/window_maximized.aspx create mode 100644 FineUI.Examples/window/window_maximized.aspx.cs create mode 100644 FineUI.Examples/window/window_maximized.aspx.designer.cs create mode 100644 FineUI.Examples/window/window_maximized_fixed.aspx create mode 100644 FineUI.Examples/window/window_maximized_fixed.aspx.cs create mode 100644 FineUI.Examples/window/window_maximized_fixed.aspx.designer.cs create mode 100644 FineUI.Examples/window/window_minwidth.aspx create mode 100644 FineUI.Examples/window/window_minwidth.aspx.cs create mode 100644 FineUI.Examples/window/window_minwidth.aspx.designer.cs 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 9b7e55a083fa7f4b4c24a1e38aeea2484eed4fac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113152 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�uXa@FbA%>Q=W57}&jTghz&pLjXRV|E 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 WJ@B(IPPFW2d2i$2{{7$A1OFS7^^Gn7 diff --git a/FineUI.Examples/bin/FineUI.Examples.dll b/FineUI.Examples/bin/FineUI.Examples.dll deleted file mode 100644 index 6272c977c23b5ac10af090833828245fe1c88330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287744 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 diff --git a/FineUI.Examples/bin/FineUI.dll b/FineUI.Examples/bin/FineUI.dll deleted file mode 100644 index 076836213fc6c73b240bd41db198d1d0e04d27b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641024 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�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 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 8cfc1779d7d349691e1152b464d4303aa5ebfd75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45056 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 diff --git a/FineUI.Examples/bin/Newtonsoft.Json.dll b/FineUI.Examples/bin/Newtonsoft.Json.dll deleted file mode 100644 index 2024b03b53bf96f74c2bc94f27d0fbc776e51564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440320 zcmb@v37i~N)%V|1)l0NbkCAx!je#Q&rCuB5(2U*2q>Tkn1CXnvV^6eJ8?-Ml>J@!~8^ASS*9clO7-?orFZ{lO~G9N5_W3P|&Jnb8M zoqEBAjir~>qx0+MT(b0e=UjSev~lUVFIZaNbm`IyFJ1cNlb^ZtlIZy_m>w7??i-VS z`Z1Zz(|Y{O^~;}oN>bZTGTvT&J$;$XJwYauchCpEL3}CkpAcp;3oPzAz6B8f_O~>b z$pF9gmjUfM@)bhW|4tYu9d_no=$@=Nbl0?r#F-Z4GW~=Hem%%6N`vnlj<94a7@SXl!n#r6!U2oK%2hey^+tvJgb?f{cNq0@xUvO~*qIk_@ zoD4Ge?}T@>Wv6bpORoHhH!sth`TD(H=7RBTreM&{?deN1nJt~ki>9gMO z-sz){D8Boy>+^#T<<405jsKXp?5NND`rua$eWd@yPk;5ye;$4NU4H)(uZak<)xABx zWs%dp@I{$S(W`_=Hvn2x_A0NbFnTdr?ZiuzINI|=3I@vw5o1uzWX4zaX5NmG^kgz6 zKe`y;&|qn>vi_Js#Lxn|jjNaV?Of}q=6H~AC430@U$~V14C#Fd)7NV9lwL=;W`c;n z5v})%j=3O;s4ChFS3!iX1Vcl$(@H~86F{Fs$wk)-MJz>E0QPdxwTid6ZG1Hx$LW`n z9vt4Wa6cMT8V<3k092K=HbRsV#i?!E`%6QUIg&6`eALxZj%G+y{f$V)>vynxhqdyC zfqaDIf}w@A6G{ssswxg;9a<@yVr|e5w~!ZJ$*mCjeQ;EcIVwAjN?GHkP}#6<07}Nv z-LSL}mKM&*(f}+C^~RO;TC-gxS5b*c4!#X3h>@IZ9Ma2#^m1+qQZ7cyr6}P+iqX{$ zX`ZUfd!@YPn}CT+xCH8~vGt8tf@;l4h!$d^1uJyNR(d6RRjSfrdBad&sc5;IrpTQ< zJWk!A)KI?{(i=f#b>CorNS_vm`fGy@HnO?^>>7iW`pej>hqI+k{sb)d7wtyrNKJ{f&#Alu^RYNiKA?PX>% z=l;aGLoc(a=UI)OeylU|+4+8WEohU2j(d{Vk#thdTu!X_lo?tXWHu0D!6kq4 zJgz94m7pAPNa`al_%N^kul#N~otm?3%*As8s zy~%vgudJ(5w`YyOIh3+fex=qkUJU$o)$x_t3|SiY5}!1$G%xl^{|U3d3V)c^q?@>nv$r z1z88{26BaUeNJVHQ(wc7=VQq8ogwEc>-vIRbQyTL*tZO2$A)?_h5)x=4rM{@pwa^8 zP;#Z-%DSQ6Qm!ng5dINN$Efg!68;DK+N&q4K95}+x7gQ_NvJp1> zE5pE8LU_8H%p3}7eijH%1plC^kdeNA(+;f z$7LbTKBCMacP94n!_3j+&OTO^8#mC#Ez;pCgXw@m4W<_PtQ$=I`f0Mk3$Z!>x(g@z zrx(=Ek!1?ncq7F(GkDVMKom+brSXK4MaZC~jI!&MiH-UJC} zhm+JHJM@}kphRybqv%CT)E|d)n;P)07$T$jej^Z60}Oa*rJuQ!a?G+y>Fi+UEu!nh zGd?}yA`^vaT(cxLx}&GOqX*WD!Q_6f!pgPN_@MrL`Fe$3Q*~XbXkG(Et%lzcUwygo z>K;UYwAUOaxoj#}9-^^D>qSAT*Z8RxtQc?!Kf1{=B(l{<;#pI1 zse8OiOP%7CTj~mCR}|A+X$ZgcHrkt0d&9K=)2$xx{Km^*u4R?Did{pZTc{wN>s_J# zalZO=FWL)Am34SXLHmNi9_!=-3Ph4VUgNZUcX_krrcN){8KPV5;Di z!!<-uWYf`NFh2crFMI-^$x$zwBJ6Xh%e{$GE<6N4t{O}fR!@7;1PPnp^yh6Do6P6K zx2j!1*#^7;iWIC!fg*jYF_&PXw7NeoDJNGAMvlB5$utHUVpD6_s^QOmZD@rs#)mz7f=u$D-rkYpbu-`6Hz0_UmwaQDqRj*#_iF-NN`UuvL z>fl%sS9|rB3dcH~TEwka|H3YdNv0KK$`DiX#?mq^#WEfAcPzvkj2BX}eKc4+oeh?( zUhCN3M1IfIB5z5$HSd7vR%ICXF6R!V8+VXnlI$DII@+bIb;gAbEAEW&o#0Ilc@urs zw}ZVgZf`X|5qaT0$PJ5lmym|NCAm&rIah;MU+g6|;iRmIQ%5p=gF#F&Ktz`(xI0PK z?0g&hhajsKU&Q;*mzmYUMW@`=+89|9?FTX8L4Ft0_(B$-9w7Xw&8coY-PWzPkB}T+R z-($^{afMHW`sA^WqshZvxQU^vXL2lVy%NK&fzi8ZUSBPy6y2qiH&N&qd29o%g!`Qs zmkkWkzYO~&Z#>O+yMMhM3vnXj`Pc@=r?)!`pIETEFCin1M*OZ0*k zZ;o4_7BhU!(sArT`1EzowQlJa1j^u!T#J)?2VRH^4Z@pQ{1m;31;JLZo$>^6-SzJ$ z?Q|7&xd?R|KA}&xWcA3WOl5c9tr;Kr;FjzUH|_Laq$)>V3o!OP{b|qR>bB0PzfAP+ z7XNgq-1TyoJ9%&#>w2)FdxW*L3(L`XPn(8UN&BQg?VJ1i1xKwmmlZC*gSN*ZdhRCp)q|LW}2(5Y24ZlT@^|CEZoBU$H5`-y(Rz|k% zh9}RQz{T!F=6SohR*=VNl{qSfQ^jCx`cVn7H>_>kB}d}qM8Ty;lk`A%sNqe_OCs~* z$cV$V@iS|_wDke_t$JR_SQSiVC;DqWOB|BTTB=vagY5@F!{J)VWzG9YRo1l>XinIh zc?$f}a^^ZAbeO?}M-T?ndwcbdCOYI>hnQY^;W2H0J4fB3naw;Gn#_rzDc*`fU+x%| zc^T%-T7qg=Li?HV?akmM`Bc3{aX3*-BK>iszE5wg$#MN1XGUFK<}e6ZKNf?<>*38+ zp=xGdVj;Pbyc(KUHho~pozOu8G`1%=3KP6+h7K}3G-YC-gDApGku$ZRQXQ#|qRzig z_;%7une5(PB|=St>Pc>@ym-3cPok$s3wDOL*jkQFnqCf@UTPh}Ji{$FECK*?Z~%({ zK>r-TB2~{XkAzPZQ5SuhqT9W2IiX*#2FO(_ASSKvqf=UFaMo+wt0)F7ix6F}w`J76 znv`49DYu6r)<4X(GxTu@WjUXETdPGgJd0>itE=z;F-5p44#~IlfpK_{!nJJ=C0Ap6 z2iHRvC1TDCX0|_nOaXwpN-B_CtQIn}uiCg5u7gUkw%QAyWs#~Eo^Fx7y!x?f-WG)5 z2ybO(m!6RYQ+@Fis@%7IL8Whd|ME^clVk4&#n<1JS7!R(fE&5S3)Qb)2(tlp*p!$j znKmno-cLoc89(zNWrkAi8C!phc0Y76eK*(g62co5-^R@wtJlS~Y>zJMgt z;er=pgn`Rl)Xt?NnBdK$>`YRYLKT~ep?4xO+PDa$q8Ef`5W=@8ww@f5m*DzxlMIhG z>I~q5msqh})teY_bjopcjr(Yv&F}vPzjOosKnxUvk@d%@ryyb5^udzp4QoE?+O##{ zi?u-9ChOpl)eE{?1>cr2x_Xf5v^UWoUI=Y#um+PGp_A^x55S9?B|7NH>V-(*ukG4K zyJ{O{0x-KdyQS&sv*ytPG^SG@?Na|9&wzq0#4^wl;+O%l)W7IQ1_5VI;o6Z31s5z! z(e$<&~?2rgirEp=_af4A4?`#Z;mBBw}O8EIg3{%V(7ybKqF`NwL+(d*PX2Pcn)4 zmjrFg7cX27%vDH^t1Y|$n5$%TIy*71hV)q`u}D%&)St)Z5&}-GG$pV(3{K7dyrwxV zyGI|Sw^`+Wh`_-OGL`p+TWY9UzccpzV7u&7T(%#5SOk0rJPA7yo3Z77ge>u(@lN}g zW%|}#z+Q#)Bt_Qe&#C0GY`$VowxUS$j64+}9Z{oTqzSew# zh!;MenrX`@+*ejF_Lc-&Z_p%h3tWWn;MQ3vRoj_|PzJM1`+~&Sot5`_Ia3a%rEM#( zdLt(Ev0bVUB+=sMK-@ZWnaw#Fez1HzBOAq`8#q%$i}utuCqI zED=QcEiBY;Lyby#7Zk#ei(C;2m5OmwVpmu(ZvdUSWXGgMo~g>J&&0N2>l-^w0;Wc# zK=p0ZS${7#-|h6vHMpIA&0m-yWh&+u)CEN+u)f^L>iKTOpNcz29$CV5Iv3d5X2i-d zD-DK=<-T%%exSzg+W|0FSXSW?RQ8s_QZyv9f>F|j8!7Fwp=^2O4-5JAL%nQDuj`9Z z4i2Uc3_n4>BT#0iy15EU<>-@=5|7&|>tg*ka4Be@#;l79mG$8{urQSCDh_%VfjlGU zQq8IxpQ2b1Gje3|(Wgl-FKL5({fd1{y`|jx%6cBtsTn1sqF6Z}eg?cXqmMoISj_Q) zHcNr6C#vQCHUHe9GXV0pOmZ?P51Q)a8aU>e-iK$yZ888$BFh=JDHCLhu*YCq@~4vB z&9Ea}Keyh5nP0!Mmv}7~r`Ud!Y#qb-LiAZE4&gPY`szQY(;J^7y*XFP@+2XfU#A>@ zb*)QOlub!Gk$b5(7H}z>NH_?la=w#a7XdaFyGZ2P(#^%v<&gx^-K&JTq@-)*Qqrw? z<^G(1#2_+`Me1b9;G)Spd(-7UChe}N!Rx|vCCJ=VfKZFIVy-f+)l;#S4azGX$@#(h z)t+CK!us^b)1je1f2M}CDz96~%-f%tRM)<4Rlkb~Is$a64OL9gQJ~XpsA7VS#dCMI z7UF$vHAWA%wg7Ptwghp)nObB*v%Ki@^a>_*?TwgjOVVdDz9jA6zW@TTu{7+94%UVD zB?s#o8@?srUCl2ce;bp{bX`id}3UpK%pYmm~2v5g=nUV2NgMY3{` zzFc`Js+GAVS6TWW7H*O7Tqb+!OMfC@zOwX>7H*N`T;@Qby!1~37Ai~sYT*_MkV&;W zSm3ubxNC)RtU^62u?PU%u>)9yS^A4&ezO@!WERW5n#Y0Ecpa+1bG>roWkjOuxCL1~ zGYo?0tCV3&^imSl;%N0)S0efv;H`|p-XWSp1)EW*i( zk?;yp%7#~|E-+3?Ff0Pbc!KeY7~|vw!y**H5?n17xjJFai7tGV(T@|?h{n8$KGpP$ zq?knjoRR=6l61~EW6JyKnpm(?E~>P(SgjD`qwhkamg8BeBG7LUOudOm zn^_)hX5FLBAo?EAD#f&Z@-hcxF1gJ;+tVJ!AoM0^&ys8LL_9t&PZX~m1`V5-DBPB- z=r*F;sBUArjqA2Zx5c_G(QTrj`!-C=6~}5uZp&A=R5-7~`7u)CT#L9CbE#n73g)*3 zBXL12YV5W`g-ZnsDp(jJHO{q&YcZD!QlIYIg3-93ynlJoZ8&4yRJfE?=~8w~fN|Xx z>9$xmktk)2Mk%{37)yxI7v;)rjF-yq9Z_^tH#NM}tCp8~)pWYd?nbBA(dpe5j3;zh zgH$LNjEry_9py$Nc(gIjZP8+Gi*>WoZ0m|tuq{}Wl+H0YQ#z;8IhD?-bWWvnDxFhl z6MV@@zJ%x(C#CbHe1$S5`I3pglpmvLUgh&DpI3R4f5~+~i5}Qu8vT0AVhe86j2GA8 z%*i77QqLC5zWJsNWX8`qwObiXX7v!xJ?HZ?=b~>*4ew&`ior2O0Q0!|xq|r06Y5f) zt}K`IyEd=P6LRhKj8(_0i&&!^p4XaFq_#>sZ4Eda-l8XUGu{;!0e4SUlgUL>+_`6+ zZk)XYvQ*1+);W+xcWk=iDp;h)tb&YmKV}uh*^gO8>&j^u>O5u@TJo3`PeQ#;gcbpC zX#%hafG7c21i)niti@F-;^_ewkBjA|E>AEm0-&A%EONBhYyjwfs4GbIfp|EIAJvLQ zc74=F0x`yBs%mE$#(X=_{-#OkgTS=EsYLhw<~=DnvSnf7_L{=$dRQxf+qXOi`R`@= zAQ&@YF=6UcK41;g9^=p_cM}OetrWX|P-d|cR8RNosr|cb z43&@798Wgm+s@8Zc44tL;o>0^b|&wB@(8<@b5T~tLAFGg7$1e76(_l|-5Tf7f zal0J&b=v_xlMvm=yc#%$oPp2GLgG9H%^b`146gND=Wt!fbvf6&xYm4#n-|?nb!&L^ zN%THNKStEICxNyID9+1Hjs^9zFvYR(VLE_420#3yFkh=eDOBwV1Zy_WhDv~Ip5K8^ z`NK6D&-ml!#L=IH@T3kxxP@v$<~_yeL1pPMgTwF3*+W!xFJ}))BSzI=O`iPRrW+XQ zEJG2Ev%#7_B8l9lw5@H2s9!-koX6JlW>zImnPOFANg3$8QV*+@dA*a!y$WRQd;a~{V??yB zlgjL4I;I?stkmyAV3qSg_+L<_!JSL4IUi zv6j!X2asnOX+8X2DvW!$Jd|B?4^`pd-V3epv)pum_G0K%R?{-6w;Rzat2vY;_{cPS zDT<6ugYX3*aD^L)Mo4u(;0h6rT$Y#^>Gbz)%IoFQQ_KwY_nUWmPGcB2dLVp zSAPf|OYtKrx}g~J%T&+S{J{|?u&QQ=bpIr)-pps9zZ6-`XfEU5_<<mmB}$Mi7<4rL+1cBb{p}>1C4P75pD0_SftCL0?ChT@ zTce0&|DV~}KUcN}0ejYY6neKzK2&E7e<9qy!5()~Ialik_Df)Pn4~{G&DGV;Uy0cF zL<~CeW1_b_q4(=K=>6wz>HS9Z7~{I=?U&H|?Hu%ew_AF@7d?i(E_z`?k1=Vd_A>JB zroDd>JqExodiy8zm=5ej?=QQh_g|ui_PD~G4}Ou@SH@3XW2TiG_?NC}xH zc9;GiWut1YG#1#M{lCga_jvg1cWRv|IZHT?6B3wlak9-%Vo2wvu-U?5%fJs|)E?FD zP^d}hzg?sf(k45zaAoyzCu}Ry|IUyzJzFOE+jFo1Hplb_5gJQV?MdjJ8?# zVuab4!`@2i2C@-$ZpXsIgq@49M8m#Gv`q;dw$hEq9Cm)k!lQ(pk1!m=zFF92at>SR z2D|B^UD&bkiNY>Kn6hCbvmR$q4qNF)kHaqRSa`UwixEa{*vzPUoL6($N}KURyDxr! zp)bNc8TPfpHe+zuN;f=5yMM>RBSpJE!U-7mt->~!=&+S;_zrtu$HIe!JrLpS4Ev43 zHV^5rm2U9lQ>~o0W8oTM&x?K%V_zd|bC?cW=|-=^p1)(^A;O*?{WQjYi?APZ3H7DY zjlf|q*s*Y}uopx>i?MGIwz*SBTj@s5VV8C+JXF}F2sdkdPYL@+9okCU$u0OEj1OfE zMrf~LPYU~y4z|*ExDo83`0(OT^qUxarLZ6EU@P5V2_c#ALe$aXWH|a=jD3Kxf84=V zx>0c03wJDhlCT#>zjp{5R|y;6C${WNk+xYafp;6X**mkzuLzdiGzjwK>Di46nKoaD z3+T&5&nKu%=Us%yw)^y_VCRxqD?a#YO4wH8Ku`#`pyE-P8_xstyf9@>gbh{vT(J3t zUj2oA$*ji?uG_I0H^FiK18!{2+&QU*(Y9x6i-{wW%<)`L-^H~K_}N?+r1EQ*vPO2x zYHjlVuZh8r7uwlPYQfZk`T_mj?+7@dxwW?!nj4HKJvhUE8I5=$&qGxl7ov@q?Dd-= z)!=zkakCuf=ahGfn=t!!u!{!|Ulx!hdpv*g-SjCNzDIC2@9!d{tf8IfPcHPs<5*H@ z4f8ID$CE<*^0-4;gELJF^DJU zhC0~^b-a5}y$!ZLPs9u7aaP`~Gp5*p5h1U6rML)$_XMv#Fwka|)HAzMZ`)Ps1TVZ# zmi zROAFUeH4iCAp*ESdW|hT&V%wZZsLqII+ve#I(dvOHgM zI@}AtYJf#9eGM&^(fd!4-)I9auhnV$hLzz~2iJ`ZF>U^V4MH*&!pZp5UJjnTH%$?z`fs2r5?% zvfOkE`dtUz3UrCX6(iqs(3?d#Zi~PVJFv#e1g!O}<|ifogYkVZhKo$Pw&1?Pe(ZxM zh_fZ7p%G55O_34xA3Cr``GmUo)-V9}B;c6u*8|m1;(Ot31a>NTK@T`nDq83?nRzTl z%Z;mrC8e$6!$OS|TB=|a#j#Z0)#PbhAa6(6MhVuFuyaNG&q|XY*zVf=F^l%{ES3P zd0!gL_^+*4*F_G#-$6Z z7pAu8`rS(?eYL&(`j-<@4%2qVQbdCX)eajrSNG={bZ~L2AXUG9W+`q`nhCXKhPI$4 zrN-^Fw^%#ZQSQsdFRMI-?B!fJUA(I@R+|VMb55h*Mk)8IN*LIiD%ADyq^`NSbo+Bt zH~Q`c6%)s1zr*_UfdAl=nM=5K*kM~bd4;qUCbV{>@ANFWl-m8ZMx3R^<|9`GUxoFZ)c2Gbn3FVg}iLU>jfNS*?KJPK;y|r}+%jEuU&<1)Vp4{<{dj;t)0c-M*I5IOqim}}KWhrs%7ezY#((A{_(LoS_ zZi`NsdMlmN>pF)GN;)S}j7#1ELc#P5?oJ@bMOxqkF;10UI* z^l3KpUo?6(?e5)VG76@aW;@-{?p@{4yL-WU>>I~ckHikdtseF!tKC5uc(8oUb&w9C zeaL9*!n0FafOrirFwy3teL)f1_z8j-*=y?dve2Hg|qi`=J_Ut+2P=sYXi{2c{jBxD}hl(GPx~7TO z4t`J*8q?eAgPMNCQK@(w-P(z240lj>iuKrzm}luOPPC0ICrV;&Cn~>x4V)Zkdiy36 zrx?`#fG?5_75jqv-;;QM%AX84PvRG*a)w;%E4V^!U%?r-Y&gZRXF6$!q9jD4m_p2_ z5uN97V=EJm%t7MI#@1MA7*I>WRKH*MhH%&M0Gb|nSyl2Z5Z_RaCJ6`f6$^*5!$ZBp zLnxeSOzj+}1vXjH?!ECp?wI)t=6nSnzT|_zbL~%A?ob@D#AJ$rT*6V#;G+3mcb{`_`4rasn2yP%!r zXRSj5SzkQH`~`Bnv~7UhNp=i2jcNco{1Vehd}CEA?MW4=7VpASFD_Q#RUABU*mzy ziioKv)>O&y(0>)t{(z&Y5p%ub0FR^!LqVBy$)}eBd@rZEdB?ZZD|MN;WaT{W7fzQI zpB|}A5jLhrxWAZpg(rACbT(sng~LD!=X2a=fg+61V}v^YD&5BQUyo(4dMi67jf0@? z=0M+r*R|H)+P*&y7qRAjfLtpF3cNxhKUU;=GZ&BWrq4HroU)wQ0m~jAZVMuBT@f3~ zytE{0r{wFBf1I~qu!rR=^M_ja1h}dl=2LHN;(0 zoVBez7Jr;(g1MQr-`r(tZpL#d9I896Vi8&N)3adyFtx||&MpTTtFf(2Y}K--mB~cmNG3_~sRT37{=9v^LC-&n zlYPNtet4+xoLFn-40IoO28RPDE%GyeSem0*QWCev<>V~EiN<~VeIc_?2y9y8D1#NfwMjUv0K3fM3m%o-eHtWMYJR+QxhrLGo9;o7lLKkbU9Eo(w&Ml2^qRe|%;Cte zt;4(=9>)u-SEqbU<3wsI2L0QQ>GSK4C2fy8T`z&=lHPt&xvdfH-j4C?WmTJF1)jCSly#f}y1m7p*1vJFmR*$KkCR1I`m7D1xemjhUY{cx+e626oIoRqs# z<*ot${oqmkD@eCKsQ5yA&zYUp4~T-Br@er_m~ZVBy1nl01H#+dv`bSj^br?WEFZw2 z_z=1kokeOn-<%N{mtfxTa60EcW{QDs?*-cbg##!a5yOnVV%v^3gT$$Z=4M_ zZ>gU{&|jOMkIp5+WB4F^IsDrP+KN;ExxJX5BmsBWtvPPdaqIE{Rs=S47&-tACi2seRH+ak4c@UPh7da+NFdPkip3 z$juAu!2M_uJ?F#~iv+$KD#2Hw#8#)l%#Di6rAwl7CgGFSUdLsT!&S5B^;!Gal9Tu+ zIfQJ~_HrS;qORnlesKfYgJ2q=E>TnQ3&rX?=WJ?Q{%Tvbf#WD{zSI$&>dg*61Hrov z;t7l}c*@h!py)+AgI+8UcIIb3L7R?IoBY-Kx`dG_`WEyBQ@yzcdLQVOj({?W?knm|@3}Gd}vFMV6Gur7+;ibJYqX_U*Wd1=aeUvWz11HjlFu zX2((Ah2TB7o@xX4il6esx6++`;Z>xfmvI}Yol3%EvJb6zvm}#i@60A1=(XD_M2leLE~uI?>HpJWgAl z)wE-J8RYRIv|sZ0Vj>TV0Qgb@un2%JCjg58_(}q>2!O990E=w!nx6r{yZ;SbPO+tg z1L1R;pG{{e;XumzTslh$2U6DO(^*P5kg~oIXT4f=Dd9kRg85#0A-V>5d8IxAW$AMC z8UW!lG(&q~jDjC6x~Lz1L1nO;q6pkQi-6Lz2pEbZpy(_D_sk-o^eh5~;s_`@i@^J4 z5m0&-0Yh;F6rDxjUJtpI3HWP?*Mm{`~(0%u=^=X$gA*_!m?ll!m z=6Bj6YT>MutsuNZ#N+q|Rz9tdrZP1PZ+%<~db8Ol--i zbmdH@a>lxHUY*Jr?aE>M(M^+~HXi4cU5Je2Z`p^?H<(!)NtY)NaACwCz;~SH=b|?d z;RV5LbP`V^?EADfy~$0IK-9%Y8I0V#W;ipx!p&>C>B@XWSKi*LKkz?ca&E z+fhx?uJC5sZ2BjP{>3qU6@&gIqW=s>zsZJ4w)#s(K1DoBPU`(+C8KQ^lG&)deD43WWsN__&XH;mW$t^__vA6V|_QN%OdAF$#O>MyTWbU zM7OlQBNQj=&F}#)rSWTJ(d=`DH-o`h-uhqU#kOdccngqixr$Byx8+9stt?D>>T5^H zKg6;|7`vGskWy{3Z3`Ro(59u}afdnLMATW=VYa@*@H?JMpD?@Y_^ zYoce*3=o7XDoD8;;g17$h$MT5-`l~jk+(=GYgnM4qfNzM{`rxU|UaMDaUezY*1rF|NS+X~@!I*Fy}#L-Gfu08f74n2zdVbej3 z%vcuM@@rRtt=w1%zv=&Rmd9ogm{W?(km+;m0Wii@Q@}9R!BQHU*2j^L`x!M#naS#r;r02jPz?1dF?4XB`B5 zYny__-Pybj!e3Gd7WYF19fUup5G?M83fjtWUpwDUfVk77?c5J^axJQt=TgK!*v|It z4N}Zapmy;Owe#&gJTDZW!`uDsY~Rl0P+TCEW~RnWkU!kPh!ZhNqUrax5$qYNJNeqK z|NWg@i-x*)>SxK*mafJ9P(cUb>nQ|_`=Nq1{r9!=?X3=XsFp1*XNC84auu!en>>#_ zR>YS+pG%X51^Z<(x3lIy^62@t&iaQOEq{xzeLWM9We@(IXceRuMqvU<<0*CBNQI{!7X2?c~3e{8>A>L&@K?laDF+*LE_~!;I}O3@?}gYe;Km3zO%C_i)5x zzPQAj5$6-9hD(&3@6Cwwa8wC9ONZRFR%HyaKhO8B_=PYQfpN&|fU#32z!P6V-1BE7 z!*vr=j@(87lHxk=ieIV_A65<~pGyg)R-W#{iT;(m@H->%whJB#Kmw-Vui6EdQ&6du zi(Tj{c0|H=(Vsg!?Xs2G1?G6_nCj9)_;Dft-MlqmA$Xd`c>e_N3I>>%Cw2stm>5~X zJIN=^sJqrptaXjxgE}Y7sK;RDKiee^^O{Ob9JXSW^3{dy5=#Y9FH+(+?GntN5WXdzw74k{4Rbt5)!piC!`TKUgYrUot)VmT6p}BttbxAiWFYd;uy@ncBh9XHe*TLemB%9HsrkS*8 z=oq@yM8#Q+1JOZsRSX$vLs-Qa&S)DlP!3ie7)%sbtSIMJ)^bFam-8$4&J$T&F033a z5E;&bKqqs{>sDBIYNeVjpXzkk*E-OBGpj9y!}rV^^^U0CA?ls4dW&%_3GGW0Y4h7P z9Uaj5pK`V6RmW!Tq?K%w*S%2|a#?!N3wyb{HTz-kv<`V`6R;SuHHUcEUn}xm$0plk z#fcrO`MPOKQIAjdlpF6SrcbrqN7(uRH(S+zkO<#kb@Sx)vR5n3SAOyDrZ*c1pUzdg zfM;+$hIZXR`2UbK<%_`?bgSMc}?B* zluDuPfnoC4yr*YjnKO{<#E!-%$kXo1CkgfZJ>9W^I#&4V*E47J>jM-}zp@dL^sAz- zUq4Mu{rVZg)@Qj{zkZI0_3N$BbN#9!seYxQndflTHqk00$F>tyz3)yXOsce0Uo<*k$N^TIEY>pJ<%#OP$$Nc#DP8`}LW zTD$0H5uLlAMSB9mRS{YN`-m;CaI!TJI$+P#4@-1s_Jo4pPG2EJuf*|6ST#M!WFE}S4-t`XMh)p5`} zYnGm5vze^)#3zjHUs0zguXKBF%>YQNmm4~hS3IYt(grCauy`U#YofGb6AiSzu#vD_d%1;J4I3-k#ot(CtU{Vt*=mvLV&wPrpUi zNS+T8#`09u$&>9ov%7}~Ti@Y^JlVo4w!Wvho*ic-$gWfH@DVr z1*lkd?V02#9o?mz-zlf5Dw&|^zO1Rz%lhd-Me@<_xwATO*{weaXT&JQ{?qDo6wQC$ z?uCB@$@$Me5$pD!_ukv~pQ4qh!mM#pMCbOOqP+|MDSERt$+$~tlDdSK*J4o_+j5sC z5XNKoKA3cjHKgqI&&G(?`U@cn^IrCtxAH<5F$%G6SzV5j>DHZISOCfCR*_h@ZryojTen1O7rG^) zbL*C9??SgkZ|jShPo(_4ahK99b%p6xhi&PW38G847{8=jebA&wT6{J_iZY-ety}W| z_|bgsDc!n2y0rk9ij-8Osk_rHCUfS$_=sh(F~lt#l=2k)>WuF&hD@i1cLXfGYK>u` zEEGygr56HhS8MCS1L*k+Rd1Or)mtG9n!4AImQE-2vXkKI&FW`nYSp{C9H*g*fo%N( zm8uZcp&iW4%`H!*o(;3~n?<|nH`@$}ek+Frh{#2w`P*3;gMi0Fg=o+?zrQ}vcxwVXJR9Tdrk~6`Pk}G@7O+xjW0y#b3 zPnlj*b$d-qENhB_>A52LDC8dfQ`We@uttnh?MO-~9sRFzs><=2Vml_&6ey~3YfTC| zYQ?aTLt_eYakG&Rcp={)p{Ow?(Av}47xThtpw4nu5R>I3bK1ZEy=^z5-(@$NcZ|~~ zUQ>-WyJ4!(Ub~>znX1d*Dq(hJ8P-nOnYGvK?9#Z4oLH1+(rw$|1WaE_ zDh1irY6WSVI1qrJOeM@FG?%zoHgOPHD*6PKY3klRmpB-Rn@fyJ&v!kS7*n>b$t3ej zX4%0S$jHwhLKypbMV%e+!5OoILkU}lal;OtsQBTEt06}anKhSC@syu`1C^%d5=On; zIub0jQAC{y93?=drEHr^DDCwBXyr6jrPs9hvZhL#`YRI8C2EjUcI!#P95G6>D$ovs~gjCif55TY>0DWFe0t$#C-c`Uym; z96x%hLN9t60cZG4QoN_A+!~LvPbBP5AH>jc^!U8Xftk@0-C2xP-polLhS+vZN5aEJ zM8d^Nk#+LUSxZbk?flI~=v}r8ekXR~*8zB!X%4n|y+CXaY+oMpUCYIhxLtqF52Tw? zh|j7Vnwh$wyB*kcsvS$y?dZM*c0b)qj0a@U%AJrv|;&mfHbtfJ1(o=Hr;_1T22=WsLMdKMA0<1ayPlk~|-^HS+_ ze}42(?HsRpJ2&PPMyl~#6+fGs*Ax-+s{^&6g1J$E$_k=$xW|W7f3dw-m<$R|&v2hY zh|cBKdLB1?sOa*jz`H`}@cGJlfpWa2g4TJ8j~W&~Beg6p5M!TD=G5oC@B%`9Xo`{g zLSm2V_oeU&9&go7oa*#h`P|lQh3)pY=L1+rXP;BG?84`Y-fW+10!#T^ zbq`13V@X7&LY7o>ROCNJq_gGpAq!CpD*NLc1eNulZugNY`IN80)&CPS-aRldd-jTUT%+ z-co!*qCIsgr zu1zK5@yrXaB(eQ8uc`XtENxi?ZbyP20^!@OUq{2OkZopMCCm|{W@_#Tr^!C(g)ali zskthUnz!e{ci-LCZIRkZx7|Eg%=YnaF7pwm*V1p>!x!mY=(gz1)@_qUr$1Wi4x3L{ zhP6xc32UE5nD$;GgOPOm<={)VUqQ%x;%WueL9g<#^KblC6pYQNU()l6QJ5|UQ^Q`F zRbYsIG+s%;aDQn^5WR|cXF33(TD9!)L-Ev|)weh@FP%+~MVsg?^vW9`SQEiliy(Wk zB6v*~!6^Zm0>57Czak00ep?b{4l=Fm&i?Th>gvdcR}7&gecehJ>#L$pU#}%59legQ zbv-xYuT}hYic4Q#PsIE*50v9)4l2$ZSh}i94*VH$$Y7RP^I2}_t<~Z+Mb+u;8;GH| zg4b4|gG#$e@D0lGnhIKPRD8s+D#agPDO#>fT)-w3pW&Nju8bIUE_Qj5$m2m|L%8feHW`;`u=3Nb^5MGw&%~%d0lR8 zC&nLj{n3{jox>tjd$Q&m&3NOkK93XJ-eE4znoo7lwhfbbr|(Fm3Rn2+U* zL9DYXo?5qkj*NG6t$BbOLNMxHQxqC^a%;Vt8&6vAQs6aJi&L`q2v9NnTAduFoszv* zIZfTITl6_Sm7aPU=!(>q@#<+CC%RjC{GfaXG#uTdY)7N@KE+3@qIjKWJh}=^Pp{-$ z5lBu?-%qStPk-{0ww{Vsm!9rTs~K)!QAFE%O22pJ9HPAozbtyQb7KgKbg#p< z^vmScrC%>|`gNZ%;^%>oRx|FgqL` z6ziA9S?$2STy5=WpkIHl{O15z+4|=deFD+m#{J^KEfM*Iz@fYqre$HDpNl?B*v~sq zA0ga$4@S;UG0w|3K1z~Tz@v{57P7hM9#S0_G==8aInvn4@;wph01SPF ztj1Tlg-3}Ax(=NjukSnGAoI-aN>t7d;~LEb55 zmW_+ALyt`&^9a02(s>)XH;BGLUcA1pW){W#n7*AL2G%lpcq);s^U?63bpYzA@6?pM z!Hio|2I13$J{`(s6JGReD8&oX+{Vl@Se=F+z_k+abv%gK)dWakG?BVu!o_d|QVcri-&Z!M-Y=b-a!BjOUmHH;qe;Z_50eNfo>>W7Kpd=1`I!bxc< zE>=~wzOVcd%g4o@5Tn*sl5f~HJvOA#1W5;6X47MO`~xUCKm0>t-F`Urd_}an{P1!( zcYatz=iVpQ+EVm8zIai_Thg8fh~{ixY#es_qowXJU)*6`zStVs<%?NyXsmz4nDJUa zBE%Ozs=)dKZOO33*6m9>4}r~Y`fI~ZJ@p;PA5(NH%gUh~tLV?uDq5*(y=?w)ac1cg zoxNypZ$Ij}w!5A#qnvGYj>cf7Fz#ryx8_cgmYT+&tXRqoZih3@YW)X6^b>Bjrag~( z*?A~6ehNhUEk7g7Wn2G;AmxT~O#!AV-X@sTe&YapDngBZ&aIkr`Sue^zX0Hh=XM0Y zB+>X4xA5t0zL+`JY_76}y05o3{~?*&r{?+Y2bn}|fftLyH*qK1Yimu{B{*#l{2ox_58Oh$a95Z75g;W0MBqr`kFs_=<#nR@ zXW$x_{z4ejd?pn5($f4VZ6b z|AV0QKitINKM5QE%Pl-jw4_U?6VXqRcTxTqC~eA~wO@33Bv5Mno4kbX4&tKw7~x!W z832;?8-r=)2FiDAmxsl^^QAq6u`gBB`BIOV{HIUY%5pRR*-Hd|JUip){ELdD&Zz7| zMYV%)nnucNs;HaB2E=f3g4_8NLvZ;v#yn&PQiPRwGCSHMz-%{UMLSJtsU_}NO^NE? zNIUU0Ie@gFl_%7XjxZU*X|}4J*N6> zmtT&aBdC!&YmWSi%TLt)Xs_8v)qccp5ZEUPI4|P>1L8>Ic{a11w%sTl;5Q12e1>t-6tC&=7rUuX(3*NcfqL&O;ThY6CY<`253 zn!ZEd5iFd8YHy7%R~prRhnDY+%Ays2+45)5N_}lKfVoN+8QSXn#8Wbp4L6VVGPh>- z{#0sC`&oVlQ=8RH0gPyZ1$_))J`V9FHqFv3v%X7$ail2 zNKFg*&M7>%Cr#t=q$!A}^T~956r^}?`f+-2(wRIruB^!HcY1qV$@b1;F3v#F@df94 z%`u30&2jF0UzU<`RLj(S(wkUuCrx(bwKejitck&-Nk==4D%Z6MFT3cAS4O z#)R~IY6_adsShe`E0y|zifU3AG*!$^5-(8N@157H-=VIx_7Oe&&c1|=W!#7_SA0Ki z;RaCT+gy7tQYumN*L%$n6h_DW3A|=iiB7Yk8fn>aR{Ou1x2P?XfYg>LLbYX@a93>+ z&Mw-bVy-P0ceiDQ=)pg}yVy8@Tgc3>#@ExgVrt|1(dCQS<=l*j(GgGIX3X5w(UD8R zWv4XaC0^cW?aN2sB+?h;9!@&`_p>_Q_4{z9Qfv2n$g{?pcEh9>s)He1-}FiJ(CXMw zEN|#@^$gVby${vHvT?)1{PyyOhx_6O6TeD7n8=kktWK5~7w0ZMGoG)HWELMZtL_`R z>%OH^_hoVWRwJ1H+C)A&kO=J?81zGCDDfx#eEpnQvEAk$cD31lPb98;I8!^KQ}^X+ z_l>H1@A(-c=f2sOX1 ziB70rycsW%22=G|8Uh*Iq@jftGv4uF#!pb0@CS{9B{+c$9`Yd2%|@(8*qBW9$Zfo` zBUUCC#eFnc0wS4`R>0IpzlKViWVc#p@5E;|shl-T%%?yzy3OLVH$i2k5c4U}jBc~| zyhVJNw(v0#DBD*n4*LMpumB~)uZGuS1wqs(GO!70g?^K7` zq^cRHEht2)2Ak|QNmkCCXN5bNWUMzMnMDWAs+(P|q;BmgyscCB3zPP(we~IL+mx<- zGRhy(BP@$H@S#mVJPdf-Du2*zmB?P>M$-1lqdN7!NNr~?)M%`P8>aJQ^}Hd|KzZ)Ta;AXCbMa4(@inhnAk@$Nh zS}!%Fn|G-eH&(JJ%e-^0ddxIc)j(~q;HttlFIv|%UjA~n!X@M7MY)TT@p3$~->7Qa z=t$;(<2!t?VycDg>N~9vS!bi~fgkKN87DgYn3?t^J;}aA(0DSHZxLulw{QlMk(jpO zQ%swg{sh{y#5VWvxmKei!>6&$=y{Qip4MU;JuTlxPiwVCPkaP?J3D=1W}mZXweQ~U z_Q_5|+QJ+2)@TK9f7t4=(gNA)Q;1x=M_XN#8A**} zS4v0kS53}V*Fp8YyQ<6VRn?ijT6Ng##gEfoQ}f%2%#wJ&PyWJq_(+F`bK&9c4i8t& zYVUE@-u?5@@kC;q{V5$a)z_Aa*{#k0U@o@XZ*|)(4!<+DF3KGAjE-KvOfvbH_|cqK zq@CTq55Df%6<=n%3zFVtt1f7q0DoHqn$ay}=~s)yyxFdpH{1Og^k<21ZreRHv0btL ze>3xSwtG}&pXbkN<0rb?nAk4uOl;R=h^bm=wkvS}P>{CWd%NZ0&6E;Ruw^YVcXFRx0s`xMCZ*TQ`COd_!X|CQdF$~)26y!cdA zm=?%`-S*4GrNhf;=D_%ju6TL1G~c5Z_sj+h@zs=E#$Y{fc$$*JNtruQlGrU&FESSMBGM;1aq0 z`Xqhq?D+7^@{}E0TX_JQZmaCLMq59mwz|2psA07x)YFMiY8Y0v02SDTIT?pp%Oqos z`puguCz4@fKbDL@1~#ufkeHWH1PA2)8 zITslQBKeXwF^g|o#_p2Ok)(2-GQ@leG^5)rK1UN&o<+ob3N)kJEIxV0s&{B{y2x|| zvQcY~RcqM;e>&Uxn}O@QRL2nNZ)P2w+78HiB8@X71c3~`)LVXa=A}1v;)Ha?6y!Cu#@~~f_AHBft=LzPX z^$)`%w!m{$L*P64=aV_b2TN@;U%==Bht7V1Z{PNs13w72sz2=;Vy>nOlR7+mJo{nl z=sW=6$K=V@bK#2!<7XL)@+@Ph+_;#So@HD@*wT&orHV(2Yj^T8BFu-fcI50M#=nZE z&h@;FhT(`ZYi{Aj;|-(U6al_2t@o$muS>gHto705#|inNx4~!p(&4X>pU7o)*il zvv8a`CoD?I6BgTV+?#yA-R8N^?1*ybIdRwb5JYeGJ3_`=r+-@N9y=%8VR}cI`F7Vi z;Su=wD17kj<_hrj?50J?!@d~>`jWNj&r3-~Texjy)E`&(T}eX5Kde3H@G7N}E$1)t z%bTR9{7S6{{dhTXulWk@?ln;t&)O@a(ba&@aOdMuzs$$rWtbla2ilkGZK+U>9cYor z&FgK6tg{V$;M!}eK+ebm(ovvTEBw~0R4Qln+vD3;lQvS>sr*>u8d7|OJ(wEcVeV^4 zG`4c%aP74OUbb}|0gsrPqQaRYt<0E=+0I=#iVBJ6jodZ#^@QvJ@ES>`GPZ(`g&*tlm1dTTdiJifk zb^&X2){fxKg1?1ZbQ8A#%$o(dgQC7dGE&8TcNH;EZlh z02Voew-J`m>3FNRk-=BXw<-Uf{^Y*?CS^=6@-A1nRX6{Rb~Jpu@XFP1hVLLkYwu8T zyGQRNIyn-)%VpeY8M;UB=4NY1-}V?~BTJ9&Td}#gbpO*%yCXQmXvIYC0(V_IL$tim zh`dJ``1oG^PM3XSHQd6;Q$L*tE$vUCIwJO%b6ZexCGGvzZ9({6ae;_V)~W)D?8h)- z?%5)D#VT08Q4ek|<#jZH0;P}oXKWR?8)di)$z~E!9h>f{0pwU zrj;<5eJ!UyuU~JO2;CXdy+C;`7m(@ci2IrDdqKUxUeEO;t~ICvbVM~cfUm=gAa2&u z?st<0yl^dS6ry`1oP5ZJSB${X@k(Fqg8F-DLSD~Zdi3G7qWvty=7i=xbJ66Nq>U(# zDvheu2RZbAG&fnUb7po9ipyfOmbi2D9dY{(*Aai%!TXtUOXjY%H?FnUYQ+R?Ec-Fx z1CnhQeShN2>FmV*{6O||FkRKySMDzlFc!=fIzRf94c~`wCIf!Vg%6~bvcc+XWuUgE zehTdvE9oVNfyn|FlwQyT;PSu>L`H^riak0ftV+yE-H zzqr<%)FR@ihm(+*%xB=o3s01wgQP#ewHSe`dJ$N zW~+W=#CXv@H8lxl~9oc&Hs$^A@={WMMZ5%ua>j3dkCVDgTwBc93o=(*@F z3L%#G!`*880kB~GW75ZCd>u7%zdGeQ#EYIMTXqRv0P@RGUENMOl~+^#FUq$|YmIpr zWj}}9J99|hAmHmfn&aO{7|-z)b#wgv`lSM1^UXk7y4k#bDNx2eFLObg7ZpjJS5hNu zCo`cpQm(uyPwOop)~1-CE7E!+H>UBzveQd3y7D^c4tMHnrspb=%(KNz(*T|C6B&h0 z`&w$A@mh-8&OA77Roo!piEKVUOE$MqShBg9FqVy?PBtrI+1v`GrJKnnOk}gEEgKa{ z$>wm$=Gn-`NHtZ`+B$h0Qn3^}8A0nd;3gj4!Yo<6jq;M!?S!$c6m_yXIF{8mAT8ZYRx1-( z@u)o3X%$Jy>Ist78OX{=c}*2HVMQ#PgVx(gnv4`_y_Fj>5~|54E~7jrBgJ?R#qOfC z`U|E~D%T|`19T*1bW)O1OFQS{BnRXaw=izprS*R%Lz5T22_N7F#N%)hn=h>&z9b&& zcFK$8t1;-)(8af&O*=W6$e>!Q?w;zdYaE;T7%mE@t(}En>%I(p;Ts^>__)Bkqk6UT zLUVel^KeSbtGmJQqYd&~YrRVO+KPrNb_}$~>gzZ0GGCPbY(X^kF?oJKT%VBV46l7T z-plbbQ((Jq($9JWJ=s_5%S=?={ilY_PSj1OZ4OGojQ-$sm>>)+xd~lRi}t_ z*ZE02N8{f~JNKv`f7wGdPRB7(*H?R_H@$TC-Q(yzAosQ_8|>2G4Udc7r*=nAVr|>> zp2X_-lMo*te|J7E{+J&>PI^CkT=YJj@F$=1jgC(3x06nF>G7UA+u4qYbnBG5-<@kr z^!S^dI-j`vI`^ayu1*o@u2U+~;3Y~YH?{LyojRGR?ap5Jq%^Kh5$Uc|YSiF>Wv9*u zJ9Qqp`#Sfe2(C^M>8?|%(cl=PtMfwI`Rz`fNA14OJt>Q;Q$%*I^ZdqRQcCLEl^x2} zx9w(6uHM;=9D92#e5lioHM?)eo(3t`4iV{YhlZ_&o$O2W@;jY6b(m#0K7GkvyLVKs zP7&#@^E1+sAnC6?`old9S59skoZ52xZl?_g@4gMseq3!3k?uBpR&C%sY^Toeb?Q81 z_jTU%xat&4s+^X~# z{ewNpLeBwh?zU-v1Tx9ankI4^l?Xqty3#YdF9@(3d+Zt)_tf>SJ?iMkC!alatD~n* zG8wpFS>{ab#B}3J9h5tSVsc_>l6kmeTSxC?TVkv|x7`zC&L@dTVp~qHVrERQ zjMWAQYugeuek-$uZ2Z=E=}{VK47);ZJUDj_86KFH;f;HeAsbC|NGZIC-+7F?_70(- z@bcZSq&^l>tPySP^rW5Sq{`cJ+Ee9DP9oBlld-dt5R9F+5QNjzn3yb3Z_Md@nXhSu$ zJ18hxE4l;(l5$#nwJ|2s2`yJ}V`*lhq*EPEbcrJE3V^JE8ej zJE1|TozQ6E5^(;Isv!JM96qeD%^4Zrjx)3yFT@|j;SUue2lacK+V^9ij3xoHymx)v zW6u>))(x9U(=%ozdoEq8-rI}x{c`?z;j<`$u_xW=O8Iw*%{^`R2zF@-i+`K^6jSi$%72uDvo#{v^?C>2 zDgP!1XU9jd>v{*@A-{NyxNOe|cD=#DuaRGD2b?`4!LBzt_^kZmYvAlQaZ3jH*$@%v z0Z_r&l@RQDlf!?W{9<|F4f&}v<&&)vfnJjooDB@YuIn6}Efc{m^$Or@dvb+* zs{+*V2zW96%XeX|5~VE)Q1`_Dg4i!O8)t%D>cjZ2js1eNfg-?pnLuJ~{5QyN0}ppi zx!_j_r0ziQ%jK7Z;~=TyIc7V0u)WP{yyXd~#cQ$$ijlq#uVvee?s^2zwfGSicL#HC z5FmvC+B`Fu=~?1<+-Gg%Ezr?FuQ46OeaF)hl5PUCmnJ8Ay~bMgrFX*A+gw;>iW?j5 zmZj2tkLcT1cXZ#Q`hHsbdy&3xZR6|almNm}71wosudzdk?961?G^+G>(UUy0?75W5 zqt+ad!4*PCBP9yCj23R^GgRKSQyM-1u<1B*X4*&8(e*vfbgi4ih854iH0=a22l zMxGW&oP3X!XFuYVfIymG!0sU5rqr_&j3!>z`6uynzr=RI+%dFXZ@Yl@f#p*6)KT(A zr)E!s&?K|y2JAU2kK?5WNr~*l6NSCuaa_ABf#=?}pxM;fOMde(KrAk0b#}$p1MYBc zbXtP@Zu<58;4Z%YdDI_|+b-T6RF>=xMwadl7LDx=Myq|hgRyF1cd%0?Rfon^*Nb=O zK+A!a11%@CoX~PRrQI$uYTR78cy}JOJZO2)@Z4>8Qp)X=$ttFnFXdIjQoaIGegvfaBIPl^Q}gqf zTA@TWklBKe3PLIvQel)d3Ol8gvz;nDm*!(lc>|xUjIS5;R9I6Qpzn<5cdCK8&c-C% z;;{88!MwEnDLI!4l@MFf4wbNrKaYSE;;XCL>w@(y;a@GdZ#Xa}s}M=A>H-&XzUQ;F z594vZuUcd~$v~Te#8|cDzQya=Oalq-aZd*sEcKWZp>8UNVl5I{x}udso2Cr)W}VwN*jwrgQG<)) zji-R**%DM^3tp=o_w5Fhe)7J}jVE>5|3~6aSA{PiVK$KL#L;O7tKvM^bra&b5cOZ1 z6Pi@J)WWf*b;RY~Qs;qn7@L0#P5tvH{3><7qe_KNnb*y$84Q1H&A(OZ%EYw4^+vg? z{jE}uCPIJf>*X#>*wEi9b!P%LlA1J;_jM^xSKV6-qrt7Q&sYo`V>xgr86iu+QQO!3 zYA;^YhB3VTcy~Ey0k0Yn=mNZIBD@25RpWR|rh6d1#!_x|Br9cuzTo86G9%l@I^?hP8uaOFjj zPv%@bnU!mtpRvOyy3H5X6ZVkmeCzu`su%n%a*MV7{H-4rpx@sjH~M7(=~U}!46J1A z+op}OL3AFlr0oZxqqc*&dZ3-@}>;a7{xknYDpPxU=(9s(G! zq{o_@fMs66Frk*3!GMt+Z@5k7I?nKXmH8RcNWiv0Mli}0lJ@^9?XW`NmJ0RMbN@)O z@n-O?0B-IWG-p&_IXhcOluUnrW+X=wkHNy# zJS&d#%XXY!C2@YOI6_df!nKYM%#*6?UmKl9Oy@UkI=@Zm{7!U)&`SF#i}Rc~&ROlc ze0)-uXR9uS(2Bz_OBt_>(2Db0i}UO_&Y#+G{+z`5i{c1DWrWjQ z8O;M=djc>I04#70!#n_XBmnaOxF!LZC$1;VA(`J1+I?xG`>imPzRnBgzbI^Ez9ubaxD#apA@*{=ums6QAzmx_m3&I+NGx4&4NOX4`a?Kpi&oPNa-LMzT+EzYHJ zoCWPT14*2c;s`-)i(S{+cE^PRNWcnW^4{5@&`GIN1gGU2tvbo~X-Oa118i0Z|%oEb0K`f zaje|b4;+sD`tH#^%0FJxnRc&K~9j^d2D<0Tekxhux#&i@z35uvU$z27NHJ!nd17|O1Lcq%$??{pf%yw=^i~=*DyMs)}VJ``>8W(%K9E%9*q7Ks`HJcPH zyqLTtazXaLe<+<9Cr{Y#i_E`E<^MK+#{F$K+5=6j>a`as{8@)ZlDy{GX#vA*pfr?V@}8=h4k6slrd-_K@FQblxW?!$sWcsV)K*u~TJ#rh$B^k%Zq zJdh7y<2d0aRBw)VHr9r5bqBkS)&6i*gW~Cr?RUC-xS8MmwBr&5v($0VkyEdkbeKnb2pt*^a+Et{|END`Oe?WqDM6 zjhPkL@>#L9UY2Mwp4F)ua^kS&dubjn&U9@b-NKhOaf(LxY0(|@%B)FI-X_O3g75ft z=@I@gl~pp9EXR_sRqBkRMJ)!^bjSgtL?xHXkds>B77*dYj>ylQAGy~X$v=AJMZ^0F zPoNPpphwb`^h5VOmg1Fqkv_dn`nU`x`E;eUtUIq8VYno;)aL|m z*5g>|Hj(UeBp+Pb|pU`@*X!S#@|6ifC09p$i zt-#|BlIMulf`rxuqO|~83;q>a1JD|9v~nJ%@n?(HKtgMwXbnJX;9sFtf>z1V%6p}J zc(rJi5?Z&zfu$0(N-?c{G~*yt1|5}xhy8u4s0_wb7%>MSF_>iMLIPKgQ|THp;|6RG zoU@s1n;+0nG~R^~)ytgIRlPbHf8N=(-MivO%)FCFTheu%c?memQq7y~t)j!X>&(JS!OS#Q<|U*6*} zLF&m(tmX;>zA@kLc#%YtZijsl0PFEP1u}T}TDtxEmqD1Lx58hR5<}sq0B>NjOEhg; zi8w&W;3+(ZRgOMJn1e(}kzm7dAg3sdZe+nTCT&|?dV^u3lB-`4M4bHNPNc_T1PfnB zHtHvNjSE|&m=&k8xqTWrFtv8ai<8p4nAol~0vSAHrJ`nIUQFDMpHBZLeA=##mm~yU z(jp+x4*hY}u@ijX35=ljWOidpQ|l{OBh?@0+&JGTYqg2PLSndMP(#^#DQhR8+>t3e z1m!i}l@yC3)b9e@) zp%x*w1v{=wD(pH{*czhk6v*HqYe2OfFHJCBDvY(l5Xj)+o75(|`GZD3rS#XV^cufR zDx|S(ICEt#I+%d)2(+}hdP{faGvuwiGjHN_ZYp^(JlVr_N-_)7j}Lksq%V(N4>K0m z=qky?WU$I>oN-`FL%I=F$YI<5o={4nQ+V;JY=2LpE@aRE}yGQs8eBqnG2%5IXi>_g zS`0+%Kws^gd&T#+{UWn&e<#Dm=hsu0xmI0{?z=9j#+~Fw)%YWE*Ve@pR1n*iWvdP4 zH5BgHTD#iX!D)7Sz6!T)e)I`qzxJQT-a+g>*tneuK~kAG2r{ec?M$?T)0w!om5FvZ zM)^RQc)>r7y`9+BBPiw`tDk9xV>k1SAZ@c`dX3U|QJNSK~nogOzlkz_3V3R8ZE z>@wfZon(+~6(7XS(>88iy8az}##2-q={BLD#())WY&a)+Ifa7Obx#&cbF9p=i**Qpb$E!20Z=AOw`HGk5o`B6CW zB$H=C&^;iCF{3yoftI59#D9&Vm}w|SzgN`t3@Ps=pzr2gosIG2RKzriv=mpUYpy@tF z&#o)#RUVveZNRzNXrmI-QmZqiZFFvQ7+@2~_QsUNG5a~4^(@QVwdGjycDylFZoe_L zCbKNQh~-rByL39dI-qK0j~18M~iuGPvl;4G|6`+A+t?93eNXMY0_+ZJIx@9<>qB5 zI%e`V4}g~^0P_HNMFKDnfEyElc>vs$0L%m6l?lK+02sK;PIN=;?vl$3E^I|hW)VIz z=RMSc{>8R(e^z+x;Zt-k%cP&{DY(|0hScGiTKHyZZ?7WI<_EhKcm#nv1v2=KS0{no zsSq@eRG>fx58p!cS!Kx|nL0GPgB@#*5Em}Qs<}W0H_aM;u7o!d=ruPf53j~Mz7Ac~ z%&=SF0MktOCv4pIE}dtkK^te6nz8Ie5Z+9pFsh8hJ6@Zl_!gyjlyWDK!Na$zaIZ@+ zZWhMT!Vt*d;oC%NIs4kq(n9=N+d$z*AJ#`|)%dO8TML_q<&L)j&{CGW^+xxfo{0W9 zE3j5WZi$0KZIG~tg1}q8-j>hw(f_h;7t~|2wiAwhMIv1tcye`M5_`3MYjEw`Plt)O|~yC_ijMpWivZLG0;P2B&p;UXD4ZBNugGPCn2+?|LSxBuu{q~EXf z!)0Kpdt}1}kXY&4F6C;^)P62#qT)B6KhUBna^cTJZkVcs=Yr)2eRcC&GA#wyhy6H9aM%N5a8M|cb^XIn(a*{`Oe$M9oY z@RPh{J1O3*YR?N#QddRpdYNMZQpTjtN8&ndE9nORQ;K$`O%CQk_c+BTUZKX15Wrh%H7jJqq;yuwmdqKoNER;h}AK> zCm7kZe)aF-a%7dcEQ!gDSR>LK#qQ&HeP}bnXK29j-7)k8py4faMdZ_etCv1T0GOi| zzFi%Z`c^xx!5y%%OEfWEPv(MZX|lgI;%_;b5;cD+qW+f0%Kr=VH$Ne#mEiZ{1WzQs z9oBNW(r1Xesq}AG`X>qS&bjGNlYWWx9g(eHC7B62tCjL(V$=rQ#}{ds2f%+N0P~Rlz}Aa~#FyFdujIMd#IjjzUc{dskID1j#3JFJ_&b3V z!xRR?1jtZ9n5c!UFQmd*fDOiP^tYY}57&GBEpi<%HU5NHNNu^WeNT5#cf+JT%$?U< zEg5|PqLrxul4`P~MhD16PshzgA0}W$&%}Lhc{7ME0UAV?@|PF)8cb&{!`qvUu!nFR z`-i}eSoy-}S<_90&%}%U?PGu&YYs-ly;md00fp$l1bL<)SAbF<%sNmZ`iLk*z=&RAox$3=fi)lX>XJ3dGUF=ciEeBEqPr8@;Oc=#@g zjncz0aq)+&|GLPQ%8;E6*`6swv$++pu1Y;T8+{P8TyzzHUN7GrKEfx@j}K;}s{u_6 z7?X3qW&yJ<%Pc$%nRooIJA_^Ah^3t3+7AWMHr%1&G?vHAU{Q-{I`d$wMqElLBQTK4 z)F7)r<%kJrG2BC9L%Et?(KU#ifAf(8PfV+i{&-Iu!MZ<#F+ zBZ|XL29fJ7TO5x5oHN8Rpg6&`_rY&qlOyJm#SIr~QNMq%xTk!6sz=aD0}M%U{w-dY z^@Bt^KA-4h6Mc;<)y!+{#@c9ihNB*tie$r3cXOJH;#A7)tPo3q!xvAhaFxx+iK{EB z8rVAdZGwP)`u;PGqlHj?C+=Lle*)){ z_5|z6qVbEiWQ6aAQ|c?yc-D~RHEdf=h?gDhZWCGwYFl*WYbVko5?x5TIil;Jz;Sv@ zbWP-JGErmVuL@-~M;zMQ&F!-$#p0Rv`#No$H2bihl+CfHu|NW{-Vye~D&tS4D++jOQ$NyJ)g3*T3SK$hpIv_;EYixc zW%D;6a6HJ7n$rS{61XrME%{RK>Wt71Xhl%_G}Y{ zTpb}#9#Z|;C^6zUzJo+`ojVS(IUW9o(^wCuu@sVE{Va|3NE%BahUKbrys>Z{S1QL< zrv5osMknu5{Uvku;}W}iptlV&BPNe+ZrC%0-rLqgio-p_y?05KunTXq5$Z~@zAAgy zNeO7Or?HiU-R!G*Elt{2Xx>foJ-Oao-Oo>y8V?hmO$`=qVpJjKA%`Y0z3_Lfk`8)) zF7E(A=u2EOS|IC#l?1TtSOk=dJ`O%W=~2HFKl8soyP~+B^(tCf!)SoTe z<>b{Pr}`L>`z7@96fT~Zk4*Io3cNe)7C6S~wo0MwlGT`*GK*+GqKf6%tn`U?rTRQ@ zn3&dEWfpi-Iq5^ySm#57PI+6^i6VKV~p(AP14V! zkqgnc01b6_Z@H8XfvWanKF7WOY?hYFo)R)0bCe4-2$Yv(gsy+B@Bo?nQ^ zrNs$Ym-%uwhU2j0&G8_myCi{CY(R(H<|tJFPX$YM}-hPbaRwPE|>`!N~yDs$vmqe9x8h1$y<%DUhcXrXDJB{ZBwg z1q3e5X8POnW2XekPw&Do^JC82C)OF8$Uym7GD=4S<)n#BdFt>RIJ{rOcZy%=79 z2bDB4D^)j)pu^0*v84}SKv+6z>1;n z`ZG%1rUJM@W+`79>fP50zBHt}uX^psxCv4uinUGifjw-VP3(uQ=B9Hr_FJzK3Dhy# zs$J`}ud!s`rgNDoWCPUGuhB*Nx(o3b$3WvaA(eb|7brtn34J#Zir?KG!b_=#Za0oG zx^!D})p$)tdzug@PM#MSP`?g|T0V<4_8a(m?EVay9miXu;@?xE!p3vX_GGG(6@AUa zBr2eyyh~&(a+k^@(`?eg?h>+5?Q_q1U>~>5?9)YgvZf4I3sXbc=-VXC(D-30$Te{( zJ=D)C2dyeqQX^BBmy0HDDEo|p89^m(xD*~SV>Ox*H$i0+GdI?5Bz4wf`c&%D)J@71 zCfJC*CpbJ2GJS=R^)R+<#=@!g9K_n3bZQr+nt=x^g~43W@(`zgOx&UirXHvr%E0R) zY1W%uIgczBt{H7~OayOzy~TcoAO8r!}c#D2V>~W~dpBZlr1Jt9{#+ zGB#CUDTa1Dowdg?r^alcs{O?-e6f2Yh0yHq>E-d`)8+tKd@xn*Kpwgo{{S`XX8Zyf zJjC8r8$Y+Ld-_iIWT{gNXW>CwCHQK*otx7M+R)uP-}fn~aH8mQa+Y;vxw!#Z(>42P zzQ;f8&3plueY_UZ{22q@tRPgfg_NU*0XhHpg&b@Y84flYHNUcX7MZR!p)9-K*4`%5`s>M0v9>CPo}~mG!sFXs;f6P< zJ9$-9i}mp3xTCjdYJZ2mr~D<@&aKLL)k4mYutGBF=gfyuOrcP~5d!L*U01Hg>@60S zYy|Af7sxnCU|;)p60Y}fAqOiZF4bxw-$D8$&mTEA+dXn_e|F^D@Re#$>OyNQGq~8p zv9+tVZ@5%X7^qe@Umje(|Lb3;f43fa?jf98zD;%I!nikP%_0}WL7cyw3m2*mSInr& zV_d6#uRLp2ott%3l$N7deiLV!x%6g)h)JGKKpZSrJI#C^JYB)yaI@zmxvXqHl35;$ zmB%EIkvNCha~PstrA7#hiCFPdV&z;p!E|}d8Fx)Hn6cF*RkYr`C?vRR>-K4s`ts#9 z!!E!Ttx(Q8S_Pw3TLQw~Y9+?ncdg`8wQ|FyE<2kmn>oxfV?D!4;J`@sS5r9N$XQ{z zE_I({k+H4h=s~KlB#SCk`Awy6oyJz>`;aS zXvFJaxy{y2yr`4U<@I>i+W*Z32hlziPOz6}#iU-e8m8nWlyW$Y$31ltu2Ek=3apLY zsn|U@b`Ozj{P=zHGHiKahN$-q`qV=FKFu&Fw-Ep2PvCSP^C#bc$JR;C%vv8IZDQ}v)J=Cy0VAW~y1QrR@>q=F5{J#1vFwsuh# zyxQ;%OE5zU5$p=com(3;6f5WRv7YU3JT5Xt*F-R@zIumQ?NUC171aDq(j2ROs~2&l z&?INAs>O|;rl6)sz8+8Qn|POR_PT0yg}=);qQ`S2i+r*U znVDvLtG*7}_!-$hXH0&=O3Z|bF`>O>$PD?&815Y25eDw06!ySrJ?c?LX)*z3Z_0bKuP{NL%x7G2nWd?6Qfd|ozmg{e8lXP zV4-zyc#67}ab2;tR&|gRuEG6)j^7(!##icg3?i*N#mgP(1W7tU@ASq;pbI~^tXIOx zR`SK^YDZW&kqXKx$T3i5^G*Jy-~SzL9?s3>r*!R$I4g%3YCeG>Z&o98ZCyJHL4M6Z z!6D^?{O0Hv8k-BzZ*j_n=pmeTyi`%gx1kWPDRHZb$Ya#$c2T)B$yn_Ss?Pp(?qe4N&4pF!JQ7`t=*`hK*Z;_d6VuXwemIIvRL#$;s@v*mGuKMha(}eNlj14-p;nav4GGQ+#i8c&_!@7OUCn?_xokCad zRPvmLv`|VE%7S#d?bO@ZbhmVC+@zz))dN>=${{va=E{@gyRi8q0QeZUta@MMtcj2AMnGXi%~ zoBjq926CtlIsHZXtpiSf9B&Z59)_(C&57}5VKpWXkL5x9m|uI$Q~&r8wXpYga7{4P zYJ#i4#42xBo-+AyLi_o6XoAVhbJc?;AESz`)tZiVTo0S-iEDM@O>;|BdudX0o%yC7 zlX{7Z`()L*EACnIs(<<@K>MhHl@{?psw~k_#U3lIzpA6UJi>R?<+}4~)l{`JD?v{@ z%gEU*qjnTqRmP!KA1EgwVU6!v=rul))N=<*&l{fSPZnCrOe#m!4U>>ua73bzn23vW zJC9^1_l(98I$s%()I@@{(y5?zPe%hxqWT= z*OCQ6IBd+|h3jH>y>lz^;K&xHc3Yv*Ada_6mp&A<+EKacMfza&8PpE;8rzd*NJqM9 zZj*S8-wMx|L_PbkIOUC{Ow_-?9HO;_tpELrr=K}-|Wc!0qqgC<=nYk$XVN9^7_ zcf?NiGLf0w$i!xHqIOsZ1NJ47{`g9IN+d8qdkvoODxfe&XpbI=S|Oesr>dbEYCLJt?r7I}J+>o< zZUFHX6=D-roRF5h?Hadz5RDRw)PU1igYX?iZ9 z>?H^8gl%u_S!|Cx$`MH!`!tVitUM}n<(S!RCyJ$DY4}El+8PU{+_fvOmSyaeRBx@m z_gutKGevHp0vz^|zUluqF)s_v=qAj-%F}2Nz6qk$)lCit7sK87b>n$gZ*2=XJbr!- zS@-SCVSZ`&Z!U*`_)bC1rvr79))$vkZ)h_joOmXQ4L2&JF?n>WkR8&ac2%d`^kTDA z{rrwRV6i(T5pPaF1Q=4=v;IyZT3Sp*E|-MJ4pEykuI1K`NcA6^-!w9`JDFzZO=KTH zgt2MOmRl;DW3w5?QC6ndPuv!w!8tdvx^^(5_#~k+M6ku`Wk~9^_r&>gpUzrfHd;S( z6!cFw`r#D$)P{F-v)GcU>&)U}yHej29s<%tXRGTtdOQaDnO8t>0)FvPBo17CV326A zGNI{rLHv_HV1zvvw8-S^ z?F;kk2h%7&PNO&l4U~skC?xlz7K)N9?;|MDSBu`= zUU;-IIim)5B)i23)|qTkB6=&LEVj`A(t=#{OIgc`6<$)XcAlV>H;E0!skSP|1)wHB zJX;{ztd02JAfj!=H;?o)caI%=#Ngg95vu!__IWp@5a@p{4xyEcW;ibMY;Z+FCT&T6Og_#~aP zm5vZvagMY&Uy0-V7zq*Q4NJDm+a6%ELTJUo$VEDL#&OWXlQ^%&Yvp0dt2ir!R-B(% zoUg`l_IdBA5Y%Mfl&iB7=7GtR`ge7CS4?N0bt!~a+OA%{9>>{dy$GQd$JNW%;yC-P z7a?fT>2azp4o}HtnfEMMvIV}@oB1|qNJ?+!TX>oS@bIiaECn-wv<4^qy9&R-$MiGcS68u3a`3nmmO^=O$0a&*w{TT=<{>giW*xvhk}+O}dbEF@ zjz$H#4fp+`_>4GR<Qdj-%mQ{FvUilQ6U0 z`kALu%6@oHV-Qq0 zb-(R8TK+F88fJdgSU3aJ#jb9M-mXHLJids8^)E)xG6bb#)Q)h`>vS?}2Wx$c?*K`G zmBv1ik`!T1V~qQ~@Xh3HWUANO@oAs;*}q3@WTslUx?IptwV^vc+47T5&9zU&b!+&_ zQutK(#8tbtY*9!t>bb?*0YR11ca$`4bkDdk*L)`+!)IZIhhtWMS7KU}s&!W}$>%cn z$vG>9x{`{SLyVyTSDP~g|6K{%xXi~^F+Jek7_70F4+Ed-g>27?TOcNN9a|y{)t~6^ zB;s)!iyCbF13abFYB(B3HAGiceYraHwzIo08$PI^=xA?=OWD6Hyh*X!fGZr}h!)1Y z?^i0qb>7mLf~P~y^qvaA4Mk4c=&$k@nyB%u7G{j2r*q7(5xR&OfC__nO}ADNS&P&+z&t3 zE`s)Z|2O6W4(d;^U%(BA{H7S<>w3du z;P)K$s~xbOE=CH%cR_2fv0N_|H6CSrm-_iWdhUWaC!Ws2y7S&C;pKASI)L8KI*l^v zpWkkG9>6j7pC=f?^QjNN?B8%{R3e+6eMf`x&cz+Ss$Kss$?yxQR+u09rBvvLd7p@Hr{TxjH9o3~F)s8v zlIDbPob(I5eT1|U-V-N=wcQfm&#z8KM^aS_IkZqcF7~n*c#-o?k}JQlLdB#tRqO%ek<0Rew~Ur?wh`jm*XHHdVq(lwOmDjxT+?CzrK#&O}o_HKMCp&Yy8P zo7u5~cw3WIgT0wyW;kOXKfFW03%yu+#?`6RBrlmXrO}LvMKG0rp;Z2X zMvc@P&*M*%%>$YpRKov(Pu<>;cXYY;LB)nLS&Vz(CE{_oo998L>QV~3X?98M9vHjq zi!(U0By&%R-OaHpZS}|eo)x>ZvHOzP)lLS5za@6x8@r#5UG2+O_#OP1Ihy}g-0A!I z$p0bdXH@PAKkWS2_PW9kIzLm=uJAL? z|0elA;{0T_EBvVQUnl>q&i^|3Kj!?hoQAr1i*zUC{}1P{%P*y4Jg#4RgDm{Kh1wHi z;eR_!HG23(`5RaD#0=xjecTG+G#q|ING2a+U)c}u63pq`YPB`UD|(;ams-ui=>Fyt z*v75n$Ti#?bIl;3LR_OV&htIl@SBbd=fScWjgM=g(;bF-i)vX0UTM-iY$h^pZgOsp zEkt(FWnUp1QN=;P4$f!_^!tm2dJx~Ao;N0q??+pa8H{Bg4+af~_qnq0bWrR=mYQ!l zJpX=XS`yPAkh>iDYkM!0)8@sb$3o|P>x-n!q%V9rKVx*%nQCmz8A-!fl zK$^O8eT5#w#^~VYT$@k2b$^ZSj&^wBjX%e{;UcgtBDgv4BB(Kbq9owDa`;o1n9@=` zwbQ~_{Cj9{ZO0#Ry!O$~jx4Cfwwy#c$gqznJ^>o~XD6a|%EH>1JRx)CP7RBV4f07c zHI9`}^R&h}^2sLIxJ*7-I~zOXlU-5#^3PQv>peeLIp%5?zYy>wX(vvf$aXg$PRi@v zi(nTgQ|zp#J;1GZCRU*L@y>*xyfeYCErtwsF3a#<4K8v)>6vnxc6CJmeyk*Jl0EH9hV+4|bdxVG9H2;WkcX zE{=tP^S^DJMRRd144j{}aYp9iSQt1zZ{y5M%fi6<<)h$O7&yObyjVV8L`zX4~W$7{X^-k8;g1HpYWzg6_(Jzuwjh4*kn*{neb`GZ2# z66Q&4lfO3`=bs3ZJ$aw+(+HtuXZ(Z3`Ewj616RcMSB|JSTdId=RtT*)f3!G%iR1Vd zXD{#52%#0{PZsB|ah$;7?B#tLA++LP%c6h$J&x0Bam;Srhu7@9{di`D(2DbCi}SZQ zPN5yAn8fK(93iygV5A|PN8&gO+HnSwI3>jq0#lzEkFMGI_K+Z)OkiWIA?yLsZgjg) zG1N?gs73!F7uouMdXq?zNd^0%(MZ3A(*;azj-HdW-)T}!W!q;0T$~jG(}3-A4NEd! zcGzc_#6+ySd$-E7>Pwt+PO4z_S&g zH@_@ktpaiuaJ2&T0G9@vY58vL1O^4F5TTrlhD4(Pf&k7Ju!m<^@k zNqNdfb@}K+er6?oXajvD^@L2eQGN`n|D~80yyjE&#-iTGe3~9sG>rv|r9HVFQ?<|Y zJ^wCdKx1~TMktU|do8s!mYUNGx6qe1cBVIsT~Z~fuXL^-p%iirDy%dy;-z+sa)r&{X$?|@!t5RP&$bIX=4Z8vQ zF_F*UkI+zg(rM2^bV-P-ZC!Iid_=^_r+~bPqU(Qij(CsZw1~sa!VU9|xDolRh%XXx zpU1?ExW*mV@(@Q?4u;ssFCaT>dbtExqZB#sGn^K2-{FQDy2!Z^`J9Mj?c<=MJB{wm zNXpkA>qm=4m)$pF3Et!Gw-f4v3(T2X$TxG%BHwc2ommwwka6+26UHJ&%((+E`aQj= z-tXM#4Vbb<53*N>oA=^pJC`wv_Gp#5S4?;-G2KP`(d^O1unpU?y6gM9xTB2 VYl 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 diff --git a/FineUI.Examples/bin/Wilco.SyntaxHighlighter.dll b/FineUI.Examples/bin/Wilco.SyntaxHighlighter.dll deleted file mode 100644 index bb21c58dec0ff650c538d4af768ae073aba75989..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303104 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 aFh*dEz!-rs0%HWm2#gUJBk=zhf&T#r+a(DA 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 @@ - +
+
+ + + + + + + + + +
+ + + 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 @@
      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" %> + + + + + + + + + + + + + + + + +
      +
      + + +
      +
      +
      + 请尝试如下两种不同操作步骤: +
      +
      +
      操作一:
      +
        +
      1. 刷新页面
      2. +
      3. 点击按钮2 -> 直接跳转到首页
      4. +
      +
      +
      操作二:
      +
        +
      1. 刷新页面
      2. +
      3. 点击按钮1
      4. +
      5. 点击按钮2 -> 首先弹出确认框,点击确认后才跳转到首页;如果点击取消,则留在本页
      6. +
      + + + + 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" %> + + + + + + + + + +
      + + + + + + +
      +
      + + +
      +
      +
      + 请尝试如下两种不同操作步骤: +
      +
      +
      操作一:
      +
        +
      1. 刷新页面
      2. +
      3. 点击按钮2 -> 直接跳转到首页
      4. +
      +
      +
      操作二:
      +
        +
      1. 刷新页面
      2. +
      3. 点击按钮1
      4. +
      5. 点击按钮2 -> 首先弹出确认框,点击确认后才跳转到首页;如果点击取消,则留在本页
      6. +
      + + + + 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 @@ - +