真够了,做了N年WINce开发,现在又回来做WEB程序,忘得一干二净的,请大家帮帮忙了,我现在用的VS.NET2005问题:例如在做用户注册页面时,需要用户选择密码提示问题并输入问题答案。密码问题用的DropDownList,有若干可选择的问题 和一个“其他”选项,现在想在客户端判断如果用户选择的是“其他”,则显示一个自定义问题文本框,用以输入自定义的密码问题。结果发现貌似DropDownList控件不能调用页面上的javascript脚本,runat="server"的控件貌似也不能用javascript脚本控制隐藏/显示。请教:1、如何在客户端判断runat="server"的控件的值的变化?
      2、如何在客户端控制runat="server"的控件的隐藏/显示?
      3、如果以上问题做不到,是不是应该用HTML控件替代?那数据又怎么提交?
请大家帮忙,解决即给分,不够可加,急!!!!!!

解决方案 »

  1.   

    可以啊,将脚本写到后台去,如DropDownList1.Attributes.Add("onclick","DynamicCreateTextBox()");
      

  2.   

    如何在客户端控制runat="server"的控件的隐藏/显示是通过控件的visible来进行控制的如果为True时则显示,否则不显示
      

  3.   

    运行程序后查看网页源代码可以看到服务器控件转换后的ID。然后用document.getenembyid( "ID号");
      

  4.   

    可以办到,一般两种方式
    首先要在前台页面写好要执行的js脚本
    1.在后台注册事件
    DropDownList1.Attributes.Add("onchange","CreateTextBox()");
    2.在前台页面直接写
    <asp:DropDownList ID="DropDownList1" onchange="CreateTextBox();" runat="server">
        </asp:DropDownList>
      

  5.   

    1、document.getenembyid(<%控件ID.ClientID%>); 
    2、document.getenembyid(<%控件ID.ClientID%>).style.visible="visible or hidden" ; 
    3、ASP.net 页面一般就在本页提交所谓的postback. 
      

  6.   

    LS说得对。不过代码有很D的WT:
    document.getElementById("<%控件ID.ClientID%>")
      

  7.   

    在客户端判断的话,所有服务器控件都已经成为html控件了,主要使用javascript控制了
      

  8.   

    其实 任何服务器控件都会生成html代码发送到客户端 在客户端用js控制控件的显示隐藏完全很方便
      如document.getElementById("<%=btnSubmit.UniqueID%>").style.display="none"
      或者查看源文件获取服务器在客户端生成的id标识..再设置相应的属性.!