一个Web用户控件中js的问题,分不够另开帖给
感谢您的关注,请您在回答前仔细看下我的描述
我在母版页里有一个Web用户控件detail.ascx,detail.ascx里有一个删除按钮BtnDelete和一个datagrid,选中datagrid中一条记录,BtnDelete可用,此时要先去数据库中查询一个INVENT_FLAG,判断是否处于盘点中,为1则弹出一个alert窗口,为0则弹出一个confirm窗口,询问是否删除,是则删除,取消则不动作,关键是要根据点击按钮那一时刻的INVENT_FLAG的状态进行判断,所以不能在Page_Load里
BtnDelete.Attributes.Add( "onclick ", "return confirm( '确实要冲掉该条记录吗? ' ); ");
说一下我现在的实现方式,再加一个按钮BtnCheck,然后将BtnDelete用style= "display:none "隐藏,在BtnCheck里检查INVENT_FLAG的状态,当confirm选确定时,调用BtnDelete的Click事件,在BtnCheck_Click中
if( invent_flag == "1 ")
{
Page.RegisterStartupScript( "check ", " <script> alert( '盘点中,不可进行入库操作。 '); </script> ");
}
else
{
Page.RegisterStartupScript( "fgf ", " <script> Check(); </script> ");
}
html中
<script language= "javascript ">
function Check()
{
if (window.confirm( '是否保存所作的修改? ')==true)
{
document.getElementById( "detail_BtnDelete ").click();
}
else
{
}
}
</script>
但是这里脚本调试时提示Microsoft JScript 运行时错误: 'document.getElementById(...) ' 为空或不是对象
我换成document.all( "detail_BtnDelete ").click();提示Microsoft JScript 运行时错误: 'contentWindow.document ' 为空或不是对象
我直接在ascx.cd里用
string btnName = BtnDelete.ClientID;
Page.RegisterStartupScript( "fgf ", " <script> if(window.confirm( '是否保存所作的修改? ')==true){document.getElementById( "+btnName+ ").click();} </script> ");
都不行,网上能搜索到的我基本上都试过了,请问怎么调用BtnDelete的Click事件,或是怎么得到BtnDelete的ClientID
或者有其它的实现方法也可以,对js不熟,被郁闷了好几天了,谢谢大家了
------解决方案-------------------- <script language= "javascript ">
function Check()
{
if (window.confirm( '是否保存所作的修改? ')==true)
{
document.all.detail_BtnDelete.click()
}
else
{
}
}
</script>
另外要注意一点 不要用style= "display:none "把控件设置成隐藏 !
要style= "width: 0px; height: 0px " 让他宽高 等于0来达到效果 ! 你试一下!
如果解决 记得回贴!帮我生星
------解决方案--------------------document.getElementById( <%= 控件ID.ClientID%> ).click();
------解决方案--------------------你这个功能我做过
我是配合ajax做的
btnDel.Attributes.Add( "onclick ", "return check() ");//这句仍然放在Page_Load
javascript 的check()方法里 用ajax取数据库值看是否满足需要 在进行btnDel里的操作