HTML:
<object id="hahaha" classid="clsid:CB1AA6C8-FF90-422F-B294-14964467CC7D" codebase="Install/ActivcxTst.cab" width="1100" height="800">
<param name="UsrName" value="admin" />
<param name="Pwd" value="admin" />
</object>
c# :
xxxcontrols: IIEProperty
private string _UsrName;
public string UsrName
{
get { return _UsrName; }
set { _UsrName = value; }
}
这种方式貌似拿不到
当然拿不到,这个是纯HTML的,C#怎么可以拿到?但是,可以对C#的定义输出到参数里,生成你所需要的HTML。
如果你一定要从HTML里拿到,这个这个~~~
1、你可以改写html,使得object形成一个服务器控件,然后再考虑。
2、通过HTML运行过程中的JS来获得。
3、使用这个ACTIVEX来达成目的
这个是c++的啊
@Jerry18: 你在页面添加:
<script language=JavaScript>
function SetUsName()
{
hahaha.UsrName = "admin";
}
</script>
<input type="button" value="测试" name="B1" onclick="SetUsName()">
测试下。
@Launcher:
js代码加在了 object 后面
提示错误:RefreneceError:"hahaha"未定义,
我可能需要从后台动态赋予值,然后后面有一系列的响应事件,采用ActiveX 经典的参数读取方式会不会好点?
@Jerry18: 完整的代码是这样的:
<HTML> <HEAD> <TITLE>xxxxxxxxx</TITLE> </HEAD> <BODY> <script language=JavaScript> function SetUsName() { hahaha.UsrName = "admin"; } <table border=1> <tr> <td> <object id="hahaha" classid="clsid:CB1AA6C8-FF90-422F-B294-14964467CC7D" codebase="Install/ActivcxTst.cab" width="1100" height="800"> <param name="UsrName" value="admin" /> <param name="Pwd" value="admin" /> </object> </td> </tr> </table> <input type="button" value="测试" name="B1" onclick="SetUsName()"> </body> </html>
如果提示找不到对象,那么就是你控件部署有问题,浏览器没能从 codebase 处下载并安装。
@Jerry18: 首先我们要保证你的控件能正常工作,如果连这都做不到,你那些“采用ActiveX 经典的参数读取方式”什么的都是屁话。
@Launcher:
<form method="post" action="Test01.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZOCEo5LOK9yJ4sTmXqyIdbsiA1T5qj7Z+RLunRfJcGCa" />
</div>
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="0F39CFE3" />
</div>
<div>
<object id="hahaha" classid="clsid:CB1AA6C8-FF90-422F-B294-14964467CC7D" codebase="Install/ActivcxTst.cab"
width="1100" height="800">
<param name="UsrName" value="admin" />
<param name="Pwd" value="admin" />
</object>
<input type="button" value="测试" name="B1" />
</div>
<script language="javascript" type="text/javascript">
alert("uuu");
try {
alert(hahaha.UsrName);
hahaha.UsrName = "admin";
}
catch (ex) {
alert(ex);
}
</script>
</form>
@Launcher: 控件正常工作的
@Jerry18: hahaha.UsrName = "admin"; 这一句执行正确了?
@Launcher:
alert("uuu")正确执行了,然后就执行 alert(ex);
@Launcher:
alert(ex); 弹出的结果是:
RefreneceError:"hahaha"未定义
@Jerry18: 代码执行到:
catch (ex) {
alert(ex);
}
也能叫正确执行了?这不是抛出了异常了吗?难道在 JS 中这叫做正确执行?
@Jerry18: 我的控件除了传递参数之外,是运行正常的
@Jerry18: 你的控件制作有问题,或者你打包部署错误,请你上网找篇文章学习下。
@Launcher:
"alert("uuu")正确执行了"
","
"然后就执行 alert(ex); "
@Launcher:
我的控件实现了的功能都能正常使用,只不过我想传递几个参数过去,不会因为这个就把其他都否定吧?
@Launcher: 控件构造函数执行的时候读取这个param值,你这个是通过js去设置,不符合需求
这种应该拿不到吧,我觉得可以尝试用js,js取到值后回传给后台处理
觉得如果html标签是C#自带的控件,像dropdownList 里面的下拉对象,后台应该能取到。这种任意标签内的值,就在对应js中能取到标签内的对象