ascx中
<asp:textbox id="txtName" runat="server"></asp:textbox>
<INPUT id="btn_ManaSel" onclick="seluser1('hidUID','txtName')" type="button" value="选择" name="Button7" runat="server"> 
<INPUT id="hidUID" style="WIDTH: 42px; HEIGHT: 22px" type="hidden" size="1">
<INPUT id="hidret" style="WIDTH: 24px; HEIGHT: 22px" type="hidden" size="1" name="hidret"
runat="server"> 
<INPUT id="hidret1" style="WIDTH: 24px; HEIGHT: 22px" type="hidden" size="1" name="hidret1"
runat="server">
js中
function seluser1(objid,objname)
{
var t=document.all("hidret");
var t1=document.all("hidret1");
t.value="";
window.showModalDialog("../common/ss.aspx",window,"dialogHeight:400px;dialogWidth:300px;Resizable:yes;Status:no;;Help:no");
//update
var s=document.getElementById(objid);
var s1=document.getElementById(objname);
if(t.value != "")
{
s.value = t.value;
s1.value = t1.value;
//
}
//
}提示 ‘null’为空或不是对像,怎么改?

解决方案 »

  1.   

    "../common/ss.aspx"
    这个路径是不是要以使用这个用户控件的窗口来定义,
    你这个路径是不是用户控件相对于ss.aspx的路径??
    我想应该把它写成使用这个用户控件的窗口相对于ss.aspx的路径,你试试
      

  2.   

    用户控件中的控件比如<asp:textbox id="txtName" runat="server"></asp:textbox>
    在引用该用户控件的页面中输出的ID是不同的,你可以查看HTML
    建议你这样加入JS到按钮:
    你原来是这样:
    <INPUT id="btn_ManaSel" onclick="seluser1('hidUID','txtName')" type="button" value="选择" name="Button7" runat="server"> 
    建议的方式:
    在CS文件的Page_Load函数中使用
    this.btn_ManaSel.Attribute.Add("onclick","seluser1('hidUID','"+this.txtName.ClientID+"')");同时该JS函数seluser1中用到的ID一定要是参数,不能直接document.getElementById("'txtName'")
      

  3.   

    aspx页面中 调用ascx中的 htmlHiddenvar t=document.all("hidret");
    var t1=document.all("hidret1");
    ------------------
    这两个返回null值。该如何取得?
      

  4.   

    那时因为用户控件在使用中,转化成HTML之后,他的id会发生改变的,所以。不信你看看你的html的源文件很难
    最好是。让我想象。