EXT.NET_X.Js.Call方法

本文介绍如何使用X.Js.Call方法从服务器端传递变量到客户端脚本中执行,通过示例展示了如何调用客户端函数并传递参数。

我们对在前台触发一个客户端事件,来操作界面元素,已经很熟悉,但这属于静态脚本范畴。往往有些时候,我们还需要动态脚本,也就是说,脚本在执行过程中需要的变量,是从服务器端获得的,那么X.Js.Call方法的作用,就是将服务器端变量传给客户端脚本,并执行脚本。

例子

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="AM.Web.Pages.Test" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script type="text/javascript">
        var myAlert = function() {
            alert("警告");
        }
        var myAlert2 = function(id, val) {
            var txtField = Ext.getCmp(id);
            txtField.setValue(val);
            alert(txtField.getValue());
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <ext:ResourceManager ID="ResourceManager1" runat="server" />
    <ext:Button ID="Button1" runat="server" OnDirectClick="Button1_Click" Text="X.Js.Call一个参数的">
    </ext:Button>
    <ext:Button ID="Button2" runat="server" OnDirectClick="Button2_Click" Text="X.Js.Call两个参数的">
    </ext:Button>
    <ext:TextField ID="TextField1" runat="server" Text="">
    </ext:TextField>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ext.Net;

namespace AM.Web.Pages
{
    public partial class Test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void Button1_Click(object sender, DirectEventArgs e)
        {
            X.Js.Call("myAlert");
        }
        protected void Button2_Click(object sender, DirectEventArgs e)
        {
            string[] paras = new string[] { this.TextField1.ClientID, "警告" };
            X.Js.Call("myAlert2", paras);
        }
    }
}

说明

1,Button2将服务器端变量传给脚本方法“myAlert2”,脚本根据这个值设置页面控件,并显示。


