关于Ext后台生成控件和得到控件值的方法总结

来源:互联网 发布:足球游戏源码 编辑:程序博客网 时间:2024/06/11 20:33
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DyControl.aspx.cs" Inherits="EMOEP.DyControl" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><%@ Register Namespace="Ext.Net" Assembly="Ext.Net" TagPrefix="ext" %><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>    <script type="text/javascript" language="javascript">        function getNumbyName() {            var x = document.getElementsByName("txt");            var arr = new Array();            for (var i = 0; i < x.length; i++) {                arr[i] = x[i].value;            }                        return arr;        }    </script></head><body><form runat="server" method="post"><ext:ResourceManager runat="server" /><ext:Panel ID="plTest" runat="server"></ext:Panel></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 EMOEP{    public partial class DyControl : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            string[] txt = new string[] {"txt1","txt2","txt3" };            for (int i = 0; i < txt.Length; i++)            {                TextField txtft = new TextField { ID = txt[i], FieldLabel = txt[i], Width = 200, LabelWidth = 50 , Name="txt",Text ="321"};                plTest.Items.Add(txtft);            }            Ext.Net.Button btn1 = new Ext.Net.Button { ID = "btn1", Text = "getValue方法", Width = 100 };            Ext.Net.Button btn2 = new Ext.Net.Button { ID = "btn2", Text = "FindControl方法", Width = 100 };            Ext.Net.Button btn3 = new Ext.Net.Button { ID = "btn3", Text = "RequestForm方法", Width = 100 };            Ext.Net.Button btn4 = new Ext.Net.Button { ID = "btn4", Text = "JS方法", Width = 100 };            //#{控件ID}.getValue()的方法获得控件的值,但是参数不是动态获得            string param = "#{txt1}.getValue(),#{txt2}.getValue(),#{txt3}.getValue()";            btn1.Listeners.Click.Handler = "EX.btnTestClick1("+ param +");";            plTest.Items.Add(btn1);            /*            生成控件的方法(注意:生成控制的方法,不能写在IsPostBack里面)            Ext.Net.TextField tf = new TextField();             tf.ID = "txt" + strName;            this.你的容器.Items.Add(tf);             后台获取值的方法            Ext.Net.TextField tf  = (Ext.Net.TextField)this.你的容器.FindControl("ID");             */            btn2.Listeners.Click.Handler = "EX.btnTestClick2();";            plTest.Items.Add(btn2);            /*            Request.Form[控件Name]            此外System.Collections.Specialized.NameValueCollection nc = new System.Collections.Specialized.NameValueCollection(Request.Form); Response.Write(nc.GetValues("txtname")[0].ToString());此方法只能对<input type="text"  />等类型的控件数据进行获取,对于select控件,如果value和text不一样,只能获取value             */            btn3.Listeners.Click.Handler = "EX.btnTestClick3();";            plTest.Items.Add(btn3);            //JS+Ext.Net.DirectMethod方法实现后台代码获取前台控件内容**            btn4.Listeners.Click.Handler = "var arr =getNumbyName();EX.btnTestClick4(arr);";            plTest.Items.Add(btn4);                    }                [DirectMethod]        public void btnTestClick1(string str1, string str2, string str3)        {            X.Msg.Alert("getValue方法", string.Format("txt1:{0};txt2:{1};txt3:{2}", str1, str2, str3)).Show();        }        [DirectMethod]        public void btnTestClick2()        {            Ext.Net.Button a = (Ext.Net.Button)this.plTest.FindControl("btn1");            TextField b = (Ext.Net.TextField)this.plTest.FindControl("txt1");            X.Msg.Alert("FindControl方法", string.Format("txt1:{0};", a.Text.ToString()+b.Text.ToString())).Show();        }        [DirectMethod]        public void btnTestClick3()        {            string str = Request.Form["txt"];            X.Msg.Alert("RequestForm方法", string.Format("txt123:{0};", str)).Show();        }        [DirectMethod]        public void btnTestClick4(string[] arr)        {            string str = arr.ToString();            X.Msg.Alert("JS方法", string.Format("txt123:{0};", str)).Show();        }    }}