首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

统制jsp页面所有控件只读(按钮、输入框等)

2013-09-28 
控制jsp页面所有控件只读(按钮、输入框等) /// summary/// 设置当前页面上的所有可输入和选择的控件为只

控制jsp页面所有控件只读(按钮、输入框等)

 /// <summary>
        /// 设置当前页面上的所有可输入和选择的控件为只读属性
        /// </summary>
        /// <param name="page"></param>
        public static void SetControlReadOnly(Page page)
        {

            foreach (Control ctrl in page.Controls)
            {
                SetControlReadOnly(ctrl);

            }
        }




        //递归调用。设置控件只读。
        public static void SetControlReadOnly(Control ctr)
        {
            if (ctr is TextBox)
            {
                TextBox txtControl = (TextBox)ctr;
                txtControl.ReadOnly = true;
                txtControl.Enabled = false;

            }
            else if (ctr is RadioButton)
            {
                RadioButton btn = (RadioButton)ctr;
                btn.Enabled = false;

            }
            else if (ctr is RadioButtonList)
            {
                RadioButtonList btn = (RadioButtonList)ctr;
                btn.Enabled = false;
            }

            else if (ctr is CheckBox)
            {
                CheckBox cb = (CheckBox)ctr;
                cb.Enabled = false;
            }
            else if (ctr is DropDownList)
            {
                DropDownList list = (DropDownList)ctr;
                list.Enabled = false;
            }

            else if (ctr is HtmlTextArea)
            {
                HtmlTextArea cb = (HtmlTextArea)ctr;
                cb.Attributes.Add("readonly", "");
                cb.Disabled = true;
            }
            else if (ctr is HtmlSelect)
            {
                HtmlSelect rb = (HtmlSelect)ctr;
                rb.Disabled = true;
            }

            else if (ctr is HtmlInputCheckBox)
            {
                HtmlInputCheckBox rb = (HtmlInputCheckBox)ctr;
                rb.Disabled = true;
            }


            else if (ctr is HtmlInputRadioButton)
            {
                HtmlInputRadioButton rb = (HtmlInputRadioButton)ctr;
                rb.Disabled = true;
            }
            else if (ctr is HtmlInputText)
            {
                HtmlInputControl input = (HtmlInputControl)ctr;
                input.Attributes.Add("readonly", "");
                input.Disabled = true;
            }
            else
                foreach (Control ctr1 in ctr.Controls)
                {
                    SetControlReadOnly(ctr1);
                }
        }



我在网上查到可以用上面的方法实现,但是怎么传一个page,比如我要控制test.jsp页面上所有控件只读,应该怎么实现? 控件 只读 jsp java
[解决办法]
<script   language=javascript>   
function   dis()   
{   
        var   a   =   document.getElementsByTagName("input");   
        for   (var   i=0;   i<a.length;   i++)   
        {   
              if   (a[i].type=="checkbox"   
[解决办法]
   a[i].type=="radio" 
[解决办法]
 a[i].type=="text"
[解决办法]
 a[i].type=="button")      a[i].readOnly=true;   
        }   
        var   b   =   document.getElementsByTagName("select");   
        for   (var   i=0;   i<b.length;   i++)   
        {   
              b[i].readOnly=true;   
        }   
}   
</script>   

[解决办法]
这段代码貌似是.net 的啊
java类似的可以使用apache wicket实现
[解决办法]
引用:
Quote: 引用:

<script   language=javascript>   
function   dis()   
{   
        var   a   =   document.getElementsByTagName("input");   
        for   (var   i=0;   i<a.length;   i++)   
        {   
              if   (a[i].type=="checkbox"   
[解决办法]
   a[i].type=="radio" 
[解决办法]


 a[i].type=="text"
[解决办法]
 a[i].type=="button")      a[i].readOnly=true;   
        }   
        var   b   =   document.getElementsByTagName("select");   
        for   (var   i=0;   i<b.length;   i++)   
        {   
              b[i].readOnly=true;   
        }   
}   
</script>   



对于普通的页面可以,但是对于有些控件是动态生成的就不行,如:
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <%
        while (checkItemRs.next()) {
        %>
     <input type="checkbox" name="cyxm"  value="<%=checkItemRs.getString("categoryno")%>">
     <%=checkItemRs.getString("categoryname")%>
     
     <%
          }
          %>
        </td>



直接把这个方法在onload里面调用,这是画面已经加载完成了。apache wicket这个是个框架,有兴趣的情况下可以了解一下
[解决办法]
是画面加载完成后才执行onload吧,要不就使用document.readyState != "complete"判断一下试试
[解决办法]
引用:
Quote: 引用:

是画面加载完成后才执行onload吧,要不就使用document.readyState != "complete"判断一下试试

我在onload方法里面alert(document.readyState);提示框信息:complete

这就是画面加载完成了
[解决办法]
引用:
Quote: 引用:

是画面加载完成后才执行onload吧,要不就使用document.readyState != "complete"判断一下试试

我在onload方法里面alert(document.readyState);提示框信息:complete

实在不行,把你的js 写在文档最下面。动态那些解析完成。
[解决办法]
用jquery的$(document).ready()试试

热点排行