<%@ Control Language="C#" AutoEventWireup="true" CodeFile="AMA_IMD_Control.ascx.cs" Inherits="RTD_UserControl_AMA_IMD_Control" %> <link href="../Styles/ExtFontSytle.css" type="text/css" rel="stylesheet" /> <script type="text/javascript"> var changes = function (value, metaData, r) { var date = new Date(r.data.ENDTIME) if (date.getTime() < new Date()) { var mystyle = 'background-color: #808080;'; metaData.style = mystyle + ""; return value; } else { // var mystyle = 'background-color:#FFFFFF;'; metaData.style = mystyle + ""; return value; } }; var resetNewUserForm = function (form) { // Reset Form Fields form.getForm().reset(); App.NewIDLEINTERVALTF.setDisabled(false); // Re-enable UserIdTF to allow inputs while creating New Users App.NewIDTF.setDisabled(true); // Enable/Disable buttons App.NewUserSaveBtn.setDisabled(true); App.NewUserDeleteBtn.setDisabled(true); App.NewUserCreateBtn.setDisabled(false); }; var assignNewbatchToolControlFields = function (record) { App.NewIDTF.setValue(record.data.ID); App.NewCONTROLIDTF.setValue(record.data.CONTROLID); App.NewINTERVALTF.setValue(record.data.INTERVAL); App.NewCONTROLLOGICALTF.setValue(record.data.CONTROLLOGICAL); App.NewCONTROLVALUETF.setValue(record.data.CONTROLVALUE); App.NewCONTROLINTERVALTF.setValue(record.data.CONTROLINTERVAL); App.NewLEADINGTIMETF.setValue(record.data.LEADINGTIME); App.NewINITIALTIMETF.setValue(record.data.INITIALTIME); App.NewSTARTTIMETF.setValue(record.data.STARTTIME); App.NewENDTIMETF.setValue(record.data.ENDTIME); App.NewSETTINGAREATF.setValue(record.data.SETTINGAREA); // App.NewIDTF.setValue(record.data.ID); //if (record.data.ISALLOWNEXT == 'Prefer' || record.data.ISALLOWNEXT == 'NonPrefer') { // App.NewIDLEINTERVALTF.setDisabled(true); //} //else //{ // App.NewIDLEINTERVALTF.setDisabled(false); //} // App.NewIDTF.setDisabled(true); //// Enable/Disable buttons //App.NewUserSaveBtn.setDisabled(false); //App.NewUserDeleteBtn.setDisabled(false); //App.NewUserCreateBtn.setDisabled(true)DCE7F4; }; </script> <ext:Panel ID="PortBindingPanel" Layout="BorderLayout" runat="server"> <Items> <ext:FormPanel ID="CriteriaPanel" Title="Criteria Selection Area" Frame="true" Border="false" Width="600" Region="North" Collapsible="true" CollapseDirection="Left" CollapsedCls="Collapse_NoBorder" BodyPadding="5" AutoScroll="true" FrameHeader="false" BodyStyle="background-color:#DCE7F4" runat="server"> <FieldDefaults LabelStyle="color:green; padding-left: 5px; border:0px" /> <TopBar> <ext:Toolbar ID="CriteriaTopBar" Height="25" Margin="0" Border="true" EnableOverflow="true" runat="server" Frame="false" BodyStyle="border:0px;border-right:1px solid #99BCE8"> <Items> <ext:Checkbox ID="chkCollapseIndicatorTop" Checked="true" runat="server" /> <ext:Label Text="Collapse after Query" StyleSpec="color:green; padding-left: 5px;" runat="server"/> <ext:ToolbarFill /> <ext:Button ID="btnTopQuery" Text="Query" Icon="ApplicationGo" runat="server"> <Listeners> <Click Handler=" ; Ext.net.Mask.show({ msg : 'Loading page...' }); #{DirectMethods}.QueryData('DataGrid'); #{DirectMethods}.HideMask(); " /> </Listeners> </ext:Button> </Items> </ext:Toolbar> </TopBar> <Items> <ext:FieldSet ID="fsDataPeroid" Title="Query Items" Layout="TableLayout" Collapsible="true" Collapsed="false" StyleSpec="Padding: 6px" Visible="true" Cls="my-fieldset-header-text" runat="server" > <LayoutConfig> <ext:TableLayoutConfig Columns="15" /> </LayoutConfig> <Items> <ext:Panel Border="false" Layout="VBoxLayout" Width="10" BodyStyle="background-color:#DCE7F4" runat="server" /> <ext:Panel Border="false" Layout="VBoxLayout" Width="10" BodyStyle="background-color:#DCE7F4" runat="server"> </ext:Panel> <ext:Panel Border="false" Layout="TableLayout" Width="300" Height="50" BodyStyle="background-color:#DCE7F4" runat="server"> <LayoutConfig> <ext:TableLayoutConfig Columns="4" /> </LayoutConfig> <Items> <ext:Label Text="ControlId:" StyleSpec="color:green; padding-left: 4px" Height="15" runat="server" Border="false" /> <ext:TextField ID="controlID" Disabled="false" ColSpan="4" StyleSpec="margin: 1px" runat="server"></ext:TextField> </Items> </ext:Panel> <ext:Panel Border="false" Layout="VBoxLayout" Width="10" Height="50" BodyStyle="background-color:#DCE7F4" runat="server" /> <ext:Panel Border="false" Layout="VBoxLayout" Width="25" Height="50" BodyStyle="background-color:#DCE7F4" runat="server" /> <ext:Panel Border="false" Layout="VBoxLayout" Width="25" Height="50" BodyStyle="background-color:#DCE7F4" runat="server"> </ext:Panel> <ext:Panel Border="false" Layout="TableLayout" Width="500" Height="50" BodyStyle="background-color:#DCE7F4" runat="server"> <LayoutConfig> <ext:TableLayoutConfig Columns="4" /> </LayoutConfig> <Items> <ext:FileUploadField ID="SettingsFile" EmptyText="Select a Setting Excel File" FieldLabel="Import" ButtonText="" Icon="TableRefresh" BlankText="文件路径不能为空" runat="server" > <Listeners> <ValidityChange Handler="#{UploadButton}.setDisabled(false)"/> </Listeners> </ext:FileUploadField> <ext:Button ID="UploadButton" Text="Upload" Disabled="false" OnDirectClick="UploadSettings" runat="server" > </ext:Button> <ext:Button Text="Reset" runat="server"> <Listeners> <Click Handler="#{DirectMethods}.Reset();" /> </Listeners> </ext:Button> <ext:Button Text="Export" runat="server"> <Listeners> <Click Handler="Ext.net.Mask.show({ msg : 'Loading page...' }); #{DirectMethods}.QueryData('Excel', { isUpload : true }); #{DirectMethods}.HideMask();" /> </Listeners> </ext:Button> </Items> </ext:Panel> </Items> </ext:FieldSet> </Items> </ext:FormPanel> <ext:FormPanel ID="BatchToolEditorFP" Title="IMD_Control" Frame="true" Width="350" Region="East" Collapsible="true" CollapseDirection="Right" BodyPadding="10" AutoScroll="true" runat="server"> <FieldDefaults LabelAlign="Right" LabelStyle="color: green;" /> <TopBar> <ext:Toolbar Height="25" Margin="0" Border="true" EnableOverflow="true" runat="server"> <Items> <ext:Button ID="NewUserSaveBtn" ClientIDMode="Static" Text="Save" Icon="Disk" Disabled="false" runat="server"> <Listeners> <Click Handler=" App.NewIDTF.setDisabled(true); var requiredFieldsProvided = requiredFieldsInputted('NewCONTROLIDTF,NewINTERVALTF,NewSTARTTIMETF,NewENDTIMETF,NewSETTINGAREATF','CONTROLID,INTERVAL,STARTTIME,ENDTIME,SETTINGAREA'); if (requiredFieldsProvided) { var Id = App.NewIDTF.getValue(); #{DirectMethods}.UpdateUser(Id); // Reload GridPanel Store to make data refreshed immediately #{NewUserListGP}.store.reload(); } " /> </Listeners> </ext:Button> <ext:ToolbarSeparator /> <ext:Button ID="NewUserCreateBtn" ClientIDMode="Static" Text="Add" Icon="Add" runat="server"> <Listeners> <Click Handler=" var requiredFieldsProvided = requiredFieldsInputted('NewCONTROLIDTF,NewINTERVALTF,NewSTARTTIMETF,NewENDTIMETF,NewSETTINGAREATF','CONTROLID,INTERVAL,STARTTIME,ENDTIME,SETTINGAREA'); if (requiredFieldsProvided) { #{DirectMethods}.CreateNewUser(); // Reload GridPanel Store to make data refreshed immediately #{NewUserListGP}.store.reload(); } " /> </Listeners> </ext:Button> <ext:ToolbarSeparator /> <ext:Button ID="NewUserDeleteBtn" ClientIDMode="Static" Text="Delete" Icon="Delete" Disabled="false" runat="server"> <Listeners> <Click Handler=" Ext.Msg.confirm('Confirmation', 'Are you sure to delete this selected Setting ?<br/>' + '<br/>', function(btn) { if (btn == 'yes') { var Id = App.NewIDTF.getValue(); // Delete User #{DirectMethods}.NewDeleteprotBindingControl(Id); // Reload GridPanel Store to make data refreshed immediately #{NewUserListGP}.store.reload(); // resetTheForm resetNewUserForm(#{BatchToolEditorFP}); } }) " /> </Listeners> </ext:Button> <ext:ToolbarSeparator /> <ext:Button ID="NewUserResetBtn" ClientIDMode="Static" Text="Reset" Icon="PageRefresh" runat="server"> <Listeners> <Click Handler="resetNewUserForm(#{BatchToolEditorFP});" /> </Listeners> </ext:Button> </Items> </ext:Toolbar> </TopBar> <Items> <ext:FieldSet Title="Basic Info" Layout="TableLayout" StyleSpec="Padding: 10px;" Collapsible="true" Collapsed="false" DefaultAnchor="100%" runat="server"> <LayoutConfig> <ext:TableLayoutConfig Columns="1" /> </LayoutConfig> <Items> <ext:TextField ID="NewIDTF" ClientIDMode="Static" FieldLabel="ID" AllowBlank="false" Width="271" Disabled ="true" runat="server" /> <ext:TextField ID="NewCONTROLIDTF" ClientIDMode="Static" FieldLabel="ControlId*" AllowBlank="false" Width="271" runat="server" /> <ext:TextField ID="NewINTERVALTF" ClientIDMode="Static" FieldLabel="Interval*(H)" AllowBlank="false" Width="271" runat="server" /> <%-- <ext:TextField ID="NewCONTROLLOGICALTF" ClientIDMode="Static" FieldLabel="ControlLogical" AllowBlank="true" Width="271" runat="server" />--%> <ext:ComboBox ID="NewCONTROLLOGICALTF" ClientIDMode="Static" FieldLabel="ControlLogical" AllowBlank="true" Width="271" TypeAhead="true" runat="server"> <Items> <ext:ListItem Text="weekly" Value="weekly" /> <ext:ListItem Text="monthly" Value="monthly" /> </Items> </ext:ComboBox> <ext:TextField ID="NewCONTROLVALUETF" ClientIDMode="Static" FieldLabel="ControlValue" AllowBlank="true" Width="271" runat="server" /> <ext:TextField ID="NewCONTROLINTERVALTF" ClientIDMode="Static" FieldLabel="ControlInterval" AllowBlank="true" Width="271" runat="server" /> <ext:TextField ID="NewLEADINGTIMETF" ClientIDMode="Static" FieldLabel="LeadingTime" AllowBlank="true" Width="271" runat="server" /> <%-- 2025/12/04 <ext:TextField ID="NewINITIALTIMETF" ClientIDMode="Static" FieldLabel="InitialTime" AllowBlank="true" Width="271" runat="server" />--%> <ext:DateField ID="NewINITIALTIMETF" ClientIDMode="Static" FieldLabel="InitialTime" AllowBlank="true" Width="271" Format="yyyy/MM/dd H:i" runat="server" /> <%-- 2025/12/04 <ext:TextField ID="NewSTARTTIMETF" ClientIDMode="Static" FieldLabel="StartTime*" Note="格式:'yyyy/mm/dd hh24:mi'" EmptyText="yyyy/mm/dd hh24:mi" AllowBlank="false" LabelWidth="100" Width="271" runat="server" />--%> <ext:DateField ID="NewSTARTTIMETF" ClientIDMode="Static" FieldLabel="StartTime*" Note="格式:'yyyy/mm/dd hh24:mi'" EmptyText="yyyy/mm/dd hh24:mi" Format="yyyy/MM/dd H:i" AllowBlank="false" LabelWidth="100" Width="271" runat="server" /> <%-- 2025/12/04 <ext:TextField ID="NewENDTIMETF" ClientIDMode="Static" FieldLabel="EndTime*" Note="格式:'yyyy/mm/dd hh24:mi'" EmptyText="yyyy/mm/dd hh24:mi" AllowBlank="false" LabelWidth="100" Width="271" runat="server" />--%> <ext:DateField ID="NewENDTIMETF" ClientIDMode="Static" FieldLabel="EndTime*" Note="格式:'yyyy/mm/dd hh24:mi'" EmptyText="yyyy/mm/dd hh24:mi" Format="yyyy/MM/dd H:i" AllowBlank="false" LabelWidth="100" Width="271" runat="server" /> <%-- <ext:ComboBox ID="NewCATEGORYTF" ClientIDMode="Static" FieldLabel="Category*" AllowBlank="false" Width="271" TypeAhead="true" runat="server"> <Items> <ext:ListItem Text="InUseEnd_Reuse" Value="InUseEnd_Reuse" /> <ext:ListItem Text="InUseEnd_Recycle" Value="InUseEnd_Recycle" /> <ext:ListItem Text="RecycleEnd_Reuse" Value="RecycleEnd_Reuse" /> <ext:ListItem Text="RecycleEnd_Downgrade" Value="RecycleEnd_Downgrade" /> </Items> </ext:ComboBox> <ext:ComboBox ID="NewFAILCONTROLTF" ClientIDMode="Static" FieldLabel="FailControl*" AllowBlank="false" Width="271" TypeAhead="true" runat="server"> <Items> <ext:ListItem Text="Y" Value="Y" /> <ext:ListItem Text="N" Value="N" /> </Items> </ext:ComboBox> --%> <ext:ComboBox ID="NewSETTINGAREATF" ClientIDMode="Static" FieldLabel="Setting Area*" AllowBlank="true" Width="271" TypeAhead="true" runat="server" > <Items> <ext:ListItem Text="CMP" Value="CMP" /> <ext:ListItem Text="COPPER" Value="COPPER" /> <ext:ListItem Text="DIFF" Value="DIFF" /> <ext:ListItem Text="ETCH" Value="ETCH" /> <ext:ListItem Text="IMP" Value="IMP" /> <ext:ListItem Text="LITHO" Value="LITHO" /> <ext:ListItem Text="TF" Value="TF" /> <ext:ListItem Text="WET" Value="WET" /> <ext:ListItem Text="YE" Value="YE" /> <ext:ListItem Text="WAT" Value="WAT" /> <ext:ListItem Text="OQA" Value="OQA" /> </Items> </ext:ComboBox> </Items> </ext:FieldSet> </Items> </ext:FormPanel> <ext:GridPanel ID="NewUserListGP" ClientIDMode="Static" Icon="ApplicationViewList" Title="IMD_Control" ColumnLines="true" AutoDoLayout="true" Region="Center" runat="server" MultiSelect="true"> <Store> <ext:Store ID="PortParameterlListStore" runat="server"> <Model> <ext:Model runat="server"> <Fields> <ext:ModelField Name="ID" /> <ext:ModelField Name="CONTROLID" /> <ext:ModelField Name="INTERVAL" /> <ext:ModelField Name="CONTROLLOGICAL" /> <ext:ModelField Name="CONTROLVALUE" /> <ext:ModelField Name="CONTROLINTERVAL" /> <ext:ModelField Name="LEADINGTIME" /> <ext:ModelField Name="INITIALTIME" /> <ext:ModelField Name="STARTTIME" /> <ext:ModelField Name="ENDTIME" /> <ext:ModelField Name="SETTINGAREA" /> <ext:ModelField Name="CREATEUSER" /> <ext:ModelField Name="CREATETIME" /> <ext:ModelField Name="UPDATETIME" /> <ext:ModelField Name="UPDATEUSER" /> </Fields> </ext:Model> </Model> </ext:Store> </Store> <ColumnModel runat="server"> <Columns> <ext:Column Text="ID" Sortable="true" DataIndex="ID" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Control id" Sortable="true" DataIndex="CONTROLID" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Interval" Sortable="true" DataIndex="INTERVAL" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Control logical" Sortable="true" DataIndex="CONTROLLOGICAL" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Control value" Sortable="true" DataIndex="CONTROLVALUE" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Control interval" Sortable="true" DataIndex="CONTROLINTERVAL" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Leading time" Sortable="true" DataIndex="LEADINGTIME" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Initial time" Sortable="true" DataIndex="INITIALTIME" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Start time" Sortable="true" DataIndex="STARTTIME" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="End time" Sortable="true" DataIndex="ENDTIME" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Setting Area" Sortable="true" DataIndex="SETTINGAREA" Width="100" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Create user" Sortable="true" DataIndex="CREATEUSER" Width="130" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Create time" Sortable="true" DataIndex="CREATETIME" Width="120" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Update user" Sortable="true" DataIndex="UPDATEUSER" Width="110" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> <ext:Column Text="Update time" Sortable="true" DataIndex="UPDATETIME" Width="110" runat="server" > <Renderer Fn ="changes"></Renderer> </ext:Column> </Columns> </ColumnModel> <SelectionModel> <ext:RowSelectionModel Mode="Single" runat="server"> <Listeners> <Select Handler=" var Id = record.data.ID; // Remove ALL items first assignNewbatchToolControlFields(record); " /> </Listeners> </ext:RowSelectionModel> </SelectionModel> <View> <ext:GridView StripeRows="false" runat="server"> </ext:GridView> </View> <BottomBar> <ext:PagingToolbar runat="server"> <Items> <ext:Label Text="Page size:" runat="server" /> <ext:ToolbarSpacer Width="10" runat="server" /> <ext:ComboBox Width="80" runat="server"> <Items> <ext:ListItem Text="10" /> <ext:ListItem Text="20" /> <ext:ListItem Text="30" /> <ext:ListItem Text="50" /> <ext:ListItem Text="100" /> </Items> <SelectedItems> <ext:ListItem Value="30" /> </SelectedItems> <Listeners> <Select Handler="#{NewUserListGP}.store.pageSize = parseInt(this.getValue(), 10); #{NewUserListGP}.store.reload();" /> </Listeners> </ext:ComboBox> </Items> <Plugins> <ext:ProgressBarPager runat="server" /> </Plugins> </ext:PagingToolbar> </BottomBar> </ext:GridPanel> </Items> </ext:Panel> using Report; using Report.ExtNet; using Report.Utility; using Ext.Net; using Ext.Net.Utilities; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class RTD_UserControl_AMA_IMD_Control : System.Web.UI.UserControl { Report.UserObject _userInfo = new UserObject(); AMA_IMD_Control IMD_Control = new AMA_IMD_Control(); private Ext.Net.Store ste = new Ext.Net.Store(); ReportHelper.SettingTypeEnum _targetSettingTypeEnum = ReportHelper.SettingTypeEnum.Unknown; private DataTable dt = new DataTable(); ExportToExcel ete = new ExportToExcel(); bool isQuery = false; private string[] Grid_column_name = { "CONTROLID", "INTERVAL", "CONTROLLOGICAL", "CONTROLVALUE", "CONTROLINTERVAL", "LEADINGTIME", "INITIALTIME", "STARTTIME", "ENDTIME" , "SETTINGAREA" }; private string[] Grid_column_text = { "CONTROLID", "INTERVAL", "CONTROLLOGICAL", "CONTROLVALUE", "CONTROLINTERVAL", "LEADINGTIME", "INITIALTIME", "STARTTIME", "ENDTIME" , "SETTINGAREA" }; private int[] Grid_column_width = { 100, 100, 100, 100, 100, 100, 100, 100, 100,100 }; DataTable DtImportExcel = null; protected void Page_Load(object sender, EventArgs e) { // Check Session if (!X.IsAjaxRequest) { _userInfo = Report.UserObjectExtension.CheckLogonSession(); } _userInfo = (Report.UserObject)System.Web.HttpContext.Current.Session["ValidUserObject"]; // Assign Stores // BindUserStore(); QueryData("DataGrid"); } protected void Page_PreRender(object sender, EventArgs e) { QueryUserControl.MFGQueryButton(new List<Control> { this.FindControl("BatchToolEditorFP"), this.FindControl("SettingsFile"), this.FindControl("UploadButton"), this.FindControl("EditButton"), this.FindControl("ResetID"), this.FindControl("ExportID") }); } [DirectMethod] public void CreateNewUser() { AssignUserObjectProperties(); IMD_Control.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); IMD_Control.CreateUser = _userInfo.FullName; // Declare & initialize OracleHelper db = OracleHelper.GetInstance(); //int i, j; //bool isnumber_d = int.TryParse(IMD_Control.DISPATCHCOUNT, out i); //bool isnumber_a = int.TryParse(IMD_Control.ASSIGNCOUNT, out j); //string sqlCmd = "INSERT INTO RTD_RecipeGroupSettingCONTROL( AreaName, MachineName, AvailableBuffer, MinBatch,MinLoadRatio, CreateTime, CreateUser) " + // "VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}','{6}') "; //sqlCmd = string.Format(sqlCmd, RecipeGroupSetting.AreaName, RecipeGroupSetting.MachineName, RecipeGroupSetting.AvailableBuffer, RecipeGroupSetting.MinBatch, RecipeGroupSetting.MinLoadRatio,DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), _userInfo.FullName); if ((IMD_Control.CONTROLID == "") || (IMD_Control.INTERVAL == "") ) { string errorMessage = "One of the below listed filed is empty:<br/>" + "<br/>- [CONTROLID]" + "<br/>- [INTERVAL]" ; //"<br/>- [RecipeGroup]" + //"<br/>- [GroupType]"; // Show Error ExtNetHelper.Alert("Required Information Missing", errorMessage, Ext.Net.Icon.Error); } //else if (!isnumber_d || !isnumber_a || i < 0 || j < 0) //{ // string errorMessage = "DISPATCHCOUNT or ASSIGNCOUNT has to be a positive integer"; // //"<br/>- [RecipeGroup]" + // //"<br/>- [GroupType]"; // // Show Error // ExtNetHelper.Alert("Required Information Missing", errorMessage, Ext.Net.Icon.Error); //} //else if // ((Convert.ToInt32(IMD_Control.ASSIGNCOUNT) < 0) || (Convert.ToInt32(IMD_Control.DISPATCHCOUNT) < 0)) //{ // string errorMessage = "DISPATCHCOUNT or ASSIGNCOUNT has to be a positive integer"; // //"<br/>- [RecipeGroup]" + // //"<br/>- [GroupType]"; // // Show Error // ExtNetHelper.Alert("Required Information Missing", errorMessage, Ext.Net.Icon.Error); // } else { // Execute to update //db.ExecuteNonQuery(sqlCmd); DbUtils.Insert<AMA_IMD_Control>(IMD_Control); // Show Result ExtNetHelper.Notify("Action Done", "New Setting successfully!"); } } [DirectMethod] public void NewDeleteprotBindingControl(int id) { // Declare & initialize bool isSuccess = DbUtils.DeleteById<AMA_IMD_Control>(id); if (isSuccess) ExtNetHelper.Notify("Action Done", "Selected Setting successfully!"); else ExtNetHelper.Notify("Action Done", "Selected Setting deleted error!"); } [DirectMethod] public void UpdateUser(int id) { AssignUserObjectProperties(id); IMD_Control.UpdateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); IMD_Control.UpdateUser = _userInfo.FullName; //int i, j; //bool isnumber_d = int.TryParse(IMD_Control.DISPATCHCOUNT, out i); //bool isnumber_a = int.TryParse(IMD_Control.ASSIGNCOUNT, out j); if ((IMD_Control.CONTROLID == "") || (IMD_Control.INTERVAL == "")) { string errorMessage = "One of the below listed filed is empty:<br/>" + "<br/>- [CONTROLID]" + "<br/>- [INTERVAL]" ; //"<br/>- [RecipeGroup]" + //"<br/>- [GroupType]"; // Show Error ExtNetHelper.Alert("Required Information Missing", errorMessage, Ext.Net.Icon.Error); } //else if (!isnumber_d || !isnumber_a || i < 0 || j < 0) //{ // string errorMessage = "DISPATCHCOUNT or ASSIGNCOUNT has to be a positive integer"; // //"<br/>- [RecipeGroup]" + // //"<br/>- [GroupType]"; // // Show Error // ExtNetHelper.Alert("Required Information Missing", errorMessage, Ext.Net.Icon.Error); //} //else if ((Convert.ToInt32(IMD_Control.ASSIGNCOUNT) < 0) || (Convert.ToInt32(IMD_Control.DISPATCHCOUNT) < 0)) //{ // string errorMessage = "DISPATCHCOUNT or ASSIGNCOUNT has to be a positive integer"; // //"<br/>- [RecipeGroup]" + // //"<br/>- [GroupType]"; // // Show Error // ExtNetHelper.Alert("Required Information Missing", errorMessage, Ext.Net.Icon.Error); //} else { DbUtils.Update<AMA_IMD_Control>(IMD_Control); // Show Result ExtNetHelper.Notify("Action Done", "The Setting updated successfully!"); } } private void AssignUserObjectProperties(int ID = 0) { //_userInfo.ID = this.UserIdTF.Text.Trim().ToUpper(); IMD_Control.ID = ID; IMD_Control.CONTROLID = this.NewCONTROLIDTF.Text.Trim(); IMD_Control.INTERVAL = this.NewINTERVALTF.Text.Trim(); IMD_Control.CONTROLLOGICAL = this.NewCONTROLLOGICALTF.Text.Trim(); IMD_Control.CONTROLVALUE = this.NewCONTROLVALUETF.Text.Trim(); IMD_Control.CONTROLINTERVAL = this.NewCONTROLINTERVALTF.Text.Trim(); IMD_Control.LEADINGTIME = this.NewLEADINGTIMETF.Text.Trim(); IMD_Control.INITIALTIME = this.NewINITIALTIMETF.Text.Trim(); IMD_Control.STARTTIME = this.NewSTARTTIMETF.Text.Trim(); //IMD_Control.STARTTIME = this.NewSTARTTIMETF.SelectedDate.ToString().Trim(); IMD_Control.ENDTIME = this.NewENDTIMETF.Text.Trim(); IMD_Control.SETTINGAREA = this.NewSETTINGAREATF.Text.Trim(); //auto_InUseEndRecycleEnd.WaitingTime = this.NewWAITINGTIMETF.Text.Trim(); } [DirectMethod] public void NewDeleteRecipeGroupSettingControl(int id) { // Declare & initialize bool isSuccess = DbUtils.DeleteById<AMA_IMD_Control>(id); if (isSuccess) ExtNetHelper.Notify("Action Done", "Selected Setting successfully!"); else ExtNetHelper.Notify("Action Done", "Selected Setting deleted error!"); } [DirectMethod(Timeout = 2400000)] public void QueryData(string format) { isQuery = false; string queryString = null; if (!string.IsNullOrEmpty(controlID.Text.ToString())) { queryString += " and controlid like " + "'" + "%" + controlID.Text.ToString() + "%" + "'"; } //if (!string.IsNullOrEmpty(productID.Text.ToString())) //{ // queryString += " and product like " + "'" + "%" + productID.Text.ToString() + "%" + "'"; //} //if (!string.IsNullOrEmpty(responsibleOwnerID.Text.ToString())) //{ // queryString += " and responsibleOwner like " + "'" + "%" + responsibleOwnerID.Text.ToString() + "%" + "'"; //} dt = DbUtils.GetAll<AMA_IMD_Control>(queryString); if (format == "Excel") { if (dt.Rows.Count >= 1000000) { X.Msg.Alert("Alert", "单次Query資料筆數超过1000000筆, Excel无法正常导出! 请选择细分项做筛选!").Show(); HideMask(); return; } ete.ExportDataTableToExcel(this.Page, dt, "AMA_IMD_CONTROL", Grid_column_name, Grid_column_text, Grid_column_width); } ste = (Ext.Net.Store)X.GetCmp("PortParameterlListStore"); ste.RemoveAll(); ste.Data = dt; ste.DataBind(); isQuery = true; // ExtNetHelper.BindStore("RecipeGroupSettingControlListStore", DbUtils.GetAll<RecipeGroupSetting>(queryString)); if (this.chkCollapseIndicatorTop.Checked) { this.CriteriaPanel.Collapse(); } } [DirectMethod] public void Reset() { this.SettingsFile.Reset(); } public void UploadSettings(object sender, DirectEventArgs e) { string filePath = this.SettingsFile.FileName.ToUpper(); if (string.IsNullOrEmpty(filePath) || !filePath.Contains(".XLSX")) { ExtNetHelper.Alert("Error Message", "请检查是否选择了正确的文件格式 Excel 2007+ file."); } else { try { DtImportExcel = new DataTable(); DtImportExcel = this.SettingsFile.FileContent.ReadToDataTableByEPPlus(); if (DtImportExcel.Rows.Count <= 0) { ExtNetHelper.Alert("Error Message", "文件内容为空!"); return; } if (DtImportExcel.Rows.Count > 0) { // Update settings DtImportExcel.Columns.Add("CREATETIME"); DtImportExcel.Columns.Add("UPDATETIME"); DtImportExcel.Columns.Add("CREATEUSER"); foreach (DataRow dr in DtImportExcel.Rows) { dr["CREATETIME"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); dr["CREATEUSER"] = _userInfo.FullName; dr["UPDATETIME"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } int err_cnt = DtImportExcel.UpdateData("AMA_IMD_CONTROL", true); if (err_cnt == 0) { // Show result ExtNetHelper.Notify(_targetSettingTypeEnum.ToString() + " Data", DtImportExcel.Rows.Count.ToString() + " record(s) updated."); } else { // Show result X.Js.Call("alert", err_cnt + "笔资料上传失败! " + (DtImportExcel.Rows.Count - err_cnt) + "笔资料上传成功!"); } } else { // Show result ExtNetHelper.Alert("Action Failed", "The uploading setting file contains NO record, please upload another one instead!", Ext.Net.Icon.Exclamation); } } catch (Exception ex) { new Exception("export to datatable error: " + ex.Message); } finally { this.PortParameterlListStore.Reload(); } } } [DirectMethod] public void HideMask() { X.Mask.Hide(); } } 以上是完整程序,你再想想我时间控件为啥是0001的显示
最新发布
12-23
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值