那个table的外面我还嵌套了一个panel,我把panel注释了就没问题了,但是其他页面我放在panel里的控件却可以lower   =   document.getElementById(StrKey+ "_TxtLower ").value; 这样获取值啊,这里为什么就出问题了呢?迷糊了。

解决方案 »

  1.   

    你看看生成的HTML就知道问题了,获取clientId
      

  2.   

    我看了html了,DIV里不能嵌套div吗?
      

  3.   

    gray820928  发表于:2007-11-03 22:23:17
    qs打出来是什么? qs打出来是null
      

  4.   

    DropDownList有没有放在gridview或其他绑定的控件中,如果是,DropDownList在客户端生成的id并不是这个DropDownList的id,而是"gridview或其他绑定控件的id_DropDownList的id",
    查看生成的html,这个DropDownList的id是否改变了
      

  5.   

    回楼上的,DropDownList没有放在gridview里,html的结构是这样的:
                    <asp:Panel ID="plOther" runat="server">   
       <table> 
                                    <tr> 
                                            <td   style= "height:   40px; "> 下限:               
                                 <asp:DropDownList   ID= "ObjSort_CmbLower "   runat= "server "> 
                    <asp:ListItem   Selected= "True "   Text= "等于 "   Value= "1 "> </asp:ListItem> 
                  <asp:ListItem   Text= "大于 "   Value= "2 "> </asp:ListItem> 
                 <asp:ListItem   Text= "大于等于 "   Value= "3 "> </asp:ListItem> 
                  </asp:DropDownList> 
                  <asp:TextBox   ID= "ObjSort_TxtLower "   runat= "server "> </asp:TextBox> 
                            <div   id= "ObjSort_DivUpperText "> 上限:       
                      <asp:DropDownList   ID= "ObjSort_CmbUpper "   runat= "server "> 
                   <asp:ListItem   Text= "小于 "   Value= "4 "> </asp:ListItem> 
               <asp:ListItem   Selected= "True "   Text= "小于等于 "   Value= "5 "> </asp:ListItem> 
                            </asp:DropDownList> 
            <asp:TextBox   ID= "ObjSort_TxtUpper "   runat= "server "> </asp:TextBox> 
                                   </div> </td> 
                                    </tr> 
                            </table> 
                </asp:Panel>
    就是panel里面套个div,除了去掉div还有其他解决办法吗?我是为了控制div里面的内容隐藏和显示才加上这个div的
      

  6.   

    你用js控制隐藏的话直接就用<div id='plOther'></div>就行了,不一定都要服务器端控件的啊
      

  7.   

      <asp:Panel   ID= "plOther "   runat= "server "></asp:Panel> 
    panel里面的内容也是要根据传递的参数来判断是否显示的,plOther.visible放在后台判断,所以麻烦就麻烦在这里。
      

  8.   

    panel里面的内容也是要根据传递的参数来判断是否显示的,plOther.visible放在后台判断我知道你出错在哪里了,panel并不会改变服务器控件的clientid,而是你在后台设置plOther.visible=false后,plOther中的内容已经不生成html代码了,只是保存在viewstate中.所以会document.getelementbyid会找不到对象.
      

  9.   

    问题已经解决,原因是panel在html里本身就是个div,div里再嵌套div的时候脚本用getElementById就无法找到控件了,即便名称对了,将里面的那个div改成span就可以了!