您的位置:首页 > 其它

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

2013-05-06 21:09 441 查看







<%@ 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();
        }
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: