zoukankan      html  css  js  c++  java
  • 递归控件以加入JS方法

    看到dudu关于递归控件的方法,想起以前实现过的递归控件以加入JS来将用户的动作写入日志:

            private void SetCtlClentProperty(String sSecID,Control ctrl)
            
    {
                
    if(ctrl!=null)
                
    {
                    
    foreach (Control obj in ctrl.Controls)
                    
    {
                        
    if (obj.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
                            ((TextBox)obj).Attributes[
    "onchange"]    +=    "SetPageDataStatus();SetCtrlStatus('"+sSecID+"');";

                        
    if (obj.GetType().ToString() == "System.Web.UI.WebControls.Label")
                            ((Label)obj).Attributes[
    "onchange"]    +=    "SetPageDataStatus();SetCtrlStatus('"+sSecID+"');";

                        
    if (obj.GetType().ToString() == "System.Web.UI.WebControls.DropDownList" && ((DropDownList)obj).AutoPostBack==false)
                            ((DropDownList)obj).Attributes[
    "onchange"]    +=    "SetPageDataStatus();SetCtrlStatus('"+sSecID+"');";

                        
                        
    if (obj.GetType().ToString() == "System.Web.UI.WebControls.DropDownList" && ((DropDownList)obj).AutoPostBack==true)
                            ((DropDownList)obj).Attributes[
    "onchange"]    +=    "SetPageDataStatus();SetCtrlStatus('"+sSecID+"');__doPostBack('"+((DropDownList)obj).ClientID+"','');";
                        
                         
                        
    if ((obj.GetType().ToString() == "System.Web.UI.WebControls.CheckBoxList" || obj.GetType().ToString() == "System.Web.UI.WebControls.RadioButtonList" ) &&  ((CheckBoxList)obj).AutoPostBack==true)
                        
    {
                            
    for(int k=0;k<((CheckBoxList)obj).Controls.Count;k++)
                            
    {
                                ((CheckBox)((CheckBoxList)obj).Controls[
    0]).Attributes["onclick"]    +=    "SetPageDataStatus();SetCtrlStatus('"+sSecID+"');__doPostBack('"+((CheckBox)((CheckBoxList)obj).Controls[0]).ClientID+"','');";
                            }

                        }

                        
                        
    if((obj.GetType().ToString() == "System.Web.UI.WebControls.CheckBoxList" || obj.GetType().ToString() == "System.Web.UI.WebControls.RadioButtonList" )  && ((CheckBoxList)obj).AutoPostBack==false)
                            ((CheckBox)((CheckBoxList)obj).Controls[
    0]).Attributes["onclick"]    +=    "SetPageDataStatus();SetCtrlStatus('"+sSecID+"');";
                        
                        SetCtlClentProperty(sSecID,obj);
                    }

                }

            }


            
    /// <summary>
            
    /// Set Control's onchange event;
            
    /// </summary>
            
    /// <param name="oPage">Page object</param>
            
    /// <param name="sCtrlIDs">section ids seperated with ",", like "section1,section2,section3"</param>

            private void SetCtlClentProperty(ArrayList oCtrlIDs)
            
    {
                
    foreach (Control oSecID in oCtrlIDs)
                
    {
                    
    if (oSecID == nullcontinue;
                    
    if (this._ThisPage.IsPostBack)
                    
    {
                        
    this._ThisPage.RegisterHiddenField(oSecID.ID,System.Web.HttpContext.Current.Request.Form[oSecID.ID]);
                    }

                    
    else
                    
    {
                        
    this._ThisPage.RegisterHiddenField(oSecID.ID,"unchanged");
                    }

                    SetCtlClentProperty(oSecID.ID,oSecID);
                }

            }

            
    private void SetCtlClentProperty(ArrayList oCtrlIDs,bool ClearState)
            
    {
                
    foreach (Control oSecID in oCtrlIDs)
                
    {
                    
    if (oSecID == nullcontinue;
                    
    if (this._ThisPage.IsPostBack && !ClearState)
                    
    {
                        
    this._ThisPage.RegisterHiddenField(oSecID.ID,System.Web.HttpContext.Current.Request.Form[oSecID.ID]);
                    }

                    
    else
                    
    {
                        
    this._ThisPage.RegisterHiddenField(oSecID.ID,"unchanged");
                    }

                    SetCtlClentProperty(oSecID.ID,oSecID);
                }

            }
  • 相关阅读:
    ArrayList和LinkedList的底层代码实现思想
    ArrayList(顺序表)和LinkedList(链表)的区别联系,优劣取舍问题
    【AR】增强现实安卓编程
    【报错】"The constructor Notification(int, CharSequence, long) is deprecated
    【gradle报错】error: package org.apache.http does not exist
    【安卓面试题】多线程下载怎么实现?断点续传怎么实现?
    【安卓面试题】在一个Activity启动另一个Activity和在Service中启动一个Activity有什么区别
    java.lang.IllegalArgumentException: Service Intent must be explicit: Intent
    【Android Studio 小技巧】一键查看文件方法结构目录File Structure
    【安卓面试题】使用SQLiteOpenHelper的getReadableDatabase()获得的数据库能不能,做写的操作
  • 原文地址:https://www.cnblogs.com/syveen/p/231987.html
Copyright © 2011-2022 走看看