在Index.aspx页上只有一个PlaceHolder,在它的Page_Load中动态加载了两个WebUserControl:UserControl1和UserControl2(UserControl2默认是不显示的),现在要求点击UserContrl1中的按钮Button1后让UserControl2显示出来(注意:页面只加载一次,即两个控件的相互操作全部用JavaScript来实现),这里面的JavaScript应该是怎样的用法?高手请指点,多谢!!!

解决方案 »

  1.   

    这样好像不行,因为UserControl属于服务器控件,不能直接在客户端操作
      

  2.   

    我的思路如下:
    给UserControl2的输出内容加一个Div标记符(如何实现?),然后取得UserControl1中Button1的Id(形如"_ctl0_RadioButton1",怎么取得?),然后给Button1加一个OnClick函数,实现Div标记块中内容的Style的Display子属性的改变
    我不知道代码该怎么写,高手请指点====CSDN 小助手 V2.0 2005年10月16日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx
    下载:http://szlawbook.com/csdnv2/csdnv2.rar为神六喝彩,向所有科技工作者致敬!
    拒绝日货。
      

  3.   

    使用的UserControl是很简单的UserControl,没有重载CreateChildControl等方法,也没有实现INamingContainer接口,我无奈了,呜呼
      

  4.   

    在第一个用户控件定义一个属性a ,点击按钮把属性值变为1
    在第二个用户控件定义一个属性b(控件的visible属性)
    在Index.aspx中获取属性a,a为1就显示。否则隐藏。。
      

  5.   

    楼主一定要用两个用户控件吗?
    _ctl0_RadioButton1这类的Id由Button1.ClientID取得。
      

  6.   

    都做到一个用户控件里面去吧
    用Div的style.display控制就行
      

  7.   

    我理解你的意思是在页面上存在2个用户控件,但要根据你的客户端click事件隐藏一个。
    1.你要做2个样式类:
      样式类c1显示内容(VISIBILITY: hidden),样式类c2隐藏内容(VISIBILITY: hidden)
    2.在palceHolder中放置一个table,并定义用户控件放置的2个td单元格的id。
    3.将用户控件放置在这两个单元格中。
    然后可以用click调用脚本方法设置另一个单元格的隐藏/显示。
    如果不想用放置单元格的方法,就要用文档对象模型的父节点和子节点配合来找到另一个用户控件所在节点,然后设置其样式。
      

  8.   

    1. 加载UserControl1,使用PlaceHolder.Controls.Add()方法把它加入页面
    2. 创建一个<asp:Panel>控件,也加入PlaceHolder中
    3. 加载UserControl2,加入刚刚创建的Panel中
    4. 找到UserControl1的Button1控件,禁用回发,然后为其附加一段脚本,设置Panel对应的<span>的style为"display:none;"
    5. 找到UserControl1的Button2控件,禁用回发,然后为其附加一段脚本,设置Panel对应的<span>的style为"display:;"这样就实现了纯粹客户端动态显示/隐藏效果。控件的客户端ID可以通过Control.ClientID属性读取。该属性在控件已经加入页面控件树以后才有意义。
      

  9.   

    为server side control附加Html属性:
    Control.Attributes.Add("onclick", "alert('test'); return false;");