C# ASP.NET 在服务器端产生一个byte[],要将它传到客户端,然后由javascript将它赋给一个ActiveX控件

来源:百度知道 编辑:UC知道 时间:2024/05/22 23:55:17
C# ASP.NET 在服务器端产生一个byte[],要将它传到客户端,然后由javascript将它赋给一个ActiveX控件.请问该如何做呢????

服务端:Page.RegisterStartupScript("ggg", "<script>onclickUsb('" + files + "','" + ecgDataType + "','" + ecgFileName + "');</script>"); files为byte[] 其他两个为string 为什么 我传string不出错 byte[] 就不行
前台(JavaScript): function onclick(files,ecgDataType,ecgFileName)
{
var obj =document.getElementById('ECGVIEW');//控件
obj.ShowECGData(files,ecgDataType,ecgFileName);//控件函数
} 只要传入byte就行 后台传byte到前台 怎么做 谢谢
那能补充下我在控件里怎么去把string转化为原来的byte[]呢? 好像不是很好啊 会出错 (*^__^*) 嘻嘻…… 谢谢

个人认为:把byte[]转换成string进行网页传递,在从控件中把string拎出来变成byte[]…… 可行! 但非常不安全 容易出错滴 现在传统的做法是:网站上再加个webservice 控件访问网站数据库返回byte[] 速度上就是一个提高……http://blog.sina.com.cn/s/blog_3f01bd3901000bzr.html 这个是简单的webservice创建 看看就会了

obj.ShowECGData(files,ecgDataType,ecgFileName);
这函数第一个参数是btye数组?还真不知道js里怎么表示byte[]。
我只知道你这个语句是有错误的
Page.RegisterStartupScript("ggg", "<script>onclickUsb('" + files + "','" + ecgDataType + "','" + ecgFileName + "');</script>");
你这样写的话,files是byte[]类型,与字符串进行+相连的话,会调用files.ToString()方法,也就相当于
Page.RegisterStartupScript("ggg", "<script>onclickUsb('" + files.ToString() + "','" + ecgDataType + "','" + ecgFileName + "');</script>");
而files.ToString()的结果是System.Byte[],所以你传递到JS函