当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > mshtml:javascript为HTML文件中的Select添加option

ASP.NET
Visual Studio.Net 内幕(7)
.Net 2.0 原汁原味读取注册表
ASP.NET 2.0中预设的cookie
ASP.NET:一段比较经典的多线程学习代码
ASP.NET2.0服务器控件之自定义状态管理
Asp.net给站点某目录增加Aspnet用户
ASP.NET技巧:请求网址并解析返回的html
在Asp.net用C#建立动态Excel
ASP.NET2.0:页面中链入的CSS、js文件带中文时需注意
ASP.NET技巧:数据岛出到Excel最为简易的方法
第一次用.net2.0 LOGIN登陆控件的困惑和解决方法
在ASP.net中保存/取出图片入/从SQL数据库
ASP.NET技巧:做个DataList可分页的数据源
在.NET中利用委托实现窗体间通信
在.NET2.0中使用自定义事务操作
解决 ASP.NET中目录访问权限的问题
ASP.Net防止刷新自动触发事件的解决方案
白刃之战:PHP vs. ASP.NET(节选)-架构比较
C#中使用SendMessage
提取HTML代码中文字的C#函数

ASP.NET 中的 mshtml:javascript为HTML文件中的Select添加option


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 161 ::
收藏到网摘: n/a


使用结合MSHTML与WebBrowser生成美观实用的WinForm应用程序(By Lostinet)中介绍的方法写程序时遇到的一个问题的解决方法。
在AxSHDocVw.AxWebBrowser控件加载的HTML文件中有一个Select,希望动态从数据库中取得列表内容放到该Select中,要求该Select的Option中显示部门的名称,同时选中某一Option时可以传递对应的部门编号,通过
mshtml.IHTMLElement2 eleSel = (mshtml.IHTMLElement2)doc.all.item("selName", null);((mshtml.HTMLSelectElementClass)eleSel).innerHTML = "";
是不行的。是不行的。
尝试用页面中的javascript实现该操作:
1、在Winform窗体中定义一个public类型的字符串变量,用于传递给HTML文档,规定格式为“部门名称1#部门名称2#……;部门编号1#部门编号2#……”,即该字符串(strMoreUnit)的前半部分为部门名称,后半部分为部门编号,部门名称与部门编号之间用";"分隔,部门名称与部门编号内部以"#"分隔。这样的一个字符串很容易由循环在AxSHDocVw.AxWebBrowser控件的DocumentComplete事件中构造(应该使用System.Text.StringBuilder构造以提高效率)。
2、在被加载的HTML文件中定义函数:
function SetMoreUnit() { var strMoreUnit = document.MainForm.SetMoreUnit(); if (strMoreUnit != "") { var cAll = strMoreUnit.split(";"); var cName = cAll[0].split("#"); var cID = cAll[1].split("#"); for(i=0;i

通过截取的字符串的方式循环为oOption设置innerText和value。
3、在HTML文件的标签中的"onLoad"事件中调用2中的函数SetMoreUnit()即可。