<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<asp:Button ID="GetCardNo" onclick="GetCardNo_Click()" runat="server" CssClass="submit" Text="获取卡号" />
</asp:UpdatePanel>
在UpdatePanel里面是不刷新的,但是我要获取一个卡号,现在调用JS方法但是页面不刷新,值就获取不到了,现在有什么办法在UpdatePanel存在的情况下获取这个卡号,后台代码访问也可以
function ReadCard()
{
if(document.getElementById("Chk_State").checked==true)
{
var wsrx = new ActiveXObject("WSRX.WSR.1");
var ret=0;
var portno=0;
//打开串口
ret=wsrx.aws_openPort(portno); //参数: 1: 串行COM1口
if (ret>=0)
{
wsrx.aws_loadKey_Hex(portno,"FFFFFFFFFFFF",0);
ret=wsrx.aws_readBlock_Hex(portno,0);
if (ret>=0)
{
//获取卡号
var cardno="";
ret=wsrx.aws_getCardNo_String(portno); //获取卡号
if (ret>=0)
{
cardno=wsrx.aws_getCardNo();
document.getElementById("txtCardNo").value= String(cardno);
wsrx.aws_closePort(portno); //关闭串口
}
else
{
document.getElementById("txtCardNo").value= "读卡号失败!";
wsrx.aws_closePort(portno); //关闭串口
}
}
else
{
document.getElementById("txtCardNo").value= "请安放机型匹配的IC卡!";
wsrx.aws_closePort(portno); //关闭串口
}
}
else
{
document.getElementById("txtCardNo").value= "串口打开失败!";
}
window.setTimeout("getCardNo()",1000);
}
}
因为这个页面不刷新所以txtCardNo这个控件不会获得值,现在就是要在updatepanel控制的页面里面获取这个卡号
如果你是要点击按钮页面刷新的话很简单的。
UpdatePanel里面有属性可以设置UpdatePanel里面的一个控件进行页面回发的。
<Triggers>
<asp:PostBackTrigger ControlID="GetCardNo" />
</Triggers>
另外AsyncPostBackTrigger是控制updatePanel外的控件点击时不刷新。
txtCardNo 放在updatapanel中,或者,在updatepanel中加一个hiddenfield,后台代码给赋值,js中取些hiddenfield.
==
可能有问题 。
你可能需要注册ReadCard()到启动时执行。
或者,也可以在ajax执行完后执行ReadCard().
function pageLoad() {
ReadCard();
